def test_simple_gml_string(self): gml = """<gml> <drawing> <stroke> <pt><x>1</x><y>1</y><t>1</t></pt> </stroke> </drawing> </gml>""" tag = Tag.fromGML(gml) self.assertEqual( tag.strokes[0], Stroke((1,1,1)) )
def test_empty_strokes_have_same_hash(self): s1 = Stroke() s2 = Stroke() self.assertEqual(hash(s1), hash(s2))
def test_flattened_stroke(self): tag = Tag( Stroke((0,0,0)), Stroke((1,1,1)) ) self.assertEqual( tag.flattened_stroke(), Stroke((0,0,0), (1,1,1)) )
def test_dimesions(self): tag = Tag( Stroke((-1,-1,-1)), Stroke((1,1,1)) ) self.assertEqual( tag.dimensions, (2,2) )
def test_duration(self): tag = Tag( Stroke((0,0,1)), Stroke((0,0,2)) ) self.assertEqual(tag.duration, 3)
def test_std_distance_from_centroid(self): tag = Tag( Stroke((0,0,0)), Stroke((0,1,0)) ) self.assertEqual( tag.std_distance_from_centroid, 0 )
def test_equal_mean_distance_from_centroid(self): tag = Tag( Stroke((-1,0,0)), Stroke((1,0,0))) self.assertEqual( tag.mean_distance_from_centroid, 1 )
def test_three_colinear_points_mean_absolute_joint_angle(self): stroke = Stroke((0,0,0),(1,1,1),(2,2,2)) self.assertEqual( stroke.mean_absolute_joint_angle, 0 )
def test_bounds(self): stroke = Stroke((-1,-1,-1),(1,1,1)) self.assertEqual(stroke.bounds, ((-1,-1),(1,1)))
def test_strokes_with_same_points_have_same_hash(self): s1 = Stroke((1,1,1)) s2 = Stroke((1,1,1)) self.assertEqual(hash(s1), hash(s2))
def test_smoothed_pins_endpoints(self): points = ((50,50,50),) + ((20,20,20),) * 7 + ((80,80,80),) stroke = Stroke(*points) smoothed = stroke.smoothed() self.assertEqual( smoothed.points[0], (50,50,50) ) self.assertEqual( smoothed.points[-1], (80,80,80) )
def test_two_points_total_corners(self): stroke = Stroke((0,0,0), (1,1,1)) self.assertEqual( stroke.total_corners, 0 )
def test_smoothed_with_blending(self): points = [ (1,1,1), (0,0,0) ] * 4 stroke = Stroke(*points) smoothed = stroke.smoothed() self.assertTrue( smoothed.points[1][0] > 0 ) self.assertTrue( smoothed.points[2][0] < 1 )
def test_smoothed_equal_points(self): points = [ (1,1,1) ] * 7 stroke = Stroke(*points) smoothed = stroke.smoothed() self.assertEqual(smoothed.points, points)
def test_smoothed_too_few_points(self): stroke = Stroke((4,4,4),(1,1,1),(4,4,4)) smoothed = stroke.smoothed() self.assertEqual(smoothed.points, [(4,4,4),(1,1,1),(4,4,4)])
def test_single_point_mean_absolute_joint_angle(self): stroke = Stroke((0,0,0)) self.assertEqual( stroke.mean_absolute_joint_angle, 0 )
def test_two_points_mean_absolute_joint_angle(self): stroke = Stroke((0,0,0),(1,1,1)) self.assertEqual( stroke.mean_absolute_joint_angle, 0 )
def test_dimensions(self): stroke = Stroke((-1,-1,-1),(1,1,1)) self.assertEqual(stroke.dimensions, (2,2))
def test_four_right_angle_points_mean_absolute_joint_angle(self): stroke = Stroke((0,0,0),(0,1,0),(1,1,0),(2,1,0)) self.assertEqualRounded( stroke.mean_absolute_joint_angle, math.pi/4 )
def test_aspect_ratio(self): stroke = Stroke((1,1,1),(0,0,0)) self.assertEqual( stroke.aspect_ratio, 1 )
def test_mean_distance_from_centroid(self): tag = Tag( Stroke((0,-1,0)), Stroke((0,3,0))) self.assertEqual( tag.mean_distance_from_centroid, 2 )
def test_three_colinear_points_total_corners(self): stroke = Stroke((0,0,0), (1,1,1), (2,2,2)) self.assertEqual( stroke.total_corners, 0 )
def test_centroid(self): tag = Tag( Stroke((0,0,0)), Stroke((2,2,2)) ) self.assertEqual(tag.centroid, (1,1))
def test_right_angle_total_corners(self): stroke = Stroke((0,0,0), (0,1,0), (1,1,0)) self.assertEqual( stroke.total_corners, 1 )
def test_bounds(self): tag = Tag( Stroke((0,0,0)), Stroke((1,1,1)) ) self.assertEqual( tag.bounds, ((0,0), (1,1)) )
def test_square_total_corners(self): stroke = Stroke((0,0,0), (0,1,0), (1,1,0),(1,0,0)) self.assertEqual( stroke.total_corners, 2 )
def test_empty_flattened_stroke(self): self.assertEqual( self.empty_tag.flattened_stroke(), Stroke() )
def test_three_right_angle_points_mean_joint_angle(self): stroke = Stroke((0,0,0),(0,1,0),(1,1,0)) self.assertEqualRounded( stroke.mean_joint_angle, math.pi/2 )
def test_zigzag_mean_joint_angle(self): stroke = Stroke((0,0,0),(0,1,0),(1,1,0),(1,2,0)) self.assertEqualRounded( stroke.mean_joint_angle, 0 )
def test_strokes_with_same_points_equal(self): s1 = Stroke((1,1,1)) s2 = Stroke((1,1,1)) self.assertEqual(s1, s2)