FreeCAD / src /Mod /Fem /femtest /function_tests /test_support_utils.py
AbdulElahGwaith's picture
Upload folder using huggingface_hub
985c397 verified
from ..app import support_utils
import unittest
class TestParse_Diff(unittest.TestCase):
def test_ignore_triple_minuses(self) -> None:
diff_lines = """---
---
---""".splitlines()
bad_lines = support_utils.parse_diff(diff_lines=iter(diff_lines))
self.assertFalse(bad_lines, f"Triple minuses should be ignored {bad_lines = }")
def test_ignore_single_character(self) -> None:
diff_lines = """@
@
?
*""".splitlines()
bad_lines = support_utils.parse_diff(diff_lines=iter(diff_lines))
self.assertFalse(bad_lines, f"Single characters are not ignored {bad_lines = }")
def test_not_ignore_single_word(self) -> None:
diff_lines = """---
+++
@@ @@
-12,
+11""".splitlines()
bad_lines = support_utils.parse_diff(diff_lines=iter(diff_lines))
self.assertTrue(bad_lines, f"Single words are ignored {bad_lines = }")
def test_ignore_double_at_sign(self) -> None:
diff_lines = """@@
@@
@@""".splitlines()
bad_lines = support_utils.parse_diff(diff_lines=iter(diff_lines))
self.assertFalse(bad_lines, f"Double '@' signs are not ignored {bad_lines = }")
def test_good_float_rounding(self) -> None:
diff_lines = """---
+++
@@ -11717 +11717 @@
-2505,2,-9.5670268990152E-01
+2505,2,-9.5670268990153E-01
@@ -12539 +12539 @@
-3327,2,-2.2462134450621E+00
+3327,2,-2.2462134450620E+00""".splitlines()
bad_lines = support_utils.parse_diff(diff_lines=iter(diff_lines))
self.assertFalse(bad_lines, f"Good rounding failed {bad_lines = }")
def test_ignore_bad_formatting(self) -> None:
diff_lines = """---
+++
@@ @@
-2, 3, 4, 5, 6
+2,3,4,5,6""".splitlines()
bad_lines = support_utils.parse_diff(diff_lines=iter(diff_lines))
self.assertFalse(bad_lines, f"Formatting is not checked {bad_lines = }")
def test_good_rounding_consecutive_changes(self) -> None:
diff_lines = """---
+++
@@ @@
-2505,2,-9.5670268990152E-01
+2505,2,-9.5670268990153E-01
-3327,2,-2.2462134450621E+00
+3327,2,-2.2462134450620E+00""".splitlines()
bad_lines = support_utils.parse_diff(diff_lines=iter(diff_lines))
self.assertFalse(bad_lines, f"Good consecutive rounding changes failed {bad_lines = }")
def test_good_rounding_space_split(self) -> None:
diff_lines = """---
+++
@@ @@
-2505 2 -9.5670268990152E-01
+2505 2 -9.5670268990153E-01""".splitlines()
bad_lines = support_utils.parse_diff(diff_lines=iter(diff_lines))
self.assertFalse(
bad_lines,
f"Good consecutive rounding changes split by space failed {bad_lines = }",
)
def test_bad_rounding_space_split(self) -> None:
diff_lines = """---
+++
@@ @@
-2505 2 -9.5670268990152E-01
+2505 2 -9.5680268990153E-01""".splitlines()
bad_lines = support_utils.parse_diff(diff_lines=iter(diff_lines))
self.assertTrue(bad_lines, f"Bad rounding split by space shouldn't pass {bad_lines = }")
def test_good_rounding_space_with_extra_word(self) -> None:
diff_lines = """---
+++
@@ @@
-EXTRA 2505 2 -9.5670268990152E-01
+EXTRA 2505 2 -9.5670268990153E-01""".splitlines()
bad_lines = support_utils.parse_diff(diff_lines=iter(diff_lines))
self.assertFalse(bad_lines, f"Good rounding with extra word failed {bad_lines = }")
def test_good_and_bad_rounding(self) -> None:
diff_lines = """---
+++
@@ @@
-2505, 2, -9.5670268990152E-01
+2505, 2, -9.5670268990153E-01
@@ @@
-2505, 2, -9.5670268990152E-01
+2505, 2, -9.5680268990153E-01""".splitlines()
bad_lines = support_utils.parse_diff(diff_lines=iter(diff_lines))
self.assertTrue(bad_lines, f"Bad rounding split by space shouldn't pass {bad_lines = }")
self.assertTrue(
sum(line.startswith("@@") for line in bad_lines) == 1,
f"Exactly one double '@' lines should be present {bad_lines = }",
)
def test_good_and_bad_rounding_consecutive(self) -> None:
diff_lines = """---
+++
@@ @@
-2505, 2, -9.5670268990152E-01
+2505, 2, -9.5670268990153E-01
-2505, 2, -9.5670268990152E-01
+2505, 2, -9.5680268990153E-01""".splitlines()
bad_lines = support_utils.parse_diff(diff_lines=iter(diff_lines))
self.assertTrue(bad_lines, f"Bad rounding shouldn't pass {bad_lines = }")
self.assertTrue(
len(bad_lines) == 3,
f"Number of bad_lines should be exactly three {bad_lines = }",
)
self.assertTrue(
sum(line.startswith("@@") for line in bad_lines) == 1,
f"Exactly one double '@' lines should be present {bad_lines = }",
)
def test_bad_and_bad_rounding(self) -> None:
diff_lines = """---
+++
@@ @@
-2505, 2, -9.5670268990152E-01
+2505, 2. -9.5671268990153E-01
@@ @@
-2505, 2, -9.5670268990152E-01
+2505, 2, -9.5680268990153E-01""".splitlines()
bad_lines = support_utils.parse_diff(diff_lines=iter(diff_lines))
self.assertTrue(bad_lines, f"Bad rounding split by space shouldn't pass {bad_lines = }")
self.assertTrue(
sum(line.startswith("@@") for line in bad_lines) == 2,
f"Exactly two double '@' lines should be present {bad_lines = }",
)