示例#1
0
 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)) )
示例#2
0
 def test_empty_strokes_have_same_hash(self):
   s1 = Stroke()
   s2 = Stroke()
   self.assertEqual(hash(s1), hash(s2))
示例#3
0
 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)) )
示例#4
0
 def test_dimesions(self):
   tag = Tag( Stroke((-1,-1,-1)), Stroke((1,1,1)) )
   self.assertEqual( tag.dimensions, (2,2) )
示例#5
0
 def test_duration(self):
   tag = Tag( Stroke((0,0,1)), Stroke((0,0,2)) )
   self.assertEqual(tag.duration, 3)
示例#6
0
 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 )
示例#7
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 )
示例#8
0
 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 )
示例#9
0
 def test_bounds(self):
   stroke = Stroke((-1,-1,-1),(1,1,1))
   self.assertEqual(stroke.bounds, ((-1,-1),(1,1)))
示例#10
0
 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))
示例#11
0
 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) )
示例#12
0
 def test_two_points_total_corners(self):
   stroke = Stroke((0,0,0), (1,1,1))
   self.assertEqual( stroke.total_corners, 0 )
示例#13
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 )
示例#14
0
 def test_smoothed_equal_points(self):
   points = [ (1,1,1) ] * 7
   stroke = Stroke(*points)
   smoothed = stroke.smoothed()
   self.assertEqual(smoothed.points, points)
示例#15
0
 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)])
示例#16
0
 def test_single_point_mean_absolute_joint_angle(self):
   stroke = Stroke((0,0,0))
   self.assertEqual( stroke.mean_absolute_joint_angle, 0 )
示例#17
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 )
示例#18
0
 def test_dimensions(self):
   stroke = Stroke((-1,-1,-1),(1,1,1))
   self.assertEqual(stroke.dimensions, (2,2))
示例#19
0
 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 )
示例#20
0
 def test_aspect_ratio(self):
   stroke = Stroke((1,1,1),(0,0,0))
   self.assertEqual( stroke.aspect_ratio, 1 )
示例#21
0
 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 )
示例#22
0
 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 )
示例#23
0
 def test_centroid(self):
   tag = Tag( Stroke((0,0,0)), Stroke((2,2,2)) )
   self.assertEqual(tag.centroid, (1,1))
示例#24
0
 def test_right_angle_total_corners(self):
   stroke = Stroke((0,0,0), (0,1,0), (1,1,0))
   self.assertEqual( stroke.total_corners, 1 )
示例#25
0
 def test_bounds(self):
   tag = Tag( Stroke((0,0,0)), Stroke((1,1,1)) )
   self.assertEqual( tag.bounds, ((0,0), (1,1)) )
示例#26
0
 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 )
示例#27
0
 def test_empty_flattened_stroke(self):
   self.assertEqual( self.empty_tag.flattened_stroke(), Stroke() )
示例#28
0
 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 )
示例#29
0
 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 )
示例#30
0
 def test_strokes_with_same_points_equal(self):
   s1 = Stroke((1,1,1))
   s2 = Stroke((1,1,1))
   self.assertEqual(s1, s2)