diff --git a/ta_lib/core/src/series.rs b/ta_lib/core/src/series.rs index 0a15e183..650d3f64 100644 --- a/ta_lib/core/src/series.rs +++ b/ta_lib/core/src/series.rs @@ -127,7 +127,11 @@ impl Series { impl> From for Series { fn from(item: T) -> Self { Self { - data: item.as_ref().iter().map(|&x| Some(x)).collect(), + data: item + .as_ref() + .iter() + .map(|&x| if x.is_nan() { None } else { Some(x) }) + .collect(), } } } @@ -185,6 +189,16 @@ mod tests { assert_eq!(result.len(), expected); } + #[test] + fn test_from() { + let source = vec![f64::NAN, 1.0, 2.0, 3.0]; + let expected = vec![None, Some(1.0), Some(2.0), Some(3.0)]; + + let result = Series::from(&source); + + assert_eq!(result, expected); + } + #[test] fn test_empty() { let len = 4;