Skip to content

Commit

Permalink
replace none by zero
Browse files Browse the repository at this point in the history
  • Loading branch information
m5l14i11 committed Jul 5, 2023
1 parent d4e4489 commit 8937d48
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
1 change: 1 addition & 0 deletions ta_lib/utils/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
pub mod highest;
pub mod lowest;
pub mod nz;
pub mod stddev;
pub mod stoch;
pub mod tr;
30 changes: 30 additions & 0 deletions ta_lib/utils/src/nz.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
pub fn nz(source: &[Option<f64>], replacement: Option<f64>) -> Vec<f64> {
let replacement = replacement.unwrap_or(0.0);
source.iter().map(|&x| x.unwrap_or(replacement)).collect()
}

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn test_nz_with_replacement() {
let source = vec![Some(1.0), None, Some(2.0), None];
let replacement = Some(3.0);
let expected = vec![1.0, 3.0, 2.0, 3.0];

let result = nz(&source, replacement);

assert_eq!(result, expected);
}

#[test]
fn test_nz_with_default_replacement() {
let source = vec![Some(1.0), None, Some(2.0), None];
let expected = vec![1.0, 0.0, 2.0, 0.0];

let result = nz(&source, None);

assert_eq!(result, expected);
}
}

0 comments on commit 8937d48

Please sign in to comment.