[librsvg: 3/5] Add tests for PathBuilder
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 3/5] Add tests for PathBuilder
- Date: Fri, 27 Mar 2020 16:59:36 +0000 (UTC)
commit cb4cde7140cd6ecfd8a78483278dcb1ab8217612
Author: Federico Mena Quintero <federico gnome org>
Date: Thu Mar 26 16:39:48 2020 -0600
Add tests for PathBuilder
rsvg_internals/src/path_builder.rs | 61 ++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
---
diff --git a/rsvg_internals/src/path_builder.rs b/rsvg_internals/src/path_builder.rs
index b14c58a5..a5c52533 100644
--- a/rsvg_internals/src/path_builder.rs
+++ b/rsvg_internals/src/path_builder.rs
@@ -420,4 +420,65 @@ impl<'a> Iterator for PathIter<'a> {
mod tests {
use super::*;
+ #[test]
+ fn empty_builder() {
+ let builder = PathBuilder::new();
+ let path = builder.into_path();
+ assert!(path.is_empty());
+ assert_eq!(path.iter().count(), 0);
+ }
+
+ #[test]
+ fn arc() {
+ let mut builder = PathBuilder::new();
+ builder.arc(42.0, 43.0, 44.0, 45.0, 46.0, LargeArc(true), Sweep::Positive, 47.0, 48.0);
+ let path = builder.into_path();
+ assert!(path.iter().eq(vec![PathCommand::Arc(
+ EllipticalArc {
+ from: (42.0, 43.0),
+ r: (44.0, 45.0),
+ to: (47.0, 48.0),
+ x_axis_rotation: 46.0,
+ large_arc: LargeArc(true),
+ sweep: Sweep::Positive,
+ }
+ )]));
+ }
+
+ #[test]
+ fn close_path() {
+ let mut builder = PathBuilder::new();
+ builder.close_path();
+ let path = builder.into_path();
+ assert!(path.iter().eq(vec![PathCommand::ClosePath]));
+ }
+
+ #[test]
+ fn all_commands() {
+ let mut builder = PathBuilder::new();
+ builder.move_to(42.0, 43.0);
+ builder.line_to(42.0, 43.0);
+ builder.curve_to(42.0, 43.0, 44.0, 45.0, 46.0, 47.0);
+ builder.arc(42.0, 43.0, 44.0, 45.0, 46.0, LargeArc(true), Sweep::Positive, 47.0, 48.0);
+ builder.close_path();
+ let path = builder.into_path();
+ assert!(path.iter().eq(vec![
+ PathCommand::MoveTo(42.0, 43.0),
+ PathCommand::LineTo(42.0, 43.0),
+ PathCommand::CurveTo(CubicBezierCurve {
+ pt1: (42.0, 43.0),
+ pt2: (44.0, 45.0),
+ to: (46.0, 47.0),
+ }),
+ PathCommand::Arc(EllipticalArc {
+ from: (42.0, 43.0),
+ r: (44.0, 45.0),
+ to: (47.0, 48.0),
+ x_axis_rotation: 46.0,
+ large_arc: LargeArc(true),
+ sweep: Sweep::Positive,
+ }),
+ PathCommand::ClosePath,
+ ]));
+ }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]