@@ -624,15 +624,7 @@ def test_assert_set_equal(self):
624
624
self .assertRaises (AssertionError , self .assertSetEqual , set1 , set2 )
625
625
626
626
@parameterized .named_parameters (
627
- dict (testcase_name = 'empty' , a = {}, b = {}),
628
627
dict (testcase_name = 'equal_float' , a = {'a' : 1.01 }, b = {'a' : 1.01 }),
629
- dict (testcase_name = 'int_and_float' , a = {'a' : 0 }, b = {'a' : 0.000_000_01 }),
630
- dict (testcase_name = 'float_and_int' , a = {'a' : 0.000_000_01 }, b = {'a' : 0 }),
631
- dict (
632
- testcase_name = 'mixed_elements' ,
633
- a = {'a' : 'A' , 'b' : 1 , 'c' : 0.999_999_99 },
634
- b = {'a' : 'A' , 'b' : 1 , 'c' : 1 },
635
- ),
636
628
dict (
637
629
testcase_name = 'float_artifacts' ,
638
630
a = {'a' : 0.15000000000000002 },
@@ -644,7 +636,7 @@ def test_assert_set_equal(self):
644
636
b = {'a' : 1.000_000_01 , 'b' : 1.999_999_99 },
645
637
),
646
638
)
647
- def test_assert_dict_almost_equal (self , a , b ):
639
+ def test_assert_dict_almost_equal_on_floats (self , a , b ):
648
640
self .assertDictAlmostEqual (a , b )
649
641
650
642
@parameterized .named_parameters (
@@ -702,6 +694,42 @@ def test_assert_dict_almost_equal_fails_with_tolerance(
702
694
with self .assertRaises (self .failureException ):
703
695
self .assertDictAlmostEqual (a , b , places = places , delta = delta )
704
696
697
+ @parameterized .named_parameters (
698
+ dict (testcase_name = 'empty' , a = {}, b = {}),
699
+ dict (testcase_name = 'int_and_float' , a = {'a' : 0 }, b = {'a' : 0.000_000_01 }),
700
+ dict (testcase_name = 'float_and_int' , a = {'a' : 1e-8 }, b = {'a' : 0 }),
701
+ dict (testcase_name = 'float_and_bool' , a = {'a' : 1.0 }, b = {'a' : True }),
702
+ dict (testcase_name = 'complex_and_float' , a = {'a' : 1j * 1j }, b = {'a' : - 1.0 }),
703
+ dict (
704
+ testcase_name = 'mixed_elements' ,
705
+ a = {'a' : 'A' , 'b' : 1 , 'c' : False , 'd' : 0.999_999_99 , 'e' : 1j },
706
+ b = {'a' : 'A' , 'b' : 1 , 'c' : False , 'd' : 1 , 'e' : 0.999_999_99j },
707
+ ),
708
+ dict (testcase_name = 'list_values' , a = {'a' : [0.1 ]}, b = {'a' : [0.1 ]}),
709
+ dict (testcase_name = 'dict_values' , a = {'a' : {'b' : 1 }}, b = {'a' : {'b' : 1 }}),
710
+ )
711
+ def test_assert_dict_almost_equal_non_float_comparison_succeeds (self , a , b ):
712
+ self .assertDictAlmostEqual (a , b )
713
+
714
+ @parameterized .named_parameters (
715
+ dict (testcase_name = 'different_strings' , a = {'a' : 'b' }, b = {'a' : 'c' }),
716
+ dict (testcase_name = 'string_and_float' , a = {'a' : 'b' }, b = {'a' : 0.1 }),
717
+ dict (testcase_name = 'complex_and_float' , a = {'a' : 1j }, b = {'a' : 1.0 }),
718
+ dict (
719
+ testcase_name = 'different_bools' ,
720
+ a = {'a' : False },
721
+ b = {'a' : True },
722
+ ),
723
+ dict (
724
+ testcase_name = 'no_recursion' ,
725
+ a = {'a' : {'b' : 0 }},
726
+ b = {'a' : {'b' : 1e-8 }},
727
+ ),
728
+ )
729
+ def test_assert_dict_almost_equal_non_float_comparison_fails (self , a , b ):
730
+ with self .assertRaises (self .failureException ):
731
+ self .assertDictAlmostEqual (a , b )
732
+
705
733
def test_assert_dict_almost_equal_assertion_message (self ):
706
734
with self .assertRaises (AssertionError ) as e :
707
735
self .assertDictAlmostEqual ({'a' : 0.6 }, {'a' : 1.0 }, delta = 0.1 )
0 commit comments