def test_is_scale(self): """Test that scale transformations are correctly identified""" s1 = Transform(scale=(1.1, )) s2 = Transform(scale=(1.3, 2.7)) s3 = Transform(scale=(sqrt(2) / 2, pi)) self.assertFalse(Transform(translate=1e-9).is_scale(exactly=True)) self.assertFalse(Transform(rotate=1e-9).is_scale(exactly=True)) self.assertFalse(Transform(skewx=1e-9).is_scale(exactly=True)) self.assertFalse(Transform(skewy=1e-9).is_scale(exactly=True)) self.assertTrue(Transform(translate=1e-9).is_scale(exactly=False)) self.assertTrue(Transform(rotate=1e-9).is_scale(exactly=False)) self.assertTrue(Transform(skewx=1e-9).is_scale(exactly=False)) self.assertTrue(Transform(skewy=1e-9).is_scale(exactly=False)) self.assertFalse(s1.is_translate()) self.assertFalse(s2.is_translate()) self.assertFalse(s3.is_translate()) self.assertFalse(s1.is_rotate()) self.assertFalse(s2.is_rotate()) self.assertFalse(s3.is_rotate()) self.assertTrue(s1.is_scale()) self.assertTrue(s2.is_scale()) self.assertTrue(s3.is_scale())
def test_is_rotation(self): """Test that rotations about origin are correctly identified""" rot1 = Transform(rotate=21) rot2 = Transform(rotate=35) rot3 = Transform(rotate=53) self.assertFalse(Transform(translate=1e-9).is_rotate(exactly=True)) self.assertFalse(Transform(scale=1 + 1e-9).is_rotate(exactly=True)) self.assertFalse(Transform(skewx=1e-9).is_rotate(exactly=True)) self.assertFalse(Transform(skewy=1e-9).is_rotate(exactly=True)) self.assertTrue(Transform(translate=1e-9).is_rotate(exactly=False)) self.assertTrue(Transform(scale=1 + 1e-9).is_rotate(exactly=False)) self.assertTrue(Transform(skewx=1e-9).is_rotate(exactly=False)) self.assertTrue(Transform(skewy=1e-9).is_rotate(exactly=False)) self.assertTrue(rot1.is_rotate()) self.assertTrue(rot2.is_rotate()) self.assertTrue(rot3.is_rotate()) self.assertFalse(rot1.is_translate()) self.assertFalse(rot2.is_translate()) self.assertFalse(rot3.is_translate()) self.assertFalse(rot1.is_scale()) self.assertFalse(rot2.is_scale()) self.assertFalse(rot3.is_scale()) self.assertTrue((rot1 * rot1).is_rotate()) self.assertTrue((rot1 * rot2).is_rotate()) self.assertTrue((rot1 * rot2 * rot3 * rot2 * rot1).is_rotate())
def test_is_translate(self): """Test that translations are correctly identified""" tr1 = Transform(translate=(1.1, )) tr2 = Transform(translate=(1.3, 2.7)) tr3 = Transform(translate=(sqrt(2) / 2, pi)) self.assertFalse(Transform(rotate=1e-9).is_translate(exactly=True)) self.assertFalse(Transform(scale=1 + 1e-9).is_translate(exactly=True)) self.assertFalse(Transform(skewx=1e-9).is_translate(exactly=True)) self.assertFalse(Transform(skewy=1e-9).is_translate(exactly=True)) self.assertTrue(Transform(rotate=1e-9).is_translate(exactly=False)) self.assertTrue(Transform(scale=1 + 1e-9).is_translate(exactly=False)) self.assertTrue(Transform(skewx=1e-9).is_translate(exactly=False)) self.assertTrue(Transform(skewy=1e-9).is_translate(exactly=False)) self.assertTrue(tr1.is_translate()) self.assertTrue(tr2.is_translate()) self.assertTrue(tr3.is_translate()) self.assertFalse(tr1.is_rotate()) self.assertFalse(tr2.is_rotate()) self.assertFalse(tr3.is_rotate()) self.assertFalse(tr1.is_scale()) self.assertFalse(tr2.is_scale()) self.assertFalse(tr3.is_scale()) self.assertTrue((tr1 * tr1).is_translate()) self.assertTrue((tr1 * tr2).is_translate()) self.assertTrue((tr1 * tr2 * tr3 * tr2 * tr1).is_translate()) self.assertFalse(tr1 * tr2 * tr3 * -tr1 * -tr2 * -tr3) # is almost unity
def test_is_unity(self): """Test that unix matrix looks like rotate, scale, and translate""" unity = Transform() self.assertTrue(unity.is_rotate()) self.assertTrue(unity.is_scale()) self.assertTrue(unity.is_translate())