@@ -243,34 +243,47 @@ def test_empty_loop_block():
243243 assert len (parser .data_blocks ) == 1
244244
245245
246-
247- @pytest .mark .parametrize ("quote_character, filename" , [("'" ,basic_single_quote ),
248- ('"' ,basic_double_quote ),
249- ])
250- def test_quote_basic (quote_character ,filename ):
246+ @pytest .mark .parametrize ("quote_character, filename" , [("'" , basic_single_quote ),
247+ ('"' , basic_double_quote ),
248+ ])
249+ def test_quote_basic (quote_character , filename ):
251250 parser = StarParser (filename )
252251 assert len (parser .data_blocks ) == 1
253252 assert parser .data_blocks ['' ]['no_quote_string' ] == "noquote"
254253 assert parser .data_blocks ['' ]['quote_string' ] == "quote string"
255254 assert parser .data_blocks ['' ]['whitespace_string' ] == " "
256255 assert parser .data_blocks ['' ]['empty_string' ] == ""
257256
258- @pytest .mark .parametrize ("quote_character, filename" , [("'" ,loop_single_quote ),
259- ('"' ,loop_double_quote ),
260- ])
261- def test_quote_loop (quote_character ,filename ):
257+
258+ @pytest .mark .parametrize ("quote_character, filename" , [("'" , loop_single_quote ),
259+ ('"' , loop_double_quote ),
260+ ])
261+ def test_quote_loop (quote_character , filename ):
262262 import math
263263 parser = StarParser (filename )
264264 assert len (parser .data_blocks ) == 1
265- assert parser .data_blocks ['' ].loc [0 ,'no_quote_string' ] == "noquote"
266- assert parser .data_blocks ['' ].loc [0 ,'quote_string' ] == "quote string"
267- assert parser .data_blocks ['' ].loc [0 ,'whitespace_string' ] == " "
268- assert parser .data_blocks ['' ].loc [0 ,'empty_string' ] == ""
265+ assert parser .data_blocks ['' ].loc [0 , 'no_quote_string' ] == "noquote"
266+ assert parser .data_blocks ['' ].loc [0 , 'quote_string' ] == "quote string"
267+ assert parser .data_blocks ['' ].loc [0 , 'whitespace_string' ] == " "
268+ assert parser .data_blocks ['' ].loc [0 , 'empty_string' ] == ""
269269
270270 assert parser .data_blocks ['' ].dtypes ['number_and_string' ] == object
271271 assert parser .data_blocks ['' ].dtypes ['number_and_empty' ] == 'float64'
272272 assert parser .data_blocks ['' ].dtypes ['number' ] == 'float64'
273273 assert parser .data_blocks ['' ].dtypes ['empty_string_and_normal_string' ] == object
274274
275- assert math .isnan (parser .data_blocks ['' ].loc [1 ,'number_and_empty' ])
276- assert parser .data_blocks ['' ].loc [0 ,'empty_string_and_normal_string' ] == ''
275+ assert math .isnan (parser .data_blocks ['' ].loc [1 , 'number_and_empty' ])
276+ assert parser .data_blocks ['' ].loc [0 , 'empty_string_and_normal_string' ] == ''
277+
278+
279+ def test_parse_as_string ():
280+ parser = StarParser (postprocess , parse_as_string = ['rlnFinalResolution' , 'rlnResolution' ])
281+
282+ # check 'rlnFinalResolution' is parsed as string in general (basic) block
283+ block = parser .data_blocks ['general' ]
284+ assert type (block ['rlnFinalResolution' ]) == str
285+
286+ # check 'rlnResolution' is parsed as string in fsc (loop) block
287+ df = parser .data_blocks ['fsc' ]
288+ assert df ['rlnResolution' ].dtype == 'object'
289+
0 commit comments