Beispiel #1
0
def test_pos_2_dist_easy():
    perimeter = testPerimeter1
    angleNorth = 20.0
    angleToDirection = 35.0
    args = [angleNorth, angleToDirection, perimeter]

    data1 = Data(Color.RED, 55.0, *args, 3.8)
    data2 = Data(Color.GREEN, -35.0, *args, 9.4)

    res = getPos2Dist(data1, data2)
    assert len(res) == 2
    assert Point(1.3, 3.5) in res
Beispiel #2
0
def test_location_compute_pos(mocker):
    mocker.patch('pleeplee.location.Odometry._range', 0.03)
    # Data set
    corner1 = LED(Color.RED, Point(3.0, 3.0))
    corner2 = LED(Color.YELLOW, Point(13.0, 5.0))
    corner3 = LED(Color.BLUE, Point(11.0, 9.0))
    corner4 = LED(Color.GREEN, Point(1.0, 10.0))
    perimeter = [corner1, corner2, corner3, corner4]

    dirInit = (-10.0, -10.0)
    angleNorth = -45.0
    angleToDirection = -90.0
    height = 0.0
    args = [angleNorth, angleToDirection, perimeter]

    data0 = Data(Color.RED, 134.0, *args)
    data1 = Data(Color.YELLOW, 19.0, *args)
    data2 = Data(Color.BLUE, -25.0, *args)
    datas = [data0, data1, data2]

    odometry = Odometry(Point(6.5, 6.7), 0.6)

    # Init & use of location
    loc = Location(angleNorth, dirInit, height, *perimeter)
    assert loc.computePos(angleToDirection, odometry, *datas) == Point(7.0, 7.0)
Beispiel #3
0
def test_filter_odometry(mocker):
    mocker.patch('pleeplee.location.Odometry._range', 0.03)
    lastPos = Odometry(Point(2.0, 4.0), 1.2)
    solutions = [Point(2.5, 4.2), Point(2.9, 4.9), Point(0.0, 0.0)]
    print(Point(2.0, 4.0).distance(Point(2.9, 4.9)))
    rest = filterOdometry(solutions, lastPos)
    assert len(rest) == 1
Beispiel #4
0
def test_odometry():
    lastPos = Odometry(Point(2.0, 4.0), 1.2)
    assert lastPos.withinRange(Point(2.5, 4.2))
Beispiel #5
0
def test_filter_point():
    perimeter = testPerimeter1
    res = filterPoints([Point(1.3, 3.5), Point(1.3, -3.5)], perimeter)
    assert len(res) == 1
    assert Point(1.3, 3.5) == res[0]
Beispiel #6
0
def test_has_many_occurencies():
    my_list = [Point(6.92, 5.78), Point(6.99, 5.81), Point(6.96, 5.80)]
    ref = Point(7.0, 5.8)
    assert hasManyOccurencies(ref, my_list)
Beispiel #7
0
def test_sort_data():
    my_list = [Point(6.92, 5.78), Point(6.99, 5.81), Point(6.96, 5.80)]
    ref = Point(7.0, 5.8)
    assert sortData(my_list) == ref
Beispiel #8
0
#!/usr/bin/env python3

import pytest
import math
from pytest_mock import mocker
from pleeplee.compute import *
from pleeplee.geometry import (Point, Triangle)
from pleeplee.utils import Color

# Data needed for Mocks:
# Test data set 1
corner1 = LED(Color.RED, Point(0.0, 0.0))
corner2 = LED(Color.YELLOW, Point(0.0, 10.0))
corner3 = LED(Color.BLUE, Point(10.0, 10.0))
corner4 = LED(Color.GREEN, Point(10.0, 0.0))

testPerimeter1 = [corner1, corner2, corner3, corner4]

# Test data set 2
corner1_t2 = LED(Color.RED, Point(3.0, 3.0))
corner2_t2 = LED(Color.YELLOW, Point(13.0, 5.0))
corner3_t2 = LED(Color.BLUE, Point(11.0, 9.0))
corner4_t2 = LED(Color.GREEN, Point(1.0, 10.0))

testPerimeter2 = [corner1_t2, corner2_t2, corner3_t2, corner4_t2]

# Test functions:


def test_data_adjust_distance():
    perimeter = testPerimeter1
Beispiel #9
0
def test_point_distance():
    point1 = Point(2.0, 4.5)
    point2 = Point(3.4, 6.7)
    assert point1.distance(point2) == point2.distance(point1)
    assert point1.distance(point2) == round(sqrt(6.8), PRECISION)
Beispiel #10
0
def test_triangle_corner():
    point = Point(2.0, 4.5)
    angle = 24.56
    triangle = Triangle(angle, point, Color.RED)
    # The triangle must be rectangle. Sum of the angles of triangle = 180 degree
    assert triangle.angleP + triangle.cornerAngle() + 90 == 180
Beispiel #11
0
def test_point_minus():
    point1 = Point(2.0, 4.5)
    point2 = Point(3.4, 6.7)
    assert point1.minus(point2) == (-1.4, -2.2)
Beispiel #12
0
def test_point_not_eq():
    point1 = Point(2.05, 4.3)
    x = point1.X + point1._threshold + 0.01
    point2 = Point(x, 4.3)
    assert not point1 == point2