Example #1
0
    def test_init_default(self) -> None:
        p1 = k2d.Pose(k2d.Vector(24.42, 42.24), 1.221)
        assert (p1.position.x == 24.42 and p1.position.y == 42.24
                and p1.orientation == 1.221)

        p2 = k2d.Pose(k2d.Vector(24, 42), 1)
        assert p2.position.x == 24 and p2.position.y == 42 and p2.orientation == 1
Example #2
0
    def test_truediv(self) -> None:
        v1 = k2d.Vector(24, 42)
        v2 = k2d.Vector(8, 14)
        assert (v1 / 3).is_close_to(v2)

        v1 /= 3
        assert v1.is_close_to(v2)
Example #3
0
    def test_mul(self) -> None:
        v1 = k2d.Vector(8, 14)
        v2 = k2d.Vector(24, 42)
        assert (v1 * 3).is_close_to(v2)

        v1 *= 3
        assert v1.is_close_to(v2)
Example #4
0
    def test_add(self) -> None:
        p1 = k2d.Pose(k2d.Vector(2.2, 3.3), k2d.PI / 2)
        p2 = k2d.Pose(k2d.Vector(3.3, 2.2), k2d.PI)
        p3 = k2d.Pose(k2d.Vector(0.0, 6.6), k2d.PI * 3 / 2)
        assert (p1 + p2).is_at(p3)

        p1 += p2
        assert (p1).is_at(p3)
Example #5
0
    def test_sub(self) -> None:
        p1 = k2d.Pose(k2d.Vector(2.2, 3.3), k2d.PI)
        p2 = k2d.Pose(k2d.Vector(2.2, 3.3), k2d.PI)
        p3 = k2d.Pose(k2d.Vector(0.0, 0.0), 0.0)
        assert (p1 - p2).is_at(p3)

        p1 -= p2
        assert (p1).is_at(p3)
Example #6
0
    def test_angle_from(self) -> None:
        v1 = k2d.Vector(-2.0, -2.0)
        v2 = k2d.Vector(0.0, 2.0)
        assert k2d.is_close(v2.angle_from(v1), k2d.PI * 6 / 8, 1e-3)

        v3 = k2d.Vector.zeros()
        v4 = k2d.Vector.zeros()
        assert k2d.is_close(v3.angle_from(v4), -0.0, 1e-3)
Example #7
0
    def test_sub(self) -> None:
        v1 = k2d.Vector(2.2, 1.1)
        v2 = k2d.Vector(1.1, 2.2)
        v3 = k2d.Vector(1.1, -1.1)
        assert (v1 - v2).is_close_to(v3)

        v1 -= v2
        assert v1.is_close_to(v3)
Example #8
0
    def test_add(self) -> None:
        v1 = k2d.Vector(2.2, 1.1)
        v2 = k2d.Vector(1.1, 2.2)
        v3 = k2d.Vector(3.3, 3.3)
        assert (v1 + v2).is_close_to(v3)

        v1 += v2
        assert v1.is_close_to(v3)
Example #9
0
    def test_angle(self) -> None:
        v1 = k2d.Vector(2.0, 0.0)
        assert k2d.is_close(v1.angle, 0.0, 1e-3)

        v2 = k2d.Vector(0.0, 2.0)
        assert k2d.is_close(v2.angle, k2d.PI / 2, 1e-3)

        v3 = k2d.Vector(-2.0, -2.0)
        assert k2d.is_close(v3.angle, -k2d.PI * 6 / 8, 1e-3)

        v4 = k2d.Vector.zeros()
        assert k2d.is_close(v4.angle, 0.0, 1e-3)
Example #10
0
    def test_is_close_to(self) -> None:
        v1 = k2d.Vector(1.0, 1.0)

        v2 = k2d.Vector(1.0 + k2d.EPSILON / 2, 1.0 - k2d.EPSILON / 2)
        assert v1.is_close_to(v2)

        v3 = k2d.Vector(1.09, 0.91)
        assert v1.is_close_to(v3, epsilon=0.1)

        v4 = k2d.Vector(1.0 + k2d.EPSILON * 2, 1.0 - k2d.EPSILON * 2)
        assert not v1.is_close_to(v4)

        v5 = k2d.Vector(1.2, 0.8)
        assert not v1.is_close_to(v5, epsilon=0.1)
Example #11
0
    def test_is_at_position(self) -> None:
        p = k2d.Pose(k2d.Vector(2.2, 3.3), 1.1)

        v1 = k2d.Vector(2.2 + k2d.EPSILON / 2, 3.3 - +k2d.EPSILON / 2)
        assert p.is_at_position(v1)

        v2 = k2d.Vector(2.22, 3.33)
        assert p.is_at_position(v2, tolerance=0.1)

        v3 = k2d.Vector(2.3, 3.2)
        assert not p.is_at_position(v3)

        v4 = k2d.Vector(2.4, 3.1)
        assert not p.is_at_position(v4, tolerance=0.1)
