1package org.opencv.test.core;
2
3import org.opencv.core.Point;
4import org.opencv.core.Rect;
5import org.opencv.core.Size;
6import org.opencv.test.OpenCVTestCase;
7
8public class RectTest extends OpenCVTestCase {
9
10    private Rect r;
11    private Rect rect;
12
13    @Override
14    protected void setUp() throws Exception {
15        super.setUp();
16
17        r = new Rect();
18        rect = new Rect(0, 0, 10, 10);
19    }
20
21    public void testArea() {
22        double area;
23        area = rect.area();
24        assertEquals(100.0, area);
25    }
26
27    public void testBr() {
28        Point p_br = new Point();
29        p_br = rect.br();
30        Point truth = new Point(10, 10);
31        assertEquals(truth, p_br);
32    }
33
34    public void testClone() {
35        r = rect.clone();
36        assertEquals(rect, r);
37    }
38
39    public void testContains() {
40        Rect rect = new Rect(0, 0, 10, 10);
41
42        Point p_inner = new Point(5, 5);
43        Point p_outer = new Point(5, 55);
44        Point p_bl = new Point(0, 0);
45        Point p_br = new Point(10, 0);
46        Point p_tl = new Point(0, 10);
47        Point p_tr = new Point(10, 10);
48
49        assertTrue(rect.contains(p_inner));
50        assertTrue(rect.contains(p_bl));
51
52        assertFalse(rect.contains(p_outer));
53        assertFalse(rect.contains(p_br));
54        assertFalse(rect.contains(p_tl));
55        assertFalse(rect.contains(p_tr));
56    }
57
58    public void testEqualsObject() {
59        boolean flag;
60        flag = rect.equals(r);
61        assertFalse(flag);
62
63        r = rect.clone();
64        flag = rect.equals(r);
65        assertTrue(flag);
66    }
67
68    public void testHashCode() {
69        assertEquals(rect.hashCode(), rect.hashCode());
70    }
71
72    public void testRect() {
73        r = new Rect();
74
75        assertEquals(0, r.x);
76        assertEquals(0, r.y);
77        assertEquals(0, r.width);
78        assertEquals(0, r.height);
79    }
80
81    public void testRectDoubleArray() {
82        double[] vals = { 1, 3, 5, 2 };
83        r = new Rect(vals);
84
85        assertEquals(1, r.x);
86        assertEquals(3, r.y);
87        assertEquals(5, r.width);
88        assertEquals(2, r.height);
89    }
90
91    public void testRectIntIntIntInt() {
92        r = new Rect(1, 3, 5, 2);
93
94        assertNotNull(rect);
95        assertEquals(0, rect.x);
96        assertEquals(0, rect.y);
97        assertEquals(10, rect.width);
98        assertEquals(10, rect.height);
99    }
100
101    public void testRectPointPoint() {
102        Point p1 = new Point(4, 4);
103        Point p2 = new Point(2, 3);
104
105        r = new Rect(p1, p2);
106        assertNotNull(r);
107        assertEquals(2, r.x);
108        assertEquals(3, r.y);
109        assertEquals(2, r.width);
110        assertEquals(1, r.height);
111    }
112
113    public void testRectPointSize() {
114        Point p1 = new Point(4, 4);
115        Size sz = new Size(3, 1);
116        r = new Rect(p1, sz);
117
118        assertEquals(4, r.x);
119        assertEquals(4, r.y);
120        assertEquals(3, r.width);
121        assertEquals(1, r.height);
122    }
123
124    public void testSet() {
125        double[] vals1 = {};
126        Rect r1 = new Rect(vals1);
127
128        assertEquals(0, r1.x);
129        assertEquals(0, r1.y);
130        assertEquals(0, r1.width);
131        assertEquals(0, r1.height);
132
133        double[] vals2 = { 2, 2, 10, 5 };
134        r = new Rect(vals2);
135
136        assertEquals(2, r.x);
137        assertEquals(2, r.y);
138        assertEquals(10, r.width);
139        assertEquals(5, r.height);
140    }
141
142    public void testSize() {
143        Size s1 = new Size(0, 0);
144        assertEquals(s1, r.size());
145
146        Size s2 = new Size(10, 10);
147        assertEquals(s2, rect.size());
148    }
149
150    public void testTl() {
151        Point p_tl = new Point();
152        p_tl = rect.tl();
153        Point truth = new Point(0, 0);
154        assertEquals(truth, p_tl);
155    }
156
157    public void testToString() {
158        String actual = rect.toString();
159        String expected = "{0, 0, 10x10}";
160        assertEquals(expected, actual);
161    }
162
163}
164