chiark / gitweb /
spec: Provide Area::empty
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 14 Mar 2021 23:39:09 +0000 (23:39 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 14 Mar 2021 23:39:17 +0000 (23:39 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/spec.rs

index bb83d99b9a9a3113f89041669fc90ec8a496a089..9d31a824de5e957142c5345348b6a6df1182a0f0 100644 (file)
@@ -375,6 +375,23 @@ pub mod implementation {
         self .0[1].0[i] < other.0[0].0[i]
       ))
     }
+
+    pub fn empty() -> Self where T: Copy + num_traits::Zero + num_traits::One {
+      let zero = <T as num_traits::Zero>::zero();
+      let one = <T as num_traits::One>::one();
+      AreaC([
+        PosC([ one,  one  ]),
+        PosC([ zero, zero ]),
+      ])
+    }
+  }
+
+  #[test]
+  fn empty_area() {
+    let empty = Area::empty();
+    for x in -3..3 { for y in -3..3 {
+      assert!(! empty.contains(PosC([x,y])));
+    } }
   }
 
   impl Default for PieceAngle {