def test_print(self): mat = Mat([ [1.234, 9, 39], [3, 165, 0.1], ]) self.assertEqual(str(mat), "| 1.23 9 39 |\n| 3 165 0.10 |") mat = Mat.new_identity(4) self.assertEqual(str(mat), "| 1 0 0 0 |\n| 0 1 0 0 |\n| 0 0 1 0 |\n| 0\ 0 0 1 |") mat[1][1] = 348290482.23984 self.assertEqual(str(mat), "| 1 0 0 \ 0 |\n| 0 348290482.24 0 0 |\n| \ 0 0 1 0 |\n| 0 0\ 0 1 |") # try some fancy character renderings mat = Mat( [pi, pi/2, pi/4], ) self.assertEqual(str(mat.friendly()), "| \xcf\x80 \xcf\x80/2 \xcf\x80/4 |") mat = Mat.new_rotation_3d(radians(45), radians(30), radians(270)) self.assertEqual(str(mat.friendly()), "| 0 cos(\xcf\x80/6) \ sin(\xcf\x80/6) 0 |\n| sin(-\xcf\x80/4) 0.35 -0.61 0 \ |\n| sin(-\xcf\x80/4) -0.35 0.61 0 |\n| 0 0 \ 0 1 |") self.assertEqual(str(mat), "| -0.00 0.87 0.50 0.00 |\n| -0.71 \ 0.35 -0.61 0.00 |\n| -0.71 -0.35 0.61 0.00 |\n| 0.00 0.00 0.00 1.00 |")
def test_pi_multiples(self): self.assertEqual(pi_multiple(radians(180), self.s, self.t), "π") self.assertEqual(pi_multiple(radians(360), self.s, self.t), "2π") self.assertEqual(pi_multiple(13*radians(180), self.s, self.t), "13π") self.assertEqual(pi_multiple(radians(60), self.s, self.t), "π/3") self.assertEqual(pi_multiple(radians(45), self.s, self.t), "π/4") self.assertEqual(pi_multiple(radians(30), self.s, self.t), "π/6") self.assertEqual(pi_multiple(radians(330), self.s, self.t), "11π/6") self.assertEqual(pi_multiple(radians(-360), self.s, self.t), "-2π") self.assertEqual(pi_multiple(radians(-60), self.s, self.t), "-π/3") self.assertEqual(match(radians(180), self.t), "π")
def test_trig(self): self.assertEqual(trig(sin(radians(-45)), self.s, self.t), "sin(-π/4)") self.assertEqual(trig(tan(radians(30)), self.s, self.t), "tan(π/6)") self.assertEqual(match(sin(radians(-45)), self.t), "sin(-π/4)")