File: test_Vector.py

package info (click to toggle)
python-pyqtgraph 0.14.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 8,168 kB
  • sloc: python: 54,831; makefile: 128; ansic: 40; sh: 2
file content (78 lines) | stat: -rw-r--r-- 1,553 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import pytest

import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui


def test_Vector_init():
    """Test construction of Vector objects from a variety of source types."""
    # separate values without z
    v = pg.Vector(0, 1)
    assert v.z() == 0

    v = pg.Vector(0.0, 1.0)
    assert v.z() == 0

    # separate values with 3 args
    v = pg.Vector(0, 1, 2)
    assert v.x() == 0
    assert v.y() == 1
    assert v.z() == 2
    v = pg.Vector(0.0, 1.0, 2.0)
    assert v.x() == 0
    assert v.y() == 1
    assert v.z() == 2

    # all in a list
    v = pg.Vector([0, 1])
    assert v.z() == 0
    v = pg.Vector([0, 1, 2])
    assert v.z() == 2

    # QSizeF
    v = pg.Vector(QtCore.QSizeF(1, 2))
    assert v.x() == 1
    assert v.z() == 0

    # QPoint
    v = pg.Vector(QtCore.QPoint(0, 1))
    assert v.z() == 0
    v = pg.Vector(QtCore.QPointF(0, 1))
    assert v.z() == 0

    # QVector3D
    qv = QtGui.QVector3D(1, 2, 3)
    v = pg.Vector(qv)
    assert v == qv

    with pytest.raises(Exception):
        _ = pg.Vector(1, 2, 3, 4)


def test_Vector_interface():
    """Test various aspects of the Vector API."""
    v = pg.Vector(-1, 2)

    # len
    assert len(v) == 3

    # indexing
    assert v[0] == -1
    assert v[2] == 0
    with pytest.raises(IndexError):
        _ = v[4]

    assert v[1] == 2
    v[1] = 5
    assert v[1] == 5

    # iteration
    v2 = pg.Vector(*v)
    assert v2 == v

    assert abs(v).x() == 1

    # angle
    v1 = pg.Vector(1, 0)
    v2 = pg.Vector(1, 1)
    assert abs(v1.angle(v2) - 45) < 0.001