def test_two_short_line_endpoints_get_picked(self):
     lines = [LineSegment(Point(0, 0), Point(1, 0)), \
              LineSegment(Point(0, 1), Point(1, 1))]
     traj_lines = [TrajectoryLineSegment(lines[0], 0), \
                   TrajectoryLineSegment(lines[1], 1)]
     res = get_representative_trajectory_average_inputs(trajectory_line_segments=traj_lines, \
                                                       min_prev_dist=1, min_lines=2)
     expected = 2
     self.assertEquals(len(res), expected)
 def test_four_line_sets_should_result(self):
     lines = [LineSegment(Point(0, 0), Point(1, 0)), \
              LineSegment(Point(0.5, 1), Point(1.5, 1))]
     traj_lines = [TrajectoryLineSegment(lines[0], 0), \
                   TrajectoryLineSegment(lines[1], 1)]
     res = get_representative_trajectory_average_inputs(trajectory_line_segments=traj_lines, \
                                                       min_prev_dist=0.5, min_lines=1)
     expected = 4
     self.assertEquals(len(res), expected)
예제 #3
0
    def test_line_seg_distances(self):
        seg = LineSegment(Point(0, 0), Point(0, 2))
        other = LineSegment(Point(0, 0), Point(2, 2))

        perp_dist = perpendicular_distance(seg, other)
        ang_dist = angular_distance(seg, other)

        self.assertAlmostEquals(math.sqrt(2.0),
                                perp_dist,
                                delta=DECIMAL_MAX_DIFF_FOR_EQUALITY)
        self.assertAlmostEquals(math.sqrt(2.0),
                                ang_dist,
                                delta=DECIMAL_MAX_DIFF_FOR_EQUALITY)
예제 #4
0
 def create_trajectory_line_seg(self,
                                start,
                                end,
                                traj_id,
                                original_position=None):
     return TrajectoryLineSegment(LineSegment(Point(start[0], start[1]), \
                                                           Point(end[0], end[1])), traj_id, original_position)
예제 #5
0
    def test_right_angle_encoding_cost(self):
        points = [Point(0, 0), Point(0, 2), Point(2, 2)]
        line_segs = [
            LineSegment(Point(0, 0), Point(0, 2)),
            LineSegment(Point(0, 2), Point(2, 2))
        ]

        #line_segs = self.get_line_segs(points)

        actual = encoding_cost(trajectory_line_segs=line_segs,
                               low=0,
                               high=len(line_segs),
                               partition_line=LineSegment(
                                   points[0], points[2]),
                               angular_dist_func=angular_distance,
                               perpendicular_dist_func=perpendicular_distance)

        self.assertAlmostEquals(math.log(2 * math.sqrt(2.0), 2) +
                                math.log(2 * math.sqrt(2.0), 2),
                                actual,
                                delta=DECIMAL_MAX_DIFF_FOR_EQUALITY)
 def create_line(self,
                 horizontal_start,
                 horizontal_end,
                 line_set_ids,
                 trajectory_id,
                 orig_pos=None):
     if orig_pos == None:
         orig_pos = random.randint(0, 1000)
     return {'trajectory_line_segment': \
             TrajectoryLineSegment(LineSegment(Point(horizontal_start, random.randint(0, 1000)), \
                                                            Point(horizontal_end, random.randint(0, 1000))), \
                                   trajectory_id, orig_pos), \
             'line_set_ids': line_set_ids}
 def funtmp(seg):
     start = Point(x=seg['start']['x'],
                   y=seg['start']['y'],
                   C=seg['start']['c'],
                   V=seg['start']['v'],
                   TIME=seg['start']['time'])
     end = Point(x=seg['end']['x'],
                 y=seg['end']['y'],
                 C=seg['end']['c'],
                 V=seg['end']['v'],
                 TIME=seg['end']['time'])
     lineseg = LineSegment(start, end)
     return lineseg
예제 #8
0
 def test_creation(self):
     self.assertRaises((Exception, ArgumentError), TrajectoryLineSegment, \
                       LineSegment(Point(0, 0), Point(1, 1)), -1)
     self.assertRaises((Exception, ArgumentError), TrajectoryLineSegment, None, 1)
     self.assertRaises((Exception, ArgumentError), TrajectoryLineSegment, \
                       LineSegment(Point(0, 0), Point(1, 1)), None)
예제 #9
0
 def get_line_segs(self, points):
     return map(lambda i: LineSegment(points[i], points[i + 1]),
                range(0,
                      len(points) - 1))
예제 #10
0
 def create_simple_line_seg(self, start, end):
     return LineSegment(Point(start[0], start[1]), Point(end[0], end[1]))