@@ -150,6 +150,34 @@ def test_build_dataframe_from_csv(self):
150150
151151 pd ._testing .assert_frame_equal (expected_df , df , check_column_type = False )
152152
153+ def test_build_dataframe_from_csv_shaped (self ):
154+ raw_csv = "Region~Product~Measure~Value\r \n " "r1~p1~Revenue~1.0\r \n " "r1~p2~Revenue~3.0\r \n " "r2~p2~Revenue~4.0"
155+ df = build_dataframe_from_csv (raw_csv , dtype = {"Revenue" : float }, shaped = True )
156+
157+ expected_df = pd .DataFrame (
158+ {
159+ "Region" : ["r1" , "r1" , "r2" ],
160+ "Product" : ["p1" , "p2" , "p2" ],
161+ "Revenue" : [1.00000 , 3.00000 , 4.00000 ],
162+ }
163+ )
164+
165+ pd ._testing .assert_frame_equal (expected_df , df , check_column_type = False )
166+
167+ def test_build_dataframe_from_csv_shaped_with_duplicates (self ):
168+ raw_csv = "Region~Product~Measure~Value\r \n " "r1~p1~Revenue~1.0\r \n " "r1~p1~Revenue~1.0\r \n " "r2~p2~Revenue~4.0"
169+ df = build_dataframe_from_csv (raw_csv , dtype = {"Revenue" : float }, shaped = True )
170+
171+ expected_df = pd .DataFrame (
172+ {
173+ "Region" : ["r1" , "r1" , "r2" ],
174+ "Product" : ["p1" , "p1" , "p2" ],
175+ "Revenue" : [1.00000 , 1.00000 , 4.00000 ],
176+ }
177+ )
178+
179+ pd ._testing .assert_frame_equal (expected_df , df , check_column_type = False )
180+
153181 def test_build_dataframe_from_csv_with_none_element_and_none_value (self ):
154182 raw_csv = "d1~d2~Value\r \n " "e1~e1~None\r \n " "e1~e2~2.0\r \n " "None~e1~3.0\r \n " "None~e2~4.0"
155183 df = build_dataframe_from_csv (raw_csv )
0 commit comments