@@ -94,4 +94,67 @@ TEST (RectTest)
94
94
ASSERT (IsEqual (r1.Expand (Size (5.0 , 6.0 )), Rect::FromCenterAndSize (r1.GetCenter (), r1.GetSize () + Size (5.0 , 6.0 ))));
95
95
}
96
96
97
+ TEST (BoundingRectTest_FromRects)
98
+ {
99
+ BoundingRect boundingRect;
100
+ ASSERT (!boundingRect.IsValid ());
101
+
102
+ Rect rect1 = Rect::FromPositionAndSize (Point (0 , 0 ), Size (100 , 100 ));
103
+ Rect rect2 = Rect::FromPositionAndSize (Point (10 , 10 ), Size (50 , 50 ));
104
+ Rect rect3 = Rect::FromPositionAndSize (Point (-10 , -10 ), Size (20 , 20 ));
105
+
106
+ boundingRect.AddRect (rect1);
107
+ ASSERT (boundingRect.IsValid ());
108
+ ASSERT (IsEqual (boundingRect.GetRect (), rect1));
109
+
110
+ boundingRect.AddRect (rect2);
111
+ ASSERT (boundingRect.IsValid ());
112
+ ASSERT (IsEqual (boundingRect.GetRect (), rect1));
113
+
114
+ boundingRect.AddRect (rect3);
115
+ ASSERT (boundingRect.IsValid ());
116
+ ASSERT (IsEqual (boundingRect.GetRect (), Rect::FromPositionAndSize (Point (-10 , -10 ), Size (110 , 110 ))));
117
+ }
118
+
119
+ TEST (BoundingRectTest_FromPoints)
120
+ {
121
+ BoundingRect boundingRect;
122
+ ASSERT (!boundingRect.IsValid ());
123
+
124
+ boundingRect.AddPoint (Point (10 , 10 ));
125
+ ASSERT (boundingRect.IsValid ());
126
+ ASSERT (IsEqual (boundingRect.GetRect (), Rect::FromPositionAndSize (Point (10 , 10 ), Size (0 , 0 ))));
127
+
128
+ boundingRect.AddPoint (Point (20 , 20 ));
129
+ ASSERT (boundingRect.IsValid ());
130
+ ASSERT (IsEqual (boundingRect.GetRect (), Rect::FromPositionAndSize (Point (10 , 10 ), Size (10 , 10 ))));
131
+
132
+ boundingRect.AddPoint (Point (-10 , -10 ));
133
+ ASSERT (boundingRect.IsValid ());
134
+ ASSERT (IsEqual (boundingRect.GetRect (), Rect::FromPositionAndSize (Point (-10 , -10 ), Size (30 , 30 ))));
135
+ }
136
+
137
+ TEST (BoundingRectTest_FromRectAndPoint)
138
+ {
139
+ {
140
+ BoundingRect boundingRect;
141
+ ASSERT (!boundingRect.IsValid ());
142
+
143
+ boundingRect.AddPoint (Point (-10 , -10 ));
144
+ boundingRect.AddRect (Rect::FromPositionAndSize (Point (0 , 0 ), Size (20 , 20 )));
145
+ ASSERT (boundingRect.IsValid ());
146
+ ASSERT (IsEqual (boundingRect.GetRect (), Rect::FromPositionAndSize (Point (-10 , -10 ), Size (30 , 30 ))));
147
+ }
148
+
149
+ {
150
+ BoundingRect boundingRect;
151
+ ASSERT (!boundingRect.IsValid ());
152
+
153
+ boundingRect.AddRect (Rect::FromPositionAndSize (Point (0 , 0 ), Size (20 , 20 )));
154
+ boundingRect.AddPoint (Point (-10 , -10 ));
155
+ ASSERT (boundingRect.IsValid ());
156
+ ASSERT (IsEqual (boundingRect.GetRect (), Rect::FromPositionAndSize (Point (-10 , -10 ), Size (30 , 30 ))));
157
+ }
158
+ }
159
+
97
160
}
0 commit comments