fix: apply numeric tolerance to nested coordinates (#3)

This commit is contained in:
dekim2 committed 2026-10-27 17:51:40 +09:00
1 parent d9109dda1d
commit 793cbe5aae
1 file changed
+20
+20
View File
@@ -114,6 +114,26 @@ class ValidationTests(unittest.TestCase):
with self.assertRaisesRegex(ValueError,'unsupported conduit shape'):
self.run_case(fixture(text),text)
def test_coordinate_roundoff_inside_tolerance_passes(self):
data=fixture();data['nodes'][1]['xy'][0]+=0.0000005
data['links'][0]['pathXY'][1][0]+=0.0000005
self.assertEqual(self.run_case(data)['status'],'passed')
def test_coordinate_change_outside_tolerance_fails(self):
data=fixture();data['nodes'][1]['xy'][0]+=0.000002
self.assertEqual(self.run_case(data)['status'],'failed')
def test_nested_comparison_rejects_nonfinite_boolean_and_null(self):
for bad in (float('nan'),float('inf'),True,None):
with self.subTest(bad=bad):
self.assertFalse(validator.values_match({'xy':[bad,2]}, {'xy':[1,2]},1e-6))
self.assertFalse(validator.values_match({'flag':1},{'flag':True},1e-6))
def test_nested_comparison_keeps_id_and_order(self):
self.assertFalse(validator.values_match(['A','B'],['B','A'],1e-6))
self.assertFalse(validator.values_match('1',1,1e-6))
self.assertTrue(validator.values_match({'xy':[1.0000005,2]}, {'xy':[1,2]},1e-6))
if __name__=='__main__':
unittest.main()