From 8f7e44228b61a715ef005ea4e780a3b2c4656eea Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Wed, 5 Feb 2025 13:51:05 -0800
Subject: [PATCH] test degenerate face

---
 lib/bsp_loader/src/brush.rs | 46 ++++++++++++++++++++++++++-----------
 1 file changed, 33 insertions(+), 13 deletions(-)

diff --git a/lib/bsp_loader/src/brush.rs b/lib/bsp_loader/src/brush.rs
index 4e8d11c..8d7c040 100644
--- a/lib/bsp_loader/src/brush.rs
+++ b/lib/bsp_loader/src/brush.rs
@@ -10,6 +10,7 @@ struct Face{
 	dot:integer::Planar64,
 }
 
+#[derive(Debug)]
 struct Faces{
 	faces:Vec<Vec<integer::Planar64Vec3>>,
 }
@@ -178,19 +179,6 @@ fn planes_to_faces(face_list:std::collections::HashSet<Face>)->Result<Faces,Plan
 	}
 }
 
-#[test]
-fn test_planes_to_faces(){
-	let face_list=[
-		Face{normal:integer::vec3::X,dot:Planar64::ONE},
-		Face{normal:integer::vec3::Y,dot:Planar64::ONE},
-		Face{normal:integer::vec3::Z,dot:Planar64::ONE},
-		Face{normal:integer::vec3::NEG_X,dot:Planar64::ONE},
-		Face{normal:integer::vec3::NEG_Y,dot:Planar64::ONE},
-		Face{normal:integer::vec3::NEG_Z,dot:Planar64::ONE},
-	].into_iter().collect();
-	let faces=planes_to_faces(face_list).unwrap();
-}
-
 #[derive(Debug)]
 pub enum BrushToMeshError{
 	SliceBrushSides,
@@ -252,3 +240,35 @@ pub fn brush_to_mesh(bsp:&vbsp::Bsp,brush:&vbsp::Brush)->Result<model::Mesh,Brus
 
 	Ok(mb.build(polygon_groups,graphics_groups,physics_groups))
 }
+
+#[cfg(test)]
+mod test{
+	use super::*;
+	#[test]
+	fn test_cube(){
+		let face_list=[
+			Face{normal:integer::vec3::X,dot:Planar64::ONE},
+			Face{normal:integer::vec3::Y,dot:Planar64::ONE},
+			Face{normal:integer::vec3::Z,dot:Planar64::ONE},
+			Face{normal:integer::vec3::NEG_X,dot:Planar64::ONE},
+			Face{normal:integer::vec3::NEG_Y,dot:Planar64::ONE},
+			Face{normal:integer::vec3::NEG_Z,dot:Planar64::ONE},
+		].into_iter().collect();
+		let faces=planes_to_faces(face_list).unwrap();
+		dbg!(faces);
+	}
+	#[test]
+	fn test_cube_with_degernate_face(){
+		let face_list=[
+			Face{normal:integer::vec3::X,dot:Planar64::ONE},
+			Face{normal:integer::vec3::Y,dot:Planar64::ONE},
+			Face{normal:integer::vec3::Z,dot:Planar64::ONE},
+			Face{normal:integer::vec3::NEG_X,dot:Planar64::ONE},
+			Face{normal:integer::vec3::NEG_Y,dot:Planar64::ONE},
+			Face{normal:integer::vec3::NEG_Z,dot:Planar64::ONE},
+			Face{normal:integer::vec3::NEG_Z,dot:Planar64::EPSILON},
+		].into_iter().collect();
+		let faces=planes_to_faces(face_list).unwrap();
+		dbg!(faces);
+	}
+}