我的测试断言为真,即使我在系列中有不同的值。
在下面的测试中索引 0 (100.94947) 是错误的但是它通过了
pub fn convert_tb_to_tib(s: Series) -> Series {
let result = s.cast(&DataType::Float64).unwrap() * 0.90949470177293;
result
}
fn test_convert_tb_to_tib() {
let test_s = Series::new("", &[100, 200, 300, 400]);
let transformed_s = convert_tb_to_tib(test_s);
let expected_s = Series::new("", &[100.94947, 181.89894, 272.848411, 373.797881]);
transformed_s.series_equal(&expected_s);
}
test wrangle::tests::test_convert_tb_to_tib ... ok
我可以使用 assert_eq 证明这一点!宏代替:
fn test_convert_tb_to_tib() {
let test_s = Series::new("", &[100, 200, 300, 400]);
let transformed_s = convert_tb_to_tib(test_s);
let expected_s = Series::new("", &[100.94947, 181.89894, 272.848411, 373.797881]);
assert_eq!(transformed_s, expected_s);
}
thread 'wrangle::tests::test_convert_tb_to_tib' panicked at 'assertion failed: `(left == right)`
left: `shape: (4,)
Series: '' [f64]
[
90.94947
181.89894
272.848411
363.797881
]`,
right: `shape: (4,)
Series: '' [f64]
[
100.94947
181.89894
272.848411
373.797881
]`', src/wrangle.rs:108:9
为什么这个测试在使用series_eq方法时通过了?
series_equal()
不断言任何东西,它只比较并返回一个布尔值。
你需要
assert!()
它的结果:
assert!(transformed_s.series_equal(&expected_s));
但我建议你只使用
assert_eq!()
.