Exemplo n.º 1
0
 def testPickle(self):
     a = ConvexPolygon(
         [UnitVector3d.Z(),
          UnitVector3d.X(),
          UnitVector3d.Y()])
     b = pickle.loads(pickle.dumps(a, pickle.HIGHEST_PROTOCOL))
     self.assertEqual(a, b)
Exemplo n.º 2
0
 def testRelationships(self):
     p = ConvexPolygon(
         [UnitVector3d.Z(),
          UnitVector3d.X(),
          UnitVector3d.Y()])
     self.assertTrue(p.contains(p.getCentroid()))
     self.assertEqual(p.getBoundingCircle().relate(p), CONTAINS)
Exemplo n.º 3
0
 def test_construction(self):
     self.assertTrue(Circle.empty().isEmpty())
     self.assertTrue(Circle().isEmpty())
     self.assertTrue(Circle.full().isFull())
     c = Circle(UnitVector3d.X())
     self.assertEqual(c.getOpeningAngle(), Angle(0))
     self.assertEqual(c.getSquaredChordLength(), 0)
     c = Circle(UnitVector3d.Z(), 2.0)
     self.assertTrue(c.contains(UnitVector3d.Z()))
     c = Circle(UnitVector3d.Z(), Angle(math.pi))
     self.assertTrue(c.isFull())
     d = c.clone()
     self.assertEqual(c, d)
     self.assertNotEqual(id(c), id(d))
     e = Circle(d)
     self.assertEqual(d, e)
Exemplo n.º 4
0
 def testYaml(self):
     a = ConvexPolygon(
         [UnitVector3d.Z(),
          UnitVector3d.X(),
          UnitVector3d.Y()])
     b = yaml.safe_load(yaml.dump(a))
     self.assertEqual(a, b)
Exemplo n.º 5
0
 def testCodec(self):
     p = ConvexPolygon(
         [UnitVector3d.Z(),
          UnitVector3d.X(),
          UnitVector3d.Y()])
     s = p.encode()
     self.assertEqual(ConvexPolygon.decode(s), p)
     self.assertEqual(Region.decode(s), p)
Exemplo n.º 6
0
 def testConstruction(self):
     points = [UnitVector3d.Z(), UnitVector3d.X(), UnitVector3d.Y()]
     p1 = ConvexPolygon(points)
     self.assertEqual(points, p1.getVertices())
     p2 = p1.clone()
     self.assertEqual(p1, p2)
     p3 = ConvexPolygon(
         [-UnitVector3d.Z(),
          UnitVector3d.X(),
          UnitVector3d.Y()])
     self.assertNotEqual(p1, p3)
     p4 = ConvexPolygon.convexHull([
         UnitVector3d.Y(),
         UnitVector3d.X(),
         UnitVector3d(1, 1, 1),
         UnitVector3d.Z()
     ])
     self.assertEqual(p1, p4)
Exemplo n.º 7
0
 def test_string(self):
     c = Circle(UnitVector3d.Z(), Angle(1.0))
     self.assertEqual(str(c), 'Circle([0.0, 0.0, 1.0], 1.0)')
     self.assertEqual(repr(c),
                      'Circle(UnitVector3d(0.0, 0.0, 1.0), Angle(1.0))')
     self.assertEqual(
         c,
         eval(repr(c),
              dict(Angle=Angle, Circle=Circle, UnitVector3d=UnitVector3d)))
Exemplo n.º 8
0
 def testArithmeticOperators(self):
     self.assertEqual(-UnitVector3d.X(), UnitVector3d(-1, 0, 0))
     self.assertEqual(UnitVector3d.X() - UnitVector3d.X(),
                      Vector3d(0, 0, 0))
     self.assertEqual(UnitVector3d.X() + UnitVector3d(1, 0, 0),
                      UnitVector3d.X() * 2)
     self.assertEqual(UnitVector3d.Y() - Vector3d(0, 0.5, 0),
                      UnitVector3d.Y() / 2)
     self.assertEqual(UnitVector3d.Z().cwiseProduct(Vector3d(2, 3, 4)),
                      Vector3d(0, 0, 4))
