원본 SWMM 자료와 화면 제원 자동 검증 추가 (#1) #2

Merged
dekim2 merged 12 commits from codex/issue-1-validation into main 2026-10-27 17:58:36 +09:00
Showing only changes of commit 793cbe5aae - Show all commits
+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()