def testRotate(self):
   # Rotate about 0.
   p1 = (0, 0)
   self.assertEqual((0, 0), area_notice.vec_rot(p1, 0))
   self.assertEqual((0, 0), area_notice.vec_rot(p1, math.pi))
   self.assertEqual((0, 0), area_notice.vec_rot(p1, math.pi / 2))
   self.assertEqual((0, 0), area_notice.vec_rot(p1, math.pi / 4))
   self.assertEqual((0, 0), area_notice.vec_rot(p1, -math.pi / 4))
  def testRotate2(self):
    # Rotate of 1, 0.
    p1 = (1, 0)
    self.assertEqual((1, 0), area_notice.vec_rot(p1, 0))
    self.assertAlmostEqualSeries((0, 1), area_notice.vec_rot(p1, PI_2))
    self.assertAlmostEqualSeries((-1, 0), area_notice.vec_rot(p1, math.pi))
    self.assertAlmostEqualSeries((0, -1), area_notice.vec_rot(p1, -PI_2))

    self.assertAlmostEqualSeries(
        [math.sqrt(.5)] * 2, area_notice.vec_rot(p1, math.pi / 4))
    self.assertAlmostEqualSeries(
        (0, 1), area_notice.vec_rot(area_notice.vec_rot(p1, PI_4), PI_4))

    self.assertAlmostEqualSeries(
        [0.707106781] * 2, area_notice.vec_rot((1, 0), PI_4), places=4)
    self.assertAlmostEqualSeries(
        (0, 1), area_notice.vec_rot([math.sqrt(.5)] * 2, PI_4))
  def testRotate3(self):
    # Rotate of 0, 1.
    p1 = (0, 1)
    self.assertEqual((0, 1), area_notice.vec_rot(p1, 0))
    self.assertAlmostEqualSeries((-1, 0), area_notice.vec_rot(p1, math.pi / 2))
    self.assertAlmostEqualSeries((0, -1), area_notice.vec_rot(p1, math.pi))
    self.assertAlmostEqualSeries((1, 0), area_notice.vec_rot(p1, -math.pi / 2))

    self.assertAlmostEqualSeries(
        (-math.sqrt(.5), math.sqrt(.5)), area_notice.vec_rot(p1, PI_4))
    self.assertAlmostEqualSeries(
        (-1, 0), area_notice.vec_rot(area_notice.vec_rot(p1, PI_4), PI_4))
    self.assertAlmostEqualSeries(
        (0, 1),
        area_notice.vec_rot((math.sqrt(.5), math.sqrt(.5)), math.pi / 4))