Exemplo n.º 9
0
 def test_string(self):
     c = Ellipse(UnitVector3d.Z(), Angle(1.0))
     self.assertEqual(str(c),
                      'Ellipse([0.0, 0.0, 1.0], [0.0, 0.0, 1.0], 1.0)')
     self.assertEqual(
         repr(c), 'Ellipse(UnitVector3d(0.0, 0.0, 1.0), '
         'UnitVector3d(0.0, 0.0, 1.0), Angle(1.0))')
     self.assertEqual(
         c,
         eval(repr(c),
              dict(Angle=Angle, Ellipse=Ellipse,
                   UnitVector3d=UnitVector3d)))
Exemplo n.º 10
0
 def testString(self):
     p = ConvexPolygon(
         [UnitVector3d.Z(),
          UnitVector3d.X(),
          UnitVector3d.Y()])
     self.assertEqual(str(p), repr(p))
     self.assertEqual(
         repr(p), 'ConvexPolygon([UnitVector3d(0.0, 0.0, 1.0), '
         'UnitVector3d(1.0, 0.0, 0.0), '
         'UnitVector3d(0.0, 1.0, 0.0)])')
     self.assertEqual(
         p,
         eval(repr(p),
              dict(ConvexPolygon=ConvexPolygon, UnitVector3d=UnitVector3d)))
Exemplo n.º 11
0
 def test_expanding_and_clipping(self):
     a = Circle.empty()
     b = (a.expandedTo(UnitVector3d.X()).expandedTo(
         Circle(UnitVector3d.Y(),
                1)).clippedTo(Circle(UnitVector3d(1, 1, 0),
                                     1)).clippedTo(UnitVector3d.Y()))
     a.expandTo(UnitVector3d.X())
     a.expandTo(Circle(UnitVector3d.Y(), 1))
     a.clipTo(Circle(UnitVector3d(1, 1, 0), 1))
     a.clipTo(UnitVector3d.Y())
     self.assertEqual(a, b)
     self.assertEqual(a, Circle(UnitVector3d.Y()))
     a.clipTo(UnitVector3d.Z())
     self.assertTrue(a.isEmpty())
Exemplo n.º 12
0
 def testRelationships(self):
     p = ConvexPolygon(
         [UnitVector3d.Z(),
          UnitVector3d.X(),
          UnitVector3d.Y()])
     self.assertTrue(p.contains(p.getCentroid()))
     boundingCircle = p.getBoundingCircle()
     self.assertEqual(boundingCircle.relate(p), CONTAINS)
     self.assertTrue(p.isWithin(boundingCircle))
     self.assertTrue(p.intersects(boundingCircle))
     self.assertFalse(p.isDisjointFrom(boundingCircle))
     self.assertFalse(p.contains(boundingCircle))
     tinyCircle = Circle(boundingCircle.getCenter())
     self.assertFalse(p.isWithin(tinyCircle))
     self.assertTrue(p.intersects(tinyCircle))
     self.assertFalse(p.isDisjointFrom(tinyCircle))
     self.assertTrue(p.contains(tinyCircle))
Exemplo n.º 13
0
 def testConstruction(self):
     a1 = NormalizedAngle(1.0)
     a2 = NormalizedAngle.fromRadians(1.0)
     a3 = NormalizedAngle.fromDegrees(57.29577951308232)
     self.assertEqual(a1, a2)
     self.assertEqual(a1.asRadians(), 1.0)
     self.assertEqual(a1, a3)
     self.assertEqual(a1.asDegrees(), 57.29577951308232)
     self.assertEqual(
         NormalizedAngle.between(NormalizedAngle(0), NormalizedAngle(1)),
         NormalizedAngle(1))
     a = NormalizedAngle.center(NormalizedAngle(0), NormalizedAngle(1))
     self.assertAlmostEqual(a.asRadians(), 0.5, places=15)
     a = NormalizedAngle(LonLat.fromDegrees(45, 0),
                         LonLat.fromDegrees(90, 0))
     self.assertAlmostEqual(a.asDegrees(), 45.0, places=13)
     a = NormalizedAngle(UnitVector3d.Y(), UnitVector3d.Z())
     self.assertAlmostEqual(a.asDegrees(), 90.0, places=13)
Exemplo n.º 14
0
 def testDot(self):
     self.assertEqual(UnitVector3d.X().dot(UnitVector3d.Z()), 0)
Exemplo n.º 15
0
 def testComparison(self):
     self.assertEqual(UnitVector3d.X(), UnitVector3d.X())
     self.assertNotEqual(UnitVector3d.Y(), UnitVector3d.Z())
Exemplo n.º 16
0
 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()))