aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hittekaart/src/renderer/mod.rs47
1 files changed, 43 insertions, 4 deletions
diff --git a/hittekaart/src/renderer/mod.rs b/hittekaart/src/renderer/mod.rs
index 40fd5fa..696c1e5 100644
--- a/hittekaart/src/renderer/mod.rs
+++ b/hittekaart/src/renderer/mod.rs
@@ -3,10 +3,7 @@ use std::thread;
use crossbeam_channel::Sender;
-use super::{
- error::Result,
- gpx::Coordinates,
-};
+use super::{error::Result, gpx::Coordinates};
pub mod heatmap;
pub mod marktile;
@@ -99,3 +96,45 @@ pub fn colorize<R: Renderer, F: FnMut(RenderedTile) -> Result<()>>(
colorizer.join().unwrap()
})
}
+
+#[cfg(test)]
+mod test {
+ use rstest::rstest;
+ use super::*;
+
+ #[rstest]
+ fn test_heatmap_prepare() {
+ let tracks = &[
+ vec![Coordinates { latitude: 52.520008, longitude: 13.404954 }],
+ vec![Coordinates { latitude: 52.520008, longitude: 13.404954 }],
+ vec![Coordinates { latitude: 52.520008, longitude: 13.404954 }],
+ ];
+ let mut prep = prepare(&heatmap::Renderer, 0, &tracks[..1], || Ok(())).unwrap();
+
+ assert_eq!(prep.tile_count(), 1);
+ assert_eq!(prep.tile_mut(0, 0).get_pixel(0, 0).0[0], 0);
+ assert_eq!(prep.tile_mut(0, 0).get_pixel(255, 255).0[0], 0);
+
+ let ones: &[(u32, u32)] = &[
+ (137, 82),
+ (136, 83),
+ (137, 83),
+ (138, 83),
+ (137, 84),
+ ];
+
+ for (x, y) in ones {
+ assert_eq!(prep.tile_mut(0, 0).get_pixel(*x, *y).0[0], 1);
+ }
+
+ let mut prep = prepare(&heatmap::Renderer, 0, &tracks[..2], || Ok(())).unwrap();
+ for (x, y) in ones {
+ assert_eq!(prep.tile_mut(0, 0).get_pixel(*x, *y).0[0], 2);
+ }
+
+ let mut prep = prepare(&heatmap::Renderer, 0, &tracks[..3], || Ok(())).unwrap();
+ for (x, y) in ones {
+ assert_eq!(prep.tile_mut(0, 0).get_pixel(*x, *y).0[0], 3);
+ }
+ }
+}