import unittest import cadquery as Cq import nhf.touhou.houjuu_nue as M import nhf.touhou.houjuu_nue.parts as MP from nhf.checks import pairwise_intersection class TestDiskJoint(unittest.TestCase): def test_collision_0(self): j = MP.DiskJoint() assembly = j.assembly(angle=0) self.assertEqual(pairwise_intersection(assembly), []) def test_collision_mid(self): j = MP.DiskJoint() assembly = j.assembly(angle=j.movement_angle / 2) self.assertEqual(pairwise_intersection(assembly), []) def test_collision_max(self): j = MP.DiskJoint() assembly = j.assembly(angle=j.movement_angle) self.assertEqual(pairwise_intersection(assembly), []) class Test(unittest.TestCase): def test_hs_joint_parent(self): p = M.Parameters() obj = p.hs_joint_parent() self.assertIsInstance(obj.val().solids(), Cq.Solid, msg="H-S joint must be in one piece") def test_wing_root(self): p = M.Parameters() obj = p.wing_root() assert isinstance(obj, Cq.Assembly) #self.assertIsInstance(obj.solids(), Cq.Solid, msg="Wing root must be in one piece") bbox = obj.toCompound().BoundingBox() msg = "Must fix 256^3 bbox" self.assertLess(bbox.xlen, 255, msg=msg) self.assertLess(bbox.ylen, 255, msg=msg) self.assertLess(bbox.zlen, 255, msg=msg) def test_wings_assembly(self): p = M.Parameters() p.wings_assembly() def test_trident_assembly(self): p = M.Parameters() assembly = p.trident_assembly() bbox = assembly.toCompound().BoundingBox() length = bbox.zlen self.assertGreater(length, 1300) self.assertLess(length, 1700) #def test_assemblies(self): # p = M.Parameters() # p.check_all() if __name__ == '__main__': unittest.main()