A computational geometry learning and experimentation tool.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.2 KiB

import pytest
from clusterview.colors import Color
from clusterview.exceptions import ExceededWindowBoundsError
from clusterview.points import Point, PointSet
def test_move_point():
# The minimum starting position is 1/2 point away
# from the edges
p = Point(4, 4, Color.GREY, 8, 100, 100)
p.move(1, 1)
assert p.x == 5 and p.y == 5
def test_attributes_must_be_array_of_attributes():
with pytest.raises(ValueError):
point_set = PointSet(8, 100, 100)
point_set.add_point(4, 4, Color.GREY, attrs=[1, 2, 3, 4, 5])
def test_move_point_outside_screen_x_positive():
pt = Point(4, 4, Color.GREY, 8, 100, 100)
with pytest.raises(ExceededWindowBoundsError):
pt.move(96, 0)
def test_move_point_outside_screen_y_positive():
p = Point(4, 4, Color.GREY, 8, 100, 100)
with pytest.raises(ExceededWindowBoundsError):
p.move(0, 95)
def test_move_point_outside_screen_x_negative():
p = Point(4, 4, Color.GREY, 8, 100, 100)
with pytest.raises(ExceededWindowBoundsError):
p.move(-5, 0)
def test_move_point_outside_screen_y_negative():
p = Point(4, 4, Color.GREY, 8, 100, 100)
with pytest.raises(ExceededWindowBoundsError):
p.move(0, -5)