| 1 | # Edits reaching into equation objects |
| 2 | |
| 3 | `lab/` holds COM reads of a disposable OneNote 2010 clone editing a copy of |
| 4 | `corpus/math-edit/native-editor-4` by hand. `before.xml` is the page as it opened and |
| 5 | `after.xml` as it ended; the rest are reads between steps. |
| 6 | |
| 7 | - A mouse selection from inside `√x+1`'s root into `∛x`'s shows both objects selected |
| 8 | whole, and Backspace removes both paragraphs (`roots-deleted.xml`). |
| 9 | - From after `a₁` in `a₁+b₂` into the body of a sum ending its paragraph: the sum is taken |
| 10 | whole with the paragraph's end, so Backspace joins `a₁` to the integral below. |
| 11 | - From a fraction's numerator in `One a/b+c two` into the root of `Three √x+y four`: |
| 12 | both objects whole, leaving `One +y four`. |
| 13 | - Enter between `→` and `∞` in `lim_(n→∞) a_n` makes the limit an equation array |
| 14 | (`limit-enter.xml`). |
| 15 | - A click in "Type equation here." selects the placeholder whole; Enter leaves its |
| 16 | paragraph empty above a new one (`placeholder-enter.xml`), and typing `x` replaces it. |
| 17 | - A drag past a line's end also takes the paragraph's end: "Alpha beta", "Gamma delta" |
| 18 | selected from `Alp` to past `delta` delete to `Alpepsilon`. |
| 19 | |
| 20 | `candidate/` is the output of `selections_into_equation_objects_take_them_whole` in |
| 21 | `crates/canvas/tests/links_equations.rs`: the same edits through the editor on the same |
| 22 | page, one revision each. `cold/` is a fresh OneNote 2010 read of it, whose MathML matches |
| 23 | the lab's equation for equation. `tools/test_equation_select.py` checks this without a VM. |
| 24 | Regenerate with `CANVAS_EQUATION_SELECT_EXPORT` set to a new absolute directory while |
| 25 | running the test, then cold-open it with |
| 26 | `tools/native_runner.py OUTPUT COLD --expected-pages 1 --collect-notebook --screenshots`. |