|
@@ -58,116 +58,116 @@ pub fn wall_height(dist: i32) -> i32 {
|
|
|
WALL_HEIGHT[dist.min(MAX_RAY_LENGTH) as usize]
|
|
WALL_HEIGHT[dist.min(MAX_RAY_LENGTH) as usize]
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-#[cfg(test)]
|
|
|
|
|
-mod tests {
|
|
|
|
|
- use float_cmp;
|
|
|
|
|
- use super::*;
|
|
|
|
|
-
|
|
|
|
|
- // #[test]
|
|
|
|
|
- // fn test_cos_values() {
|
|
|
|
|
- // let tests = [
|
|
|
|
|
- // ("ANGLE_0", ANGLE_0, 1.0),
|
|
|
|
|
- // ("ANGLE_30", ANGLE_30, 0.8660254),
|
|
|
|
|
- // ("ANGLE_60", ANGLE_60, 0.5),
|
|
|
|
|
- // ("ANGLE_90", ANGLE_90, 0.0),
|
|
|
|
|
- // ("ANGLE_180", ANGLE_180, -1.0),
|
|
|
|
|
- // ("ANGLE_270", ANGLE_270, 0.0),
|
|
|
|
|
- // ("ANGLE_360", ANGLE_360, 1.0),
|
|
|
|
|
- // ];
|
|
|
|
|
-
|
|
|
|
|
- // for (label, angle, result) in tests {
|
|
|
|
|
- // println!("cos({label})");
|
|
|
|
|
- // float_cmp::assert_approx_eq!(f64, cos(angle), result, epsilon = 0.00000003, ulps = 2);
|
|
|
|
|
- // }
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
- // #[test]
|
|
|
|
|
- // fn test_sin_values() {
|
|
|
|
|
- // let tests = [
|
|
|
|
|
- // ("ANGLE_0", ANGLE_0, 0.0),
|
|
|
|
|
- // ("ANGLE_30", ANGLE_30, 0.5),
|
|
|
|
|
- // ("ANGLE_60", ANGLE_60, 0.8660254),
|
|
|
|
|
- // ("ANGLE_90", ANGLE_90, 1.0),
|
|
|
|
|
- // ("ANGLE_180", ANGLE_180, 0.0),
|
|
|
|
|
- // ("ANGLE_270", ANGLE_270, -1.0),
|
|
|
|
|
- // ("ANGLE_360", ANGLE_360, 0.0),
|
|
|
|
|
- // ];
|
|
|
|
|
-
|
|
|
|
|
- // for (label, angle, result) in tests {
|
|
|
|
|
- // println!("sin({label})");
|
|
|
|
|
- // float_cmp::assert_approx_eq!(f64, sin(angle), result, epsilon = 0.00000003, ulps = 2);
|
|
|
|
|
- // }
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
- // #[test]
|
|
|
|
|
- // fn test_tan_values() {
|
|
|
|
|
- // let tests = [
|
|
|
|
|
- // ("ANGLE_0", ANGLE_0, 0.0),
|
|
|
|
|
- // ("ANGLE_30", ANGLE_30, 0.577350269),
|
|
|
|
|
- // ("ANGLE_60", ANGLE_60, 1.732050808),
|
|
|
|
|
- // ("ANGLE_90", ANGLE_90, f64::INFINITY),
|
|
|
|
|
- // ("ANGLE_180", ANGLE_180, 0.0),
|
|
|
|
|
- // ("ANGLE_270", ANGLE_270, f64::NEG_INFINITY),
|
|
|
|
|
- // ("ANGLE_360", ANGLE_360, 0.0),
|
|
|
|
|
- // ];
|
|
|
|
|
-
|
|
|
|
|
- // for (label, angle, result) in tests {
|
|
|
|
|
- // println!("tan({label})");
|
|
|
|
|
- // float_cmp::assert_approx_eq!(f64, tan(angle), result, epsilon = 0.00000003, ulps = 2);
|
|
|
|
|
- // }
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
- // #[test]
|
|
|
|
|
- // fn test_icos_values() {
|
|
|
|
|
- // let tests = [
|
|
|
|
|
- // ("ANGLE_0", ANGLE_0, 1.0),
|
|
|
|
|
- // ("ANGLE_30", ANGLE_30, 1.154700538),
|
|
|
|
|
- // ("ANGLE_60", ANGLE_60, 2.0),
|
|
|
|
|
- // ("ANGLE_90", ANGLE_90, f64::INFINITY),
|
|
|
|
|
- // ("ANGLE_180", ANGLE_180, -1.0),
|
|
|
|
|
- // ("ANGLE_270", ANGLE_270, f64::INFINITY),
|
|
|
|
|
- // ("ANGLE_360", ANGLE_360, 1.0),
|
|
|
|
|
- // ];
|
|
|
|
|
-
|
|
|
|
|
- // for (label, angle, result) in tests {
|
|
|
|
|
- // println!("icos({label})");
|
|
|
|
|
- // float_cmp::assert_approx_eq!(f64, icos(angle), result, epsilon = 0.00000003, ulps = 2);
|
|
|
|
|
- // }
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
- // #[test]
|
|
|
|
|
- // fn test_isin_values() {
|
|
|
|
|
- // let tests = [
|
|
|
|
|
- // ("ANGLE_0", ANGLE_0, f64::INFINITY),
|
|
|
|
|
- // ("ANGLE_30", ANGLE_30, 2.0),
|
|
|
|
|
- // ("ANGLE_60", ANGLE_60, 1.154700538),
|
|
|
|
|
- // ("ANGLE_90", ANGLE_90, 1.0),
|
|
|
|
|
- // ("ANGLE_180", ANGLE_180, f64::INFINITY),
|
|
|
|
|
- // ("ANGLE_270", ANGLE_270, -1.0),
|
|
|
|
|
- // ("ANGLE_360", ANGLE_360, f64::INFINITY),
|
|
|
|
|
- // ];
|
|
|
|
|
-
|
|
|
|
|
- // for (label, angle, result) in tests {
|
|
|
|
|
- // println!("isin({label})");
|
|
|
|
|
- // float_cmp::assert_approx_eq!(f64, isin(angle), result, epsilon = 0.00000003, ulps = 2);
|
|
|
|
|
- // }
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
- // #[test]
|
|
|
|
|
- // fn test_itan_values() {
|
|
|
|
|
- // let tests = [
|
|
|
|
|
- // ("ANGLE_0", ANGLE_0, f64::INFINITY),
|
|
|
|
|
- // ("ANGLE_30", ANGLE_30, 1.732050808),
|
|
|
|
|
- // ("ANGLE_60", ANGLE_60, 0.577350269),
|
|
|
|
|
- // ("ANGLE_90", ANGLE_90, 0.0),
|
|
|
|
|
- // ("ANGLE_180", ANGLE_180, f64::NEG_INFINITY),
|
|
|
|
|
- // ("ANGLE_270", ANGLE_270, 0.0),
|
|
|
|
|
- // ("ANGLE_360", ANGLE_360, f64::INFINITY),
|
|
|
|
|
- // ];
|
|
|
|
|
-
|
|
|
|
|
- // for (label, angle, result) in tests {
|
|
|
|
|
- // println!("itan({label})");
|
|
|
|
|
- // float_cmp::assert_approx_eq!(f64, itan(angle), result, epsilon = 0.00000003, ulps = 2);
|
|
|
|
|
- // }
|
|
|
|
|
- // }
|
|
|
|
|
-}
|
|
|
|
|
|
|
+// #[cfg(test)]
|
|
|
|
|
+// mod tests {
|
|
|
|
|
+// use float_cmp;
|
|
|
|
|
+// use super::*;
|
|
|
|
|
+
|
|
|
|
|
+// #[test]
|
|
|
|
|
+// fn test_cos_values() {
|
|
|
|
|
+// let tests = [
|
|
|
|
|
+// ("ANGLE_0", ANGLE_0, 1.0),
|
|
|
|
|
+// ("ANGLE_30", ANGLE_30, 0.8660254),
|
|
|
|
|
+// ("ANGLE_60", ANGLE_60, 0.5),
|
|
|
|
|
+// ("ANGLE_90", ANGLE_90, 0.0),
|
|
|
|
|
+// ("ANGLE_180", ANGLE_180, -1.0),
|
|
|
|
|
+// ("ANGLE_270", ANGLE_270, 0.0),
|
|
|
|
|
+// ("ANGLE_360", ANGLE_360, 1.0),
|
|
|
|
|
+// ];
|
|
|
|
|
+
|
|
|
|
|
+// for (label, angle, result) in tests {
|
|
|
|
|
+// println!("cos({label})");
|
|
|
|
|
+// float_cmp::assert_approx_eq!(f64, cos(angle), result, epsilon = 0.00000003, ulps = 2);
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// #[test]
|
|
|
|
|
+// fn test_sin_values() {
|
|
|
|
|
+// let tests = [
|
|
|
|
|
+// ("ANGLE_0", ANGLE_0, 0.0),
|
|
|
|
|
+// ("ANGLE_30", ANGLE_30, 0.5),
|
|
|
|
|
+// ("ANGLE_60", ANGLE_60, 0.8660254),
|
|
|
|
|
+// ("ANGLE_90", ANGLE_90, 1.0),
|
|
|
|
|
+// ("ANGLE_180", ANGLE_180, 0.0),
|
|
|
|
|
+// ("ANGLE_270", ANGLE_270, -1.0),
|
|
|
|
|
+// ("ANGLE_360", ANGLE_360, 0.0),
|
|
|
|
|
+// ];
|
|
|
|
|
+
|
|
|
|
|
+// for (label, angle, result) in tests {
|
|
|
|
|
+// println!("sin({label})");
|
|
|
|
|
+// float_cmp::assert_approx_eq!(f64, sin(angle), result, epsilon = 0.00000003, ulps = 2);
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// #[test]
|
|
|
|
|
+// fn test_tan_values() {
|
|
|
|
|
+// let tests = [
|
|
|
|
|
+// ("ANGLE_0", ANGLE_0, 0.0),
|
|
|
|
|
+// ("ANGLE_30", ANGLE_30, 0.577350269),
|
|
|
|
|
+// ("ANGLE_60", ANGLE_60, 1.732050808),
|
|
|
|
|
+// ("ANGLE_90", ANGLE_90, f64::INFINITY),
|
|
|
|
|
+// ("ANGLE_180", ANGLE_180, 0.0),
|
|
|
|
|
+// ("ANGLE_270", ANGLE_270, f64::NEG_INFINITY),
|
|
|
|
|
+// ("ANGLE_360", ANGLE_360, 0.0),
|
|
|
|
|
+// ];
|
|
|
|
|
+
|
|
|
|
|
+// for (label, angle, result) in tests {
|
|
|
|
|
+// println!("tan({label})");
|
|
|
|
|
+// float_cmp::assert_approx_eq!(f64, tan(angle), result, epsilon = 0.00000003, ulps = 2);
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// #[test]
|
|
|
|
|
+// fn test_icos_values() {
|
|
|
|
|
+// let tests = [
|
|
|
|
|
+// ("ANGLE_0", ANGLE_0, 1.0),
|
|
|
|
|
+// ("ANGLE_30", ANGLE_30, 1.154700538),
|
|
|
|
|
+// ("ANGLE_60", ANGLE_60, 2.0),
|
|
|
|
|
+// ("ANGLE_90", ANGLE_90, f64::INFINITY),
|
|
|
|
|
+// ("ANGLE_180", ANGLE_180, -1.0),
|
|
|
|
|
+// ("ANGLE_270", ANGLE_270, f64::INFINITY),
|
|
|
|
|
+// ("ANGLE_360", ANGLE_360, 1.0),
|
|
|
|
|
+// ];
|
|
|
|
|
+
|
|
|
|
|
+// for (label, angle, result) in tests {
|
|
|
|
|
+// println!("icos({label})");
|
|
|
|
|
+// float_cmp::assert_approx_eq!(f64, icos(angle), result, epsilon = 0.00000003, ulps = 2);
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// #[test]
|
|
|
|
|
+// fn test_isin_values() {
|
|
|
|
|
+// let tests = [
|
|
|
|
|
+// ("ANGLE_0", ANGLE_0, f64::INFINITY),
|
|
|
|
|
+// ("ANGLE_30", ANGLE_30, 2.0),
|
|
|
|
|
+// ("ANGLE_60", ANGLE_60, 1.154700538),
|
|
|
|
|
+// ("ANGLE_90", ANGLE_90, 1.0),
|
|
|
|
|
+// ("ANGLE_180", ANGLE_180, f64::INFINITY),
|
|
|
|
|
+// ("ANGLE_270", ANGLE_270, -1.0),
|
|
|
|
|
+// ("ANGLE_360", ANGLE_360, f64::INFINITY),
|
|
|
|
|
+// ];
|
|
|
|
|
+
|
|
|
|
|
+// for (label, angle, result) in tests {
|
|
|
|
|
+// println!("isin({label})");
|
|
|
|
|
+// float_cmp::assert_approx_eq!(f64, isin(angle), result, epsilon = 0.00000003, ulps = 2);
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// #[test]
|
|
|
|
|
+// fn test_itan_values() {
|
|
|
|
|
+// let tests = [
|
|
|
|
|
+// ("ANGLE_0", ANGLE_0, f64::INFINITY),
|
|
|
|
|
+// ("ANGLE_30", ANGLE_30, 1.732050808),
|
|
|
|
|
+// ("ANGLE_60", ANGLE_60, 0.577350269),
|
|
|
|
|
+// ("ANGLE_90", ANGLE_90, 0.0),
|
|
|
|
|
+// ("ANGLE_180", ANGLE_180, f64::NEG_INFINITY),
|
|
|
|
|
+// ("ANGLE_270", ANGLE_270, 0.0),
|
|
|
|
|
+// ("ANGLE_360", ANGLE_360, f64::INFINITY),
|
|
|
|
|
+// ];
|
|
|
|
|
+
|
|
|
|
|
+// for (label, angle, result) in tests {
|
|
|
|
|
+// println!("itan({label})");
|
|
|
|
|
+// float_cmp::assert_approx_eq!(f64, itan(angle), result, epsilon = 0.00000003, ulps = 2);
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|