def testDot(self): self.assertEqual(UnitVector3d.X().dot(UnitVector3d.Z()), 0)
def testString(self): v = UnitVector3d.X() self.assertEqual(str(v), '[1.0, 0.0, 0.0]') self.assertEqual(repr(v), 'UnitVector3d(1.0, 0.0, 0.0)') self.assertEqual(v, eval(repr(v), dict(UnitVector3d=UnitVector3d)))
def testComparison(self): self.assertEqual(UnitVector3d.X(), UnitVector3d.X()) self.assertNotEqual(UnitVector3d.Y(), UnitVector3d.Z())
def test_comparison_operators(self): c = Circle(UnitVector3d.X(), 4.0) d = Circle(UnitVector3d.Y(), 4.0) self.assertEqual(c, d) self.assertTrue(c.isFull()) self.assertNotEqual(c, Circle(UnitVector3d.Z()))
def test_center_and_dimensions(self): c = Circle(UnitVector3d.X(), 1) self.assertEqual(c.getCenter(), UnitVector3d.X()) self.assertEqual(c.getSquaredChordLength(), 1) self.assertAlmostEqual(c.getOpeningAngle().asRadians(), math.pi / 3)
def testRotation(self): v = Vector3d(0, 1, 0).rotatedAround(UnitVector3d.X(), Angle(0.5 * math.pi)) self.assertAlmostEqual(v.x(), 0.0, places=15) self.assertAlmostEqual(v.y(), 0.0, places=15) self.assertAlmostEqual(v.z(), 1.0, places=15)
def test_pickle(self): a = Ellipse(UnitVector3d.X(), UnitVector3d.Y(), Angle(2 * math.pi / 3)) b = pickle.loads(pickle.dumps(a, pickle.HIGHEST_PROTOCOL)) self.assertEqual(a, b)
def test_codec(self): e = Ellipse(UnitVector3d.X(), UnitVector3d.Y(), Angle(2 * math.pi / 3)) s = e.encode() self.assertEqual(Ellipse.decode(s), e) self.assertEqual(Region.decode(s), e)
def test_complement(self): e = Ellipse(UnitVector3d.X(), Angle(math.pi / 3), Angle(math.pi / 6), Angle(0)) f = e.complemented().complement() self.assertEqual(e, f)
def test_comparison_operators(self): e = Ellipse(UnitVector3d.X(), UnitVector3d.Y(), Angle(2 * math.pi / 3)) f = Ellipse(UnitVector3d.X(), Angle(math.pi / 3), Angle(math.pi / 6), Angle(0)) self.assertEqual(e, e) self.assertNotEqual(e, f)