Rust polars Series::series_equal 方法断言即使不正确

问题描述 投票:0回答:1

我的测试断言为真,即使我在系列中有不同的值。

在下面的测试中索引 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方法时通过了?

rust series
1个回答
0
投票

series_equal()
不断言任何东西,它只比较并返回一个布尔值。

你需要

assert!()
它的结果:

assert!(transformed_s.series_equal(&expected_s));

但我建议你只使用

assert_eq!()
.

© www.soinside.com 2019 - 2024. All rights reserved.