Esempio n. 1
0
 def testChunkBoundingBox(self):
     chunker = Chunker(200, 5)
     chunk_id = 3645
     stripe = chunker.getStripe(chunk_id)
     chunk_in_stripe = chunker.getChunk(chunk_id, stripe)
     bbox = chunker.getChunkBoundingBox(stripe, chunk_in_stripe)
     sbbox = chunker.getSubChunkBoundingBox(0, 0)
     self.assertEqual(stripe, 9)
     self.assertEqual(chunk_in_stripe, 45)
     b = Box.fromRadians(5.048988193233824, -1.4294246573883558,
                         5.1611879309330035, -1.413716694110407)
     self.assertAlmostEqual(bbox, b)
     sb = Box.fromRadians(0.0, -1.5707963267948966, 6.283185307179586,
                          -1.5676547341363067)
     self.assertAlmostEqual(sbbox, sb)
Esempio n. 2
0
 def test_string(self):
     b = Box.fromRadians(0, 0, 1, 1)
     self.assertEqual(str(b), 'Box([0.0, 1.0], [0.0, 1.0])')
     self.assertEqual(
         repr(b),
         'Box(NormalizedAngleInterval.fromRadians(0.0, 1.0), '
         'AngleInterval.fromRadians(0.0, 1.0))'
     )
     self.assertEqual(b, eval(repr(b), dict(
         AngleInterval=AngleInterval, Box=Box,
         NormalizedAngleInterval=NormalizedAngleInterval
     )))
Esempio n. 3
0
 def test_construction(self):
     b = Box(Box.allLongitudes(), Box.allLatitudes())
     self.assertTrue(b.isFull())
     b = Box.fromDegrees(-90, -45, 90, 45)
     self.assertEqual(b, Box(b.getLon(), b.getLat()))
     a = Box.fromRadians(-0.5 * math.pi, -0.25 * math.pi, 0.5 * math.pi,
                         0.25 * math.pi)
     b = Box(LonLat.fromRadians(-0.5 * math.pi, -0.25 * math.pi),
             LonLat.fromRadians(0.5 * math.pi, 0.25 * math.pi))
     c = Box(LonLat.fromRadians(0, 0), Angle(0.5 * math.pi),
             Angle(0.25 * math.pi))
     d = c.clone()
     self.assertEqual(a, b)
     self.assertEqual(b, c)
     self.assertEqual(c, d)
     self.assertNotEqual(id(c), id(d))
     b = Box()
     self.assertTrue(b.isEmpty())
     self.assertTrue(Box.empty().isEmpty())
     self.assertTrue(Box.full().isFull())
Esempio n. 4
0
 def test_codec(self):
     b = Box.fromRadians(0, 0, 1, 1)
     s = b.encode()
     self.assertEqual(Box.decode(s), b)
     self.assertEqual(Region.decode(s), b)
Esempio n. 5
0
 def test_dilation_and_erosion(self):
     a = Box.fromRadians(0.5, -0.5, 1.5, 0.5)
     b = a.dilatedBy(Angle(0.5), Angle(0.5)).erodedBy(Angle(1), Angle(1))
     a.dilateBy(Angle(0.5), Angle(0.5)).erodeBy(Angle(1), Angle(1))
     self.assertEqual(a, b)
     self.assertEqual(a, LonLat.fromRadians(1, 0))