@@ -120,9 +120,9 @@ def test_read_index_col_none(self, version, temp_file):
120
120
expected ["a" ] = expected ["a" ].astype (np .int32 )
121
121
tm .assert_frame_equal (read_df , expected , check_index_type = True )
122
122
123
- # Note this test starts at format version 108 as the missing code for double
124
- # was different prior to this (see GH 58149) and would therefore fail
125
- @ pytest . mark . parametrize ( "version" , [ 108 , 110 , 111 , 113 , 114 , 115 , 117 , 118 , 119 ] )
123
+ @ pytest . mark . parametrize (
124
+ "version" , [ 102 , 103 , 104 , 105 , 108 , 110 , 111 , 113 , 114 , 115 , 117 , 118 , 119 ]
125
+ )
126
126
def test_read_dta1 (self , version , datapath ):
127
127
file = datapath ("io" , "data" , "stata" , f"stata1_{ version } .dta" )
128
128
parsed = self .read_dta (file )
@@ -918,8 +918,8 @@ def test_missing_value_generator(self, temp_file):
918
918
)
919
919
assert val .string == ".z"
920
920
921
- @pytest .mark .parametrize ("file " , ["stata8_113" , "stata8_115" , "stata8_117" ])
922
- def test_missing_value_conversion (self , file , datapath ):
921
+ @pytest .mark .parametrize ("version " , [113 , 115 , 117 ])
922
+ def test_missing_value_conversion (self , version , datapath ):
923
923
columns = ["int8_" , "int16_" , "int32_" , "float32_" , "float64_" ]
924
924
smv = StataMissingValue (101 )
925
925
keys = sorted (smv .MISSING_VALUES .keys ())
@@ -930,14 +930,13 @@ def test_missing_value_conversion(self, file, datapath):
930
930
expected = DataFrame (data , columns = columns )
931
931
932
932
parsed = read_stata (
933
- datapath ("io" , "data" , "stata" , f"{ file } .dta" ), convert_missing = True
933
+ datapath ("io" , "data" , "stata" , f"stata8_{ version } .dta" ),
934
+ convert_missing = True ,
934
935
)
935
936
tm .assert_frame_equal (parsed , expected )
936
937
937
- # Note this test starts at format version 108 as the missing code for double
938
- # was different prior to this (see GH 58149) and would therefore fail
939
- @pytest .mark .parametrize ("file" , ["stata8_108" , "stata8_110" , "stata8_111" ])
940
- def test_missing_value_conversion_compat (self , file , datapath ):
938
+ @pytest .mark .parametrize ("version" , [104 , 105 , 108 , 110 , 111 ])
939
+ def test_missing_value_conversion_compat (self , version , datapath ):
941
940
columns = ["int8_" , "int16_" , "int32_" , "float32_" , "float64_" ]
942
941
smv = StataMissingValue (101 )
943
942
keys = sorted (smv .MISSING_VALUES .keys ())
@@ -947,7 +946,25 @@ def test_missing_value_conversion_compat(self, file, datapath):
947
946
expected = DataFrame (data , columns = columns )
948
947
949
948
parsed = read_stata (
950
- datapath ("io" , "data" , "stata" , f"{ file } .dta" ), convert_missing = True
949
+ datapath ("io" , "data" , "stata" , f"stata8_{ version } .dta" ),
950
+ convert_missing = True ,
951
+ )
952
+ tm .assert_frame_equal (parsed , expected )
953
+
954
+ # The byte type was not supported prior to the 104 format
955
+ @pytest .mark .parametrize ("version" , [102 , 103 ])
956
+ def test_missing_value_conversion_compat_nobyte (self , version , datapath ):
957
+ columns = ["int8_" , "int16_" , "int32_" , "float32_" , "float64_" ]
958
+ smv = StataMissingValue (101 )
959
+ keys = sorted (smv .MISSING_VALUES .keys ())
960
+ data = []
961
+ row = [StataMissingValue (keys [j * 27 ]) for j in [1 , 1 , 2 , 3 , 4 ]]
962
+ data .append (row )
963
+ expected = DataFrame (data , columns = columns )
964
+
965
+ parsed = read_stata (
966
+ datapath ("io" , "data" , "stata" , f"stata8_{ version } .dta" ),
967
+ convert_missing = True ,
951
968
)
952
969
tm .assert_frame_equal (parsed , expected )
953
970
0 commit comments