From b0417114afb7ae8ee25c768d297114466d0a356d Mon Sep 17 00:00:00 2001 From: Adam Chalmers Date: Fri, 29 Mar 2024 15:56:32 -0500 Subject: [PATCH] New test case: Paul's riddle, shortened (#1970) This is discussed in https://github.com/KittyCAD/modeling-app/issues/1969 --- .../tests/executor/inputs/riddle_small.kcl | 17 +++++++++++++++++ src/wasm-lib/tests/executor/main.rs | 9 +++++++++ .../tests/executor/outputs/riddle_small.png | Bin 0 -> 94518 bytes 3 files changed, 26 insertions(+) create mode 100644 src/wasm-lib/tests/executor/inputs/riddle_small.kcl create mode 100644 src/wasm-lib/tests/executor/outputs/riddle_small.png diff --git a/src/wasm-lib/tests/executor/inputs/riddle_small.kcl b/src/wasm-lib/tests/executor/inputs/riddle_small.kcl new file mode 100644 index 000000000..1a18b9021 --- /dev/null +++ b/src/wasm-lib/tests/executor/inputs/riddle_small.kcl @@ -0,0 +1,17 @@ +const ANSWER = 41803 + +fn m = (s) => { + return (ANSWER * s + 12345) % 214748 +} + +let xs = 205804 +let ys = 71816 + let ox = 35 - (m(xs) % 70) + let oy = 35 - (m(ys) % 70) + const r = startSketchOn('XZ') + |> startProfileAt([ox, oy], %) + |> line([1, 0], %) + |> line([0, -1], %) + |> line([-1, 0], %) + |> close(%) + |> extrude(1, %) diff --git a/src/wasm-lib/tests/executor/main.rs b/src/wasm-lib/tests/executor/main.rs index 329c5e995..089e068a9 100644 --- a/src/wasm-lib/tests/executor/main.rs +++ b/src/wasm-lib/tests/executor/main.rs @@ -111,6 +111,15 @@ const part002 = startSketchOn(part001, "here") .unwrap(); twenty_twenty::assert_image("tests/executor/outputs/sketch_on_face.png", &result, 0.999); } +#[tokio::test(flavor = "multi_thread")] +async fn serial_test_riddle_small() { + let code = include_str!("inputs/riddle_small.kcl"); + + let result = execute_and_snapshot(code, kittycad::types::UnitLength::Mm) + .await + .unwrap(); + twenty_twenty::assert_image("tests/executor/outputs/riddle_small.png", &result, 0.999); +} #[tokio::test(flavor = "multi_thread")] async fn serial_test_sketch_on_face_start() { diff --git a/src/wasm-lib/tests/executor/outputs/riddle_small.png b/src/wasm-lib/tests/executor/outputs/riddle_small.png new file mode 100644 index 0000000000000000000000000000000000000000..12f3337b5bf7827e456d4f483d9e8ab1f6555bae GIT binary patch literal 94518 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