Files
AIC-Project/Tools/ModelTranslator/tests/test_bl_bake.py
T

48 lines
1.5 KiB
Python

import math
import os
import sys
import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import bl_bake as bb
class TestEstimateRayDistance(unittest.TestCase):
def test_two_percent_of_bbox_diagonal(self):
# 3-4-12 直角箱对角线 = 13
self.assertAlmostEqual(bb.estimate_ray_distance((3.0, 4.0, 12.0)), 0.26)
def test_custom_pct(self):
self.assertAlmostEqual(
bb.estimate_ray_distance((1.0, 0.0, 0.0), pct=0.5), 0.5)
class TestOutputStem(unittest.TestCase):
def test_strips_low_suffix(self):
self.assertEqual(bb.output_stem("well1500_low"), "well1500")
def test_keeps_name_without_suffix(self):
self.assertEqual(bb.output_stem("well1500"), "well1500")
def test_only_strips_trailing_suffix(self):
self.assertEqual(bb.output_stem("low_poly_low"), "low_poly")
class TestBboxMismatch(unittest.TestCase):
def test_identical_ok(self):
self.assertFalse(bb.bbox_mismatch((1.0, 2.0, 3.0), (1.0, 2.0, 3.0)))
def test_within_10_percent_ok(self):
self.assertFalse(bb.bbox_mismatch((1.0, 2.0, 3.0), (1.05, 1.9, 3.2)))
def test_one_axis_exceeds(self):
self.assertTrue(bb.bbox_mismatch((1.0, 2.0, 3.0), (1.0, 2.0, 3.5)))
def test_zero_axis_ignored(self):
# 平面模型某轴为 0,不应误报
self.assertFalse(bb.bbox_mismatch((1.0, 0.0, 3.0), (1.0, 0.0, 3.0)))
if __name__ == "__main__":
unittest.main()