diff options
| author | Daniel Schadt <kingdread@gmx.de> | 2025-11-27 22:37:09 +0100 |
|---|---|---|
| committer | Daniel Schadt <kingdread@gmx.de> | 2025-11-27 22:37:09 +0100 |
| commit | 0f55c686ef050abdb57fccd196d7208858ad34c8 (patch) | |
| tree | 54ea26526b87e53085ca45fe6274b4734262da34 | |
| parent | 6ec81bd17e18eed3de705a07a86bd1bf239e6ba3 (diff) | |
| download | hittekaart-0f55c686ef050abdb57fccd196d7208858ad34c8.tar.gz hittekaart-0f55c686ef050abdb57fccd196d7208858ad34c8.tar.bz2 hittekaart-0f55c686ef050abdb57fccd196d7208858ad34c8.zip | |
add preliminary test for heatmap_prepare
| -rw-r--r-- | hittekaart/src/renderer/mod.rs | 47 |
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); + } + } +} |
