From 0f55c686ef050abdb57fccd196d7208858ad34c8 Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Thu, 27 Nov 2025 22:37:09 +0100 Subject: add preliminary test for heatmap_prepare --- hittekaart/src/renderer/mod.rs | 47 ++++++++++++++++++++++++++++++++++++++---- 1 file 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 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); + } + } +} -- cgit v1.2.3