@@ -498,23 +498,42 @@ def test_make(self):
498498
499499 def test_decimals (self ):
500500 a = ContinuousVariable ("a" , 4 )
501- self .assertEqual (a .str_val (4.654321 ), "4.6543" )
502- self .assertEqual (a .str_val (4.654321654321 ), "4.6543 " )
501+ self .assertEqual (a .str_val (4.6543 ), "4.6543" )
502+ self .assertEqual (a .str_val (4.25 ), "4.2500 " )
503503 self .assertEqual (a .str_val (Unknown ), "?" )
504504 a = ContinuousVariable ("a" , 5 )
505505 self .assertEqual (a .str_val (0.000000000001 ), "0.00000" )
506506 a = ContinuousVariable ("a" , 10 )
507507 self .assertEqual (a .str_val (0.000000000001 ), "1e-12" )
508508
509+ def test_more_decimals (self ):
510+ a = ContinuousVariable ("a" , 0 )
511+ self .assertEqual (a .str_val (4 ), "4" )
512+ self .assertEqual (a .str_val (4.1234 ), "4.12" )
513+
514+ a = ContinuousVariable ("a" , 2 )
515+ self .assertEqual (a .str_val (4 ), "4.00" )
516+ self .assertEqual (a .str_val (4.25 ), "4.25" )
517+ self .assertEqual (a .str_val (4.1234123 ), "4.1234" )
518+
519+ for cca4 in (4 + 1e-9 , 4 - 1e-9 ):
520+ assert cca4 != 4
521+ self .assertEqual (a .str_val (cca4 ), "4.00" )
522+
509523 def test_adjust_decimals (self ):
524+ # Default is 3 decimals, but format is %g
510525 a = ContinuousVariable ("a" )
526+ self .assertEqual (a .str_val (5 ), "5" )
511527 self .assertEqual (a .str_val (4.65432 ), "4.65432" )
528+
529+ # Change to no decimals
512530 a .val_from_str_add ("5" )
513- self .assertEqual (a .str_val (4.65432 ), "5" )
531+ self .assertEqual (a .str_val (5 ), "5" )
532+
533+ # Change to two decimals
514534 a .val_from_str_add (" 5.12 " )
515- self .assertEqual (a .str_val (4.65432 ), "4.65" )
516- a .val_from_str_add ("5.1234" )
517- self .assertEqual (a .str_val (4.65432 ), "4.6543" )
535+ self .assertEqual (a .str_val (4.65 ), "4.65" )
536+ self .assertEqual (a .str_val (5 ), "5.00" )
518537
519538 def varcls_modified (self , name ):
520539 var = super ().varcls_modified (name )
0 commit comments