[librsvg: 12/15] Compare geometries rectangles with Rect::approx_eq()
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 12/15] Compare geometries rectangles with Rect::approx_eq()
- Date: Tue, 10 May 2022 02:13:50 +0000 (UTC)
commit 97da67bdc165bc34b0380478c9d1e880c14aa808
Author: Federico Mena Quintero <federico gnome org>
Date: Mon May 9 17:56:58 2022 -0500
Compare geometries rectangles with Rect::approx_eq()
Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/697>
tests/src/geometries.rs | 38 ++++++++++++++++++++++++++------------
1 file changed, 26 insertions(+), 12 deletions(-)
---
diff --git a/tests/src/geometries.rs b/tests/src/geometries.rs
index 3485b3b80..0c25ebce4 100644
--- a/tests/src/geometries.rs
+++ b/tests/src/geometries.rs
@@ -13,7 +13,7 @@
//! time.
use anyhow::{Context, Result};
-use librsvg::{CairoRenderer, LengthUnit, Loader};
+use librsvg::{CairoRenderer, LengthUnit, Loader, Rect};
use serde::Deserialize;
use std::collections::BTreeMap;
use std::fs;
@@ -30,13 +30,13 @@ struct Rectangle {
height: f64,
}
-impl From<Rectangle> for cairo::Rectangle {
- fn from(r: Rectangle) -> cairo::Rectangle {
- cairo::Rectangle {
- x: r.x,
- y: r.y,
- width: r.width,
- height: r.height,
+impl From<Rectangle> for Rect {
+ fn from(r: Rectangle) -> Rect {
+ Rect {
+ x0: r.x,
+ y0: r.y,
+ x1: r.x + r.width,
+ y1: r.y + r.height,
}
}
}
@@ -54,7 +54,21 @@ fn read_geometries(path: &Path) -> Result<Geometries> {
#[derive(Debug, PartialEq)]
struct Element {
id: String,
- geom: cairo::Rectangle,
+ geom: Rect,
+}
+
+macro_rules! assert_rectangles_approx_eq {
+ ($id:expr, $expected:expr, $computed:expr) => {
+ if !$expected.approx_eq(&$computed) {
+ eprintln!(
+ "assertion failed: rectangles are not approximately equal for id={}",
+ $id
+ );
+ eprintln!(" expected: {:?}", $expected);
+ eprintln!(" computed: {:?}", $computed);
+ panic!();
+ }
+ };
}
fn test(svg_filename: &str) {
@@ -82,7 +96,7 @@ fn test(svg_filename: &str) {
println!("id: {}", id);
let expected = Element {
id: String::from(id),
- geom: cairo::Rectangle::from(*expected),
+ geom: Rect::from(*expected),
};
let viewport = cairo::Rectangle {
@@ -98,10 +112,10 @@ fn test(svg_filename: &str) {
let computed = Element {
id: String::from(id),
- geom: geometry,
+ geom: geometry.into(),
};
- assert_eq!(expected, computed);
+ assert_rectangles_approx_eq!(id, expected.geom, computed.geom);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]