ModelTranslator: UV 岛数/翻转/利用率纯逻辑(TDD)
This commit is contained in:
@@ -36,5 +36,44 @@ class TestWithinTolerance(unittest.TestCase):
|
||||
self.assertFalse(bd.within_tolerance(0, 0))
|
||||
|
||||
|
||||
class TestCountIslands(unittest.TestCase):
|
||||
def test_no_faces(self):
|
||||
self.assertEqual(bd.count_islands(0, []), 0)
|
||||
|
||||
def test_no_pairs_each_face_is_island(self):
|
||||
self.assertEqual(bd.count_islands(3, []), 3)
|
||||
|
||||
def test_chain_merges_to_one(self):
|
||||
self.assertEqual(bd.count_islands(4, [(0, 1), (1, 2), (2, 3)]), 1)
|
||||
|
||||
def test_two_groups(self):
|
||||
self.assertEqual(bd.count_islands(5, [(0, 1), (3, 4)]), 3) # {0,1} {2} {3,4}
|
||||
|
||||
def test_duplicate_pairs_ok(self):
|
||||
self.assertEqual(bd.count_islands(2, [(0, 1), (1, 0), (0, 1)]), 1)
|
||||
|
||||
|
||||
class TestFlippedFraction(unittest.TestCase):
|
||||
def test_empty_is_zero(self):
|
||||
self.assertEqual(bd.flipped_fraction([]), 0.0)
|
||||
|
||||
def test_mixed(self):
|
||||
self.assertAlmostEqual(bd.flipped_fraction([0.1, -0.2, 0.3, 0.4]), 0.25)
|
||||
|
||||
def test_all_positive(self):
|
||||
self.assertEqual(bd.flipped_fraction([0.1, 0.2]), 0.0)
|
||||
|
||||
|
||||
class TestFillRatio(unittest.TestCase):
|
||||
def test_sum(self):
|
||||
self.assertAlmostEqual(bd.fill_ratio([0.2, 0.3]), 0.5)
|
||||
|
||||
def test_clamped_to_one(self):
|
||||
self.assertEqual(bd.fill_ratio([0.8, 0.9]), 1.0)
|
||||
|
||||
def test_empty_is_zero(self):
|
||||
self.assertEqual(bd.fill_ratio([]), 0.0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user