diff --git a/tests/kernel-cases/solids/cov-scale-sphere-to-ellipsoid/expected.json b/tests/kernel-cases/solids/cov-scale-sphere-to-ellipsoid/expected.json new file mode 100644 index 0000000000..8556422ea1 --- /dev/null +++ b/tests/kernel-cases/solids/cov-scale-sphere-to-ellipsoid/expected.json @@ -0,0 +1,26 @@ +{ + "sources": [], + "what": "a sphere r10 scaled non-uniformly (1, 2, 0.5) into an ellipsoid", + "source": "analytic", + "method": "ellipsoid of semi-axes 10, 20, 5: V = 4/3 pi abc = 4/3 pi 1000 (the factors multiply to 1: the sphere's volume); bbox +-10, +-20, +-5; one closed face", + "body_count": 1, + "faces": 1, + "volume_mm3": 4188.790204786391, + "center_of_mass": [ + 0, + 0, + 0 + ], + "bbox": { + "min": [ + -10, + -20, + -5 + ], + "max": [ + 10, + 20, + 5 + ] + } +} diff --git a/tests/kernel-cases/solids/cov-scale-sphere-to-ellipsoid/recipe.json b/tests/kernel-cases/solids/cov-scale-sphere-to-ellipsoid/recipe.json new file mode 100644 index 0000000000..13456cd457 --- /dev/null +++ b/tests/kernel-cases/solids/cov-scale-sphere-to-ellipsoid/recipe.json @@ -0,0 +1,24 @@ +{ + "commands": [ + { + "command": "solid.sphere", + "params": { + "radius": 10, + "body_name": "Ball" + } + }, + { + "command": "solid.scale", + "params": { + "bodies": [ + "Ball" + ], + "factors": [ + 1, + 2, + 0.5 + ] + } + } + ] +} diff --git a/tests/kernel-cases/solids/cov-scale-uniform-about-a-corner/expected.json b/tests/kernel-cases/solids/cov-scale-uniform-about-a-corner/expected.json new file mode 100644 index 0000000000..7fb35055af --- /dev/null +++ b/tests/kernel-cases/solids/cov-scale-uniform-about-a-corner/expected.json @@ -0,0 +1,27 @@ +{ + "sources": [], + "what": "a 10 mm cube scaled 2x about its far corner (10,10,10)", + "source": "analytic", + "method": "p -> o + 2(p - o) with o = (10,10,10): the corner 0 goes to -10, 10 stays: a 20 mm cube from -10 to 10; V = 8000, A = 6*400", + "body_count": 1, + "faces": 6, + "volume_mm3": 8000.0, + "area_mm2": 2400.0, + "center_of_mass": [ + 0, + 0, + 0 + ], + "bbox": { + "min": [ + -10, + -10, + -10 + ], + "max": [ + 10, + 10, + 10 + ] + } +} diff --git a/tests/kernel-cases/solids/cov-scale-uniform-about-a-corner/recipe.json b/tests/kernel-cases/solids/cov-scale-uniform-about-a-corner/recipe.json new file mode 100644 index 0000000000..818c835fcd --- /dev/null +++ b/tests/kernel-cases/solids/cov-scale-uniform-about-a-corner/recipe.json @@ -0,0 +1,27 @@ +{ + "commands": [ + { + "command": "solid.box", + "params": { + "length": 10, + "width": 10, + "height": 10, + "body_name": "Block" + } + }, + { + "command": "solid.scale", + "params": { + "bodies": [ + "Block" + ], + "factor": 2, + "origin": [ + 10, + 10, + 10 + ] + } + } + ] +} diff --git a/tests/kernel-cases/solids/cov-scale-zero-factor-refused/expected.json b/tests/kernel-cases/solids/cov-scale-zero-factor-refused/expected.json new file mode 100644 index 0000000000..a4677525a4 --- /dev/null +++ b/tests/kernel-cases/solids/cov-scale-zero-factor-refused/expected.json @@ -0,0 +1,8 @@ +{ + "sources": [], + "what": "a scale factor of 0 flattens the body to a sheet: refused", + "source": "analytic", + "method": "a zero factor maps the cube onto a plane: no solid, a clean refusal", + "outcome": "refused", + "refusal": "scale factors must be positive" +} diff --git a/tests/kernel-cases/solids/cov-scale-zero-factor-refused/recipe.json b/tests/kernel-cases/solids/cov-scale-zero-factor-refused/recipe.json new file mode 100644 index 0000000000..3e5f6dc64f --- /dev/null +++ b/tests/kernel-cases/solids/cov-scale-zero-factor-refused/recipe.json @@ -0,0 +1,26 @@ +{ + "commands": [ + { + "command": "solid.box", + "params": { + "length": 10, + "width": 10, + "height": 10, + "body_name": "Block" + } + }, + { + "command": "solid.scale", + "params": { + "bodies": [ + "Block" + ], + "factors": [ + 1, + 0, + 1 + ] + } + } + ] +}