Example #12
0
    def test_is_at(self) -> None:
        p1 = k2d.Pose(k2d.Vector(2.2, 3.3), 1.1)

        p2 = k2d.Pose(
            k2d.Vector(2.2 + k2d.EPSILON / 2, 3.3 - +k2d.EPSILON / 2),
            1.1 + k2d.EPSILON / 2,
        )
        assert p1.is_at(p2)

        p3 = k2d.Pose(k2d.Vector(2.22, 3.33), 1.2)
        assert p1.is_at(p3, pos_tolerance=0.1, ort_tolerance=0.1)

        p4 = k2d.Pose(k2d.Vector(2.3, 3.2), 1.2)
        assert not p1.is_at(p4)

        p5 = k2d.Pose(k2d.Vector(2.4, 3.1), 1.3)
        assert not p1.is_at(p5, pos_tolerance=0.1, ort_tolerance=0.1)
Example #13
0
 def test_setters(self) -> None:
     p = k2d.Pose(k2d.Vector(24, 42), 1.2)
     p.position.x = 12
     p.position.y = 21
     p.orientation = 0.6
     assert p.position.x == 12
     assert p.position.y == 21
     assert p.orientation == 0.6
Example #14
0
    def test_init_default(self) -> None:
        v1 = k2d.Vector(24.42, 42.24)
        assert v1.x == 24.42 and v1.y == 42.24

        v2 = k2d.Vector(24, 42)
        assert v2.x == 24.0 and v2.y == 42.0
Example #15
0
 def test_dot(self) -> None:
     v1 = k2d.Vector(2.0, 3.0)
     v2 = k2d.Vector(3.0, 2.0)
     assert k2d.is_close(v1.dot(v2), 12.0)
Example #16
0
 def test_repr(self) -> None:
     p = k2d.Pose(k2d.Vector(24.42, 42.24), 1.221)
     p_repr = "Pose(pos: {}, ort: 1.221)".format(str(p.position))
     assert str(p) == p_repr
Example #17
0
 def test_init_from_copy(self) -> None:
     v1 = k2d.Vector(24, 42)
     v2 = k2d.Vector.from_copy(v1)
     assert v2.x == 24 and v2.y == 42
Example #18
0
 def test_setters(self) -> None:
     v = k2d.Vector(24, 42)
     v.x = 12
     v.y = 21
     assert v.x == 12
     assert v.y == 21
Example #19
0
 def test_repr(self) -> None:
     v = k2d.Vector(24.42, 42.24)
     v_repr = "Vector(x: 24.42, y: 42.24)"
     assert str(v) == v_repr
Example #20
0
 def test_getters(self) -> None:
     v = k2d.Vector(24, 42)
     assert v.x == 24
     assert v.y == 42
Example #21
0
 def test_projected_to(self) -> None:
     v1 = k2d.Vector(24.42, 42.24)
     v2 = k2d.Vector(1.0, 0.0)
     v3 = k2d.Vector(24.42, 0.0)
     assert v1.projected_to(v2).is_close_to(v3)
Example #22
0
 def test_is_at_orientation(self) -> None:
     p = k2d.Pose(k2d.Vector(2.2, 3.3), 1.1)
     assert p.is_at_orientation(1.1 + k2d.EPSILON / 2)
     assert p.is_at_orientation(1.2, tolerance=0.1)
     assert not p.is_at_orientation(1.2)
     assert not p.is_at_orientation(1.3, tolerance=0.1)
Example #23
0
 def test_abs(self) -> None:
     v = k2d.Vector(3.33, 4.44)
     assert k2d.is_close(abs(v), 5.55)
Example #24
0
 def test_ne(self) -> None:
     v1 = k2d.Vector(24.24, 42.24)
     v2 = k2d.Vector(24.42, 42.42)
     assert v1 != v2
Example #25
0
 def test_eq(self) -> None:
     v1 = k2d.Vector(24.24, 42.42)
     v2 = k2d.Vector(24.24, 42.42)
     assert v1 == v2
Example #26
0
 def test_rotated(self) -> None:
     v1 = k2d.Vector(2.0, 2.0)
     v2 = k2d.Vector(-2.0, -2.0)
     assert v1.rotated(k2d.PI).is_close_to(v2)
Example #27
0
 def test_neg(self) -> None:
     v = k2d.Vector(24.42, -42.24)
     v_neg = k2d.Vector(-24.42, 42.24)
     assert -v == v_neg
Example #28
0
 def test_normalized(self) -> None:
     v1 = k2d.Vector(3.33, 4.44)
     v2 = k2d.Vector(0.6, 0.8)
     assert v1.normalized().is_close_to(v2)
Example #29
0
 def test_hash(self) -> None:
     v = k2d.Vector(24.42, 42.24)
     assert hash(v) == hash((24.42, 42.24))
Example #30
0
 def test_getters(self) -> None:
     p = k2d.Pose(k2d.Vector(24, 42), 1.2)
     assert p.position.x == 24
     assert p.position.y == 42
     assert p.orientation == 1.2