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
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)
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
def test_odometry(): lastPos = Odometry(Point(2.0, 4.0), 1.2) assert lastPos.withinRange(Point(2.5, 4.2))
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]
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)
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
#!/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
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)
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
def test_point_minus(): point1 = Point(2.0, 4.5) point2 = Point(3.4, 6.7) assert point1.minus(point2) == (-1.4, -2.2)
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