You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// XIRR result may differ between platforms, so we truncate the result
2808
+
let r = service
2809
+
.exec_query(
2810
+
r#"
2811
+
SELECT LEFT(XIRR(payment, date)::varchar, 10) AS xirr
2812
+
FROM (
2813
+
SELECT '2014-01-01'::date AS date, -10000.0 AS payment
2814
+
UNION ALL
2815
+
SELECT '2014-03-01'::date AS date, 2750.0 AS payment
2816
+
UNION ALL
2817
+
SELECT '2014-10-30'::date AS date, 4250.0 AS payment
2818
+
UNION ALL
2819
+
SELECT '2015-02-15'::date AS date, 3250.0 AS payment
2820
+
UNION ALL
2821
+
SELECT '2015-04-01'::date AS date, 2750.0 AS payment
2822
+
) AS "t"
2823
+
"#,
2824
+
)
2825
+
.await
2826
+
.unwrap();
2827
+
2828
+
assert_eq!(to_rows(&r), rows(&["0.37485859"]));
2829
+
2830
+
let r = service
2831
+
.exec_query(
2832
+
r#"
2833
+
SELECT LEFT(XIRR(payment, date)::varchar, 10) AS xirr
2834
+
FROM (
2835
+
SELECT '2014-01-01'::date AS date, -10000.0 AS payment
2836
+
) AS "t"
2837
+
WHERE 0 = 1
2838
+
"#,
2839
+
)
2840
+
.await
2841
+
.unwrap_err();
2842
+
assert_eq!(r.elide_backtrace(),CubeError::internal("Arrow error: External error: Execution error: A result for XIRR couldn't be determined because the arguments are empty".to_owned()));
2843
+
2844
+
let r = service
2845
+
.exec_query(
2846
+
r#"
2847
+
SELECT LEFT(XIRR(payment, date)::varchar, 10) AS xirr
2848
+
FROM (
2849
+
SELECT '2014-01-01'::date AS date, 10000.0 AS payment
2850
+
) AS "t"
2851
+
"#,
2852
+
)
2853
+
.await
2854
+
.unwrap_err();
2855
+
assert_eq!(r.elide_backtrace(),CubeError::internal("Arrow error: External error: Execution error: The XIRR function couldn't find a solution".to_owned()));
0 commit comments