KCL: Better message on assertEqual function (#3898)

Also add a new no-visual test for performance testing.
This commit is contained in:
Adam Chalmers
2024-09-16 12:43:49 -04:00
committed by GitHub
parent 8602e937d3
commit dc73acb1b1
3 changed files with 116 additions and 1 deletions

View File

@ -79,7 +79,14 @@ pub async fn assert_gt(args: Args) -> Result<KclValue, KclError> {
name = "assertEqual",
}]
async fn inner_assert_equal(left: f64, right: f64, epsilon: f64, message: &str, args: &Args) -> Result<(), KclError> {
_assert((right - left).abs() < epsilon, message, args).await
if (right - left).abs() < epsilon {
Ok(())
} else {
Err(KclError::Type(KclErrorDetails {
message: format!("assert failed because {left} != {right}: {message}"),
source_ranges: vec![args.source_range],
}))
}
}
pub async fn assert_equal(args: Args) -> Result<KclValue, KclError> {

View File

@ -0,0 +1,107 @@
fn f = (i) => {
return i * 2
}
let x = f(0)
+ f(1)
+ f(2)
+ f(3)
+ f(4)
+ f(5)
+ f(6)
+ f(7)
+ f(8)
+ f(9)
+ f(10)
+ f(11)
+ f(12)
+ f(13)
+ f(14)
+ f(15)
+ f(16)
+ f(17)
+ f(18)
+ f(19)
+ f(20)
+ f(21)
+ f(22)
+ f(23)
+ f(24)
+ f(25)
+ f(26)
+ f(27)
+ f(28)
+ f(29)
+ f(30)
+ f(31)
+ f(32)
+ f(33)
+ f(34)
+ f(35)
+ f(36)
+ f(37)
+ f(38)
+ f(39)
+ f(40)
+ f(41)
+ f(42)
+ f(43)
+ f(44)
+ f(45)
+ f(46)
+ f(47)
+ f(48)
+ f(49)
+ f(50)
+ f(51)
+ f(52)
+ f(53)
+ f(54)
+ f(55)
+ f(56)
+ f(57)
+ f(58)
+ f(59)
+ f(60)
+ f(61)
+ f(62)
+ f(63)
+ f(64)
+ f(65)
+ f(66)
+ f(67)
+ f(68)
+ f(69)
+ f(70)
+ f(71)
+ f(72)
+ f(73)
+ f(74)
+ f(75)
+ f(76)
+ f(77)
+ f(78)
+ f(79)
+ f(80)
+ f(81)
+ f(82)
+ f(83)
+ f(84)
+ f(85)
+ f(86)
+ f(87)
+ f(88)
+ f(89)
+ f(90)
+ f(91)
+ f(92)
+ f(93)
+ f(94)
+ f(95)
+ f(96)
+ f(97)
+ f(98)
+ f(99)
+ f(100)
assertEqual(x, 10100, 0.1, "Big sum")

View File

@ -86,3 +86,4 @@ gen_test_fail!(
"undefined value: Property 'age' not found in object"
);
gen_test!(sketch_group_in_object);
gen_test!(add_lots);