@@ -59,6 +59,7 @@ def __init__(self,
5959 ignore_type_subclasses = False ,
6060 ignore_string_case = False ,
6161 number_to_string_func = None ,
62+ ignore_nan_inequality = False ,
6263 verbose_level = 1 ,
6364 view = TEXT_VIEW ,
6465 hasher = None ,
@@ -69,7 +70,7 @@ def __init__(self,
6970 "The valid parameters are ignore_order, report_repetition, significant_digits, "
7071 "number_format_notation, exclude_paths, exclude_types, exclude_regex_paths, ignore_type_in_groups, "
7172 "ignore_string_type_changes, ignore_numeric_type_changes, ignore_type_subclasses, "
72- "number_to_string_func, verbose_level, view, and hasher." ) % ', ' .join (kwargs .keys ()))
73+ "ignore_nan_inequality, number_to_string_func, verbose_level, view, and hasher." ) % ', ' .join (kwargs .keys ()))
7374
7475 self .ignore_order = ignore_order
7576 self .ignore_type_in_groups = self .get_ignore_types_in_groups (
@@ -88,6 +89,7 @@ def __init__(self,
8889 self .type_check_func = type_is_subclass_of_type_group if ignore_type_subclasses else type_in_type_group
8990 self .ignore_string_case = ignore_string_case
9091 self .number_to_string = number_to_string_func or number_to_string
92+ self .ignore_nan_inequality = ignore_nan_inequality
9193 self .hashes = {}
9294 self .hasher = hasher
9395
@@ -613,6 +615,9 @@ def __diff(self, level, parents_ids=frozenset({})):
613615 self .__diff_types (level )
614616 return
615617
618+ if self .ignore_nan_inequality and isinstance (level .t1 , float ) and str (level .t1 ) == str (level .t2 ) == 'nan' :
619+ return
620+
616621 if isinstance (level .t1 , strings ):
617622 self .__diff_str (level )
618623
0 commit comments