35 EXPECT_FLOAT_EQ(0.0f, rect
.left);
36 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
37 EXPECT_FLOAT_EQ(0.0f, rect
.right);
38 EXPECT_FLOAT_EQ(0.0f, rect
.top);
40 std::vector<CFX_PointF> data;
41 data.emplace_back(0.0f, 0.0f);
42 rect = CFX_FloatRect::GetBBox(
pdfium::make_span(data).first(0));
43 EXPECT_FLOAT_EQ(0.0f, rect
.left);
44 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
45 EXPECT_FLOAT_EQ(0.0f, rect
.right);
46 EXPECT_FLOAT_EQ(0.0f, rect
.top);
47 rect = CFX_FloatRect::GetBBox(data);
48 EXPECT_FLOAT_EQ(0.0f, rect
.left);
49 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
50 EXPECT_FLOAT_EQ(0.0f, rect
.right);
51 EXPECT_FLOAT_EQ(0.0f, rect
.top);
53 data.emplace_back(2.5f, 6.2f);
54 data.emplace_back(1.5f, 6.2f);
55 rect = CFX_FloatRect::GetBBox(
pdfium::make_span(data).first(2));
56 EXPECT_FLOAT_EQ(0.0f, rect
.left);
57 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
58 EXPECT_FLOAT_EQ(2.5f, rect
.right);
59 EXPECT_FLOAT_EQ(6.2f, rect
.top);
61 rect = CFX_FloatRect::GetBBox(data);
62 EXPECT_FLOAT_EQ(0.0f, rect
.left);
63 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
64 EXPECT_FLOAT_EQ(2.5f, rect
.right);
65 EXPECT_FLOAT_EQ(6.2f, rect
.top);
67 data.emplace_back(2.5f, 6.3f);
68 rect = CFX_FloatRect::GetBBox(data);
69 EXPECT_FLOAT_EQ(0.0f, rect
.left);
70 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
71 EXPECT_FLOAT_EQ(2.5f, rect
.right);
72 EXPECT_FLOAT_EQ(6.3f, rect
.top);
74 data.emplace_back(-3.0f, 6.3f);
75 rect = CFX_FloatRect::GetBBox(data);
76 EXPECT_FLOAT_EQ(-3.0f, rect
.left);
77 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
78 EXPECT_FLOAT_EQ(2.5f, rect
.right);
79 EXPECT_FLOAT_EQ(6.3f, rect
.top);
81 data.emplace_back(4.0f, -8.0f);
82 rect = CFX_FloatRect::GetBBox(data);
83 EXPECT_FLOAT_EQ(-3.0f, rect
.left);
84 EXPECT_FLOAT_EQ(-8.0f, rect
.bottom);
85 EXPECT_FLOAT_EQ(4.0f, rect
.right);
86 EXPECT_FLOAT_EQ(6.3f, rect
.top);
198 EXPECT_FLOAT_EQ(0.0f, rect
.left);
199 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
200 EXPECT_FLOAT_EQ(0.0f, rect
.right);
201 EXPECT_FLOAT_EQ(0.0f, rect
.top);
205 EXPECT_FLOAT_EQ(-1.0f, rect
.left);
206 EXPECT_FLOAT_EQ(-3.0f, rect
.bottom);
207 EXPECT_FLOAT_EQ(4.5f, rect
.right);
208 EXPECT_FLOAT_EQ(3.2f, rect
.top);
211 EXPECT_FLOAT_EQ(-4.5f, rect
.left);
212 EXPECT_FLOAT_EQ(-3.2f, rect
.bottom);
213 EXPECT_FLOAT_EQ(1.0f, rect
.right);
214 EXPECT_FLOAT_EQ(3.0f, rect
.top);
220 EXPECT_FLOAT_EQ(-1.0f, rect
.left);
221 EXPECT_FLOAT_EQ(-3.0f, rect
.bottom);
222 EXPECT_FLOAT_EQ(4.5f, rect
.right);
223 EXPECT_FLOAT_EQ(3.2f, rect
.top);
225 EXPECT_FLOAT_EQ(-0.5, rect
.left);
226 EXPECT_FLOAT_EQ(-1.5, rect
.bottom);
227 EXPECT_FLOAT_EQ(2.25f, rect
.right);
228 EXPECT_FLOAT_EQ(1.6f, rect
.top);
230 EXPECT_FLOAT_EQ(-1.0f, rect
.left);
231 EXPECT_FLOAT_EQ(-3.0f, rect
.bottom);
232 EXPECT_FLOAT_EQ(4.5f, rect
.right);
233 EXPECT_FLOAT_EQ(3.2f, rect
.top);
235 EXPECT_FLOAT_EQ(1.0f, rect
.left);
236 EXPECT_FLOAT_EQ(3.0f, rect
.bottom);
237 EXPECT_FLOAT_EQ(-4.5f, rect
.right);
238 EXPECT_FLOAT_EQ(-3.2f, rect
.top);
240 EXPECT_FLOAT_EQ(0.0f, rect
.left);
241 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
242 EXPECT_FLOAT_EQ(0.0f, rect
.right);
243 EXPECT_FLOAT_EQ(0.0f, rect
.top);
249 EXPECT_FLOAT_EQ(0.0f, rect
.left);
250 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
251 EXPECT_FLOAT_EQ(0.0f, rect
.right);
252 EXPECT_FLOAT_EQ(0.0f, rect
.top);
254 EXPECT_FLOAT_EQ(0.0f, rect
.left);
255 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
256 EXPECT_FLOAT_EQ(0.0f, rect
.right);
257 EXPECT_FLOAT_EQ(0.0f, rect
.top);
259 EXPECT_FLOAT_EQ(0.0f, rect
.left);
260 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
261 EXPECT_FLOAT_EQ(0.0f, rect
.right);
262 EXPECT_FLOAT_EQ(0.0f, rect
.top);
264 EXPECT_FLOAT_EQ(0.0f, rect
.left);
265 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
266 EXPECT_FLOAT_EQ(0.0f, rect
.right);
267 EXPECT_FLOAT_EQ(0.0f, rect
.top);
273 EXPECT_FLOAT_EQ(-1.0f, rect
.left);
274 EXPECT_FLOAT_EQ(-3.0f, rect
.bottom);
275 EXPECT_FLOAT_EQ(4.5f, rect
.right);
276 EXPECT_FLOAT_EQ(3.2f, rect
.top);
278 EXPECT_FLOAT_EQ(0.375f, rect
.left);
279 EXPECT_FLOAT_EQ(-1.45f, rect
.bottom);
280 EXPECT_FLOAT_EQ(3.125f, rect
.right);
281 EXPECT_FLOAT_EQ(1.65f, rect
.top);
283 EXPECT_FLOAT_EQ(-1.0f, rect
.left);
284 EXPECT_FLOAT_EQ(-3.0f, rect
.bottom);
285 EXPECT_FLOAT_EQ(4.5f, rect
.right);
286 EXPECT_FLOAT_EQ(3.2f, rect
.top);
288 EXPECT_FLOAT_EQ(4.5f, rect
.left);
289 EXPECT_FLOAT_EQ(3.2f, rect
.bottom);
290 EXPECT_FLOAT_EQ(-1.0f, rect
.right);
291 EXPECT_FLOAT_EQ(-3.0f, rect
.top);
293 EXPECT_FLOAT_EQ(1.75f, rect
.left);
294 EXPECT_NEAR(0.1f, rect
.bottom, 0.001f);
295 EXPECT_FLOAT_EQ(1.75f, rect
.right);
296 EXPECT_NEAR(0.1f, rect
.top, 0.001f);
302 EXPECT_FLOAT_EQ(0.0f, rect
.left);
303 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
304 EXPECT_FLOAT_EQ(0.0f, rect
.right);
305 EXPECT_FLOAT_EQ(0.0f, rect
.top);
307 EXPECT_FLOAT_EQ(0.0f, rect
.left);
308 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
309 EXPECT_FLOAT_EQ(0.0f, rect
.right);
310 EXPECT_FLOAT_EQ(0.0f, rect
.top);
312 EXPECT_FLOAT_EQ(0.0f, rect
.left);
313 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
314 EXPECT_FLOAT_EQ(0.0f, rect
.right);
315 EXPECT_FLOAT_EQ(0.0f, rect
.top);
317 EXPECT_FLOAT_EQ(0.0f, rect
.left);
318 EXPECT_FLOAT_EQ(0.0f, rect
.bottom);
319 EXPECT_FLOAT_EQ(0.0f, rect
.right);
320 EXPECT_FLOAT_EQ(0.0f, rect
.top);
466 EXPECT_FLOAT_EQ(0.0f, rotate_90
.e);
467 EXPECT_FLOAT_EQ(0.0f, rotate_90
.f);
471 EXPECT_FLOAT_EQ(1.0f, translate_23_11
.a);
472 EXPECT_FLOAT_EQ(0.0f, translate_23_11
.b);
473 EXPECT_FLOAT_EQ(0.0f, translate_23_11
.c);
474 EXPECT_FLOAT_EQ(1.0f, translate_23_11
.d);
475 EXPECT_FLOAT_EQ(23.0f, translate_23_11
.e);
476 EXPECT_FLOAT_EQ(11.0f, translate_23_11
.f);
480 EXPECT_FLOAT_EQ(5.0f, scale_5_13
.a);
481 EXPECT_FLOAT_EQ(0.0f, scale_5_13
.b);
482 EXPECT_FLOAT_EQ(0.0f, scale_5_13
.c);
483 EXPECT_FLOAT_EQ(13.0f, scale_5_13
.d);
484 EXPECT_FLOAT_EQ(0.0, scale_5_13
.e);
485 EXPECT_FLOAT_EQ(0.0, scale_5_13
.f);
491 origin_transformed = rotate_90
.Transform(origin_transformed
);
492 EXPECT_FLOAT_EQ(0.0f, origin_transformed.x);
493 EXPECT_FLOAT_EQ(0.0f, origin_transformed.y);
494 p_10_20_transformed = rotate_90
.Transform(p_10_20_transformed
);
495 EXPECT_FLOAT_EQ(-20.0f, p_10_20_transformed.x);
496 EXPECT_FLOAT_EQ(10.0f, p_10_20_transformed.y);
498 origin_transformed = translate_23_11
.Transform(origin_transformed
);
499 EXPECT_FLOAT_EQ(23.0f, origin_transformed.x);
500 EXPECT_FLOAT_EQ(11.0f, origin_transformed.y);
501 p_10_20_transformed = translate_23_11
.Transform(p_10_20_transformed
);
502 EXPECT_FLOAT_EQ(3.0f, p_10_20_transformed.x);
503 EXPECT_FLOAT_EQ(21.0f, p_10_20_transformed.y);
505 origin_transformed = scale_5_13
.Transform(origin_transformed
);
506 EXPECT_FLOAT_EQ(115.0f, origin_transformed.x);
507 EXPECT_FLOAT_EQ(143.0f, origin_transformed.y);
508 p_10_20_transformed = scale_5_13
.Transform(p_10_20_transformed
);
509 EXPECT_FLOAT_EQ(15.0f, p_10_20_transformed.x);
510 EXPECT_FLOAT_EQ(273.0f, p_10_20_transformed.y);
513 origin_transformed = CFX_PointF(0, 0);
514 p_10_20_transformed = CFX_PointF(10, 20);
516 origin_transformed = scale_5_13
.Transform(origin_transformed
);
517 EXPECT_FLOAT_EQ(0.0f, origin_transformed.x);
518 EXPECT_FLOAT_EQ(0.0f, origin_transformed.y);
519 p_10_20_transformed = scale_5_13
.Transform(p_10_20_transformed
);
520 EXPECT_FLOAT_EQ(50.0f, p_10_20_transformed.x);
521 EXPECT_FLOAT_EQ(260.0f, p_10_20_transformed.y);
523 origin_transformed = translate_23_11
.Transform(origin_transformed
);
524 EXPECT_FLOAT_EQ(23.0f, origin_transformed.x);
525 EXPECT_FLOAT_EQ(11.0f, origin_transformed.y);
526 p_10_20_transformed = translate_23_11
.Transform(p_10_20_transformed
);
527 EXPECT_FLOAT_EQ(73.0f, p_10_20_transformed.x);
528 EXPECT_FLOAT_EQ(271.0f, p_10_20_transformed.y);
530 origin_transformed = rotate_90
.Transform(origin_transformed
);
531 EXPECT_FLOAT_EQ(-11.0f, origin_transformed.x);
532 EXPECT_FLOAT_EQ(23.0f, origin_transformed.y);
533 p_10_20_transformed = rotate_90
.Transform(p_10_20_transformed
);
534 EXPECT_FLOAT_EQ(-271.0f, p_10_20_transformed.x);
535 EXPECT_FLOAT_EQ(73.0f, p_10_20_transformed.y);
546 EXPECT_FLOAT_EQ(115.0, m
.e);
547 EXPECT_FLOAT_EQ(143.0, m
.f);
551 origin_transformed = m
.Transform(CFX_PointF(0, 0));
552 EXPECT_FLOAT_EQ(115.0f, origin_transformed.x);
553 EXPECT_FLOAT_EQ(143.0f, origin_transformed.y);
555 p_10_20_transformed = m
.Transform(CFX_PointF(10, 20));
556 EXPECT_FLOAT_EQ(15.0f, p_10_20_transformed.x);
557 EXPECT_FLOAT_EQ(273.0f, p_10_20_transformed.y);
562 m
= translate_23_11
* m;
568 EXPECT_FLOAT_EQ(-11.0, m
.e);
569 EXPECT_FLOAT_EQ(23.0, m
.f);
574 origin_transformed = m
.Transform(CFX_PointF(0, 0));
575 EXPECT_FLOAT_EQ(-11.0f, origin_transformed.x);
576 EXPECT_FLOAT_EQ(23.0f, origin_transformed.y);
578 p_10_20_transformed = m
.Transform(CFX_PointF(10, 20));
579 EXPECT_FLOAT_EQ(-271.0f, p_10_20_transformed.x);
580 EXPECT_FLOAT_EQ(73.0f, p_10_20_transformed.y);