aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2025-11-27 22:37:09 +0100
committerDaniel Schadt <kingdread@gmx.de>2025-11-27 22:37:09 +0100
commit0f55c686ef050abdb57fccd196d7208858ad34c8 (patch)
tree54ea26526b87e53085ca45fe6274b4734262da34
parent6ec81bd17e18eed3de705a07a86bd1bf239e6ba3 (diff)
downloadhittekaart-0f55c686ef050abdb57fccd196d7208858ad34c8.tar.gz
hittekaart-0f55c686ef050abdb57fccd196d7208858ad34c8.tar.bz2
hittekaart-0f55c686ef050abdb57fccd196d7208858ad34c8.zip
add preliminary test for heatmap_prepare
-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);
+ }
+ }
+}