Dialog parity: Mirror has Object Type (Bodies / Features, a hole mirrored as a feature; Edit Feature keeps it); Thread has Full Length (a length only when off)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
This commit is contained in:
1 parent
23d38fab97
commit
c0725ebc86
2 files changed
+42
-9
No files matched your search
@@ -176,3 +176,17 @@ fn a_hole_is_patterned_as_a_feature() {
|
||||
assert_eq!(e.inputs[0].accept, crate::selection::FEATURES);
|
||||
assert_eq!(e.inputs[0].items, vec![Sel::Feature { id: hole }]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_hole_is_mirrored_as_a_feature() {
|
||||
let mut app = app_with(json!([
|
||||
{"command": "PrimitiveBox", "params": {"length": 60, "width": 40, "height": 10}},
|
||||
{"command": "FusionHoleCommand", "params": {"position": [10, 10, 10], "diameter": 5}}
|
||||
]));
|
||||
let hole = app.session.doc.features.last().unwrap().id;
|
||||
let mut d = start(&mut app, vec![Sel::Feature { id: hole }], "MirrorCommand");
|
||||
assert_eq!(d.inputs[0].accept, crate::selection::FEATURES);
|
||||
d.inputs[1].items = vec![Sel::Plane { name: "YZ".into() }];
|
||||
let cmds = apply_commands(&app, &d).unwrap();
|
||||
assert_eq!(cmds[0].1["features"], json!(["Hole1"]));
|
||||
}
|
||||
Reference in new issue
Block a user