Skip to content

Delete when in a placeholder should simplify containing expression #117

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 23 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
6a3d01a
Implemented for fractions, radicals and superscripts
Happypig375 May 24, 2020
9e8e435
Added tests
Happypig375 May 24, 2020
98aa35d
More tests
Happypig375 May 24, 2020
eccb0a8
Tests for Inner
Happypig375 May 24, 2020
ab4a4a7
Delete trash
Happypig375 May 24, 2020
638bd1e
Tests for delete at beginnning of script when both scripts are present
Happypig375 May 24, 2020
f6db396
Also add power counterpart for this test
Happypig375 May 24, 2020
8e2d2ca
And placeholder counterparts
Happypig375 May 24, 2020
fc58258
Deleting placeholders at the start should not eliminate scripts
Happypig375 May 25, 2020
4ec984c
More range checking
Happypig375 May 27, 2020
5616369
Merge branch 'master' into issue108/DeleteInPlaceholder in order to make
Happypig375 May 27, 2020
f018231
Remove refs on MathListIndex inputs
charlesroddie Jun 17, 2020
85427c6
Move IsBeforeSubList and PreviousOrBeforeWholeList to prevent usage i…
charlesroddie Jun 17, 2020
4858a68
Rename SetTo to ReplaceWith
charlesroddie Jun 17, 2020
624ce67
Accepted simplification recommendations
charlesroddie Jun 25, 2020
bf87ef0
Merge branch 'master' into issue108/DeleteInPlaceholder
Happypig375 Aug 5, 2020
da9c95b
Merge branch 'issue108/DeleteInPlaceholder' of https://github.com/ver…
charlesroddie Aug 10, 2020
4d2b72a
tweak wording
charlesroddie Aug 10, 2020
c8675a1
remove unnecessary null checks
charlesroddie Aug 11, 2020
ac01721
add documentation TODOs
charlesroddie Aug 11, 2020
5b1ad8e
Add TODOs
charlesroddie Aug 11, 2020
9e91a94
failing test is unnecessary
charlesroddie Aug 11, 2020
5a764bb
add TODO
charlesroddie Aug 11, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 101 additions & 4 deletions CSharpMath.Editor.Tests/KeyPressTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -227,18 +227,116 @@ public void Return(params K[] inputs) =>
[
Theory,
T(@"", K.Backspace, K.Backspace, K.Backspace, K.Backspace, K.Backspace),
T(@"2", K.Backspace, K.Backspace, K.D1, K.Backspace, K.D2),
T(@"1", K.D1, K.D2, K.Backspace),
T(@"x^2", K.SmallX, K.Power, K.D2, K.D1, K.Backspace),
T(@"y_{3_4}", K.SmallY, K.Subscript, K.D3, K.Subscript, K.Backspace, K.Backspace, K.D4, K.D5, K.Backspace),
T(@"5^■", K.D5, K.Power, K.Iota, K.Kappa, K.SmallEta, K.Backspace, K.Backspace, K.Backspace, K.Backspace),
T(@"\frac{■}{\square }", K.Fraction, K.Backspace),
T(@"5", K.D5, K.Power, K.Iota, K.Kappa, K.SmallEta, K.Backspace, K.Backspace, K.Backspace, K.Backspace),
T(@"", K.Fraction, K.Backspace),
T(@"", K.Power, K.Backspace),
T(@"", K.Subscript, K.Backspace),
T(@"", K.SquareRoot, K.Backspace),
T(@"3", K.CubeRoot, K.Backspace),
T(@"", K.NthRoot, K.Backspace),
T(@"a", K.SmallA, K.Fraction, K.Backspace),
T(@"a", K.SmallA, K.SquareRoot, K.Backspace),
T(@"a3", K.SmallA, K.CubeRoot, K.Backspace),
T(@"a", K.SmallA, K.NthRoot, K.Backspace),
T(@"a", K.SmallA, K.Power, K.Backspace),
T(@"a", K.SmallA, K.Subscript, K.Backspace),
T(@"\square ^■", K.Power, K.Subscript, K.Backspace),
T(@"\square ^■", K.Power, K.Power, K.Backspace),
T(@"\square _■", K.Subscript, K.Power, K.Backspace),
T(@"\square _■", K.Subscript, K.Subscript, K.Backspace),
T(@"y_4", K.SmallY, K.Subscript, K.D3, K.Subscript, K.Backspace, K.Backspace, K.D4, K.D5, K.Backspace),
T(@"", K.VerticalBar, K.VerticalBar, K.Backspace, K.Backspace, K.Backspace)
]
public void Backspace(string latex, params K[] inputs) => Test(latex, inputs);

[
Theory,
T(@"", K.Left, K.Left, K.Backspace, K.Backspace, K.Right, K.Right, K.Backspace, K.Backspace, K.Left),
T(@"", K.Power, K.Left, K.Backspace),
T(@"", K.Subscript, K.Left, K.Backspace),
T(@".\frac{\square }{\square }", K.Fraction, K.Left, K.Backspace, K.Decimal),
T(@".\sqrt{\square }", K.SquareRoot, K.Left, K.Backspace, K.Decimal),
T(@".\sqrt[\square ]{\square }", K.NthRoot, K.Left, K.Backspace, K.Decimal),
T(@".\left( \square \right) ", K.BothRoundBrackets, K.Left, K.Backspace, K.Decimal),
T(@".", K.Power, K.Left, K.Backspace, K.Decimal),
T(@".", K.Subscript, K.Left, K.Backspace, K.Decimal),
T(@".\frac{\square }{\square }", K.SmallA, K.Fraction, K.Left, K.Backspace, K.Decimal),
T(@".\sqrt{\square }", K.SmallA, K.SquareRoot, K.Left, K.Backspace, K.Decimal),
T(@".\sqrt[\square ]{\square }", K.SmallA, K.NthRoot, K.Left, K.Backspace, K.Decimal),
T(@".\left( \square \right) ", K.SmallA, K.BothRoundBrackets, K.Left, K.Backspace, K.Decimal),
T(@".^{\square }", K.SmallA, K.Power, K.Left, K.Backspace, K.Decimal),
T(@"._{\square }", K.SmallA, K.Subscript, K.Left, K.Backspace, K.Decimal),
T(@".", K.Fraction, K.Right, K.Backspace, K.Decimal),
T(@".", K.SquareRoot, K.Right, K.Backspace, K.Decimal),
T(@".", K.NthRoot, K.Right, K.Backspace, K.Decimal),
T(@".", K.BothRoundBrackets, K.Right, K.Backspace, K.Decimal),
T(@".", K.Power, K.Right, K.Backspace, K.Decimal),
T(@".", K.Subscript, K.Right, K.Backspace, K.Decimal),
T(@"a.", K.SmallA, K.Fraction, K.Right, K.Backspace, K.Decimal),
T(@"a.", K.SmallA, K.SquareRoot, K.Right, K.Backspace, K.Decimal),
T(@"a.", K.SmallA, K.NthRoot, K.Right, K.Backspace, K.Decimal),
T(@"a.", K.SmallA, K.BothRoundBrackets, K.Right, K.Backspace, K.Decimal),
T(@".", K.SmallA, K.Power, K.Right, K.Backspace, K.Decimal),
T(@".", K.SmallA, K.Subscript, K.Right, K.Backspace, K.Decimal),
T(@".", K.Fraction, K.Right, K.Right, K.Backspace, K.Decimal),
T(@".", K.SquareRoot, K.Right, K.Right, K.Backspace, K.Decimal),
T(@".", K.NthRoot, K.Right, K.Right, K.Backspace, K.Decimal),
T(@".", K.BothRoundBrackets, K.Right, K.Right, K.Backspace, K.Decimal),
T(@".", K.Power, K.Right, K.Right, K.Backspace, K.Decimal),
T(@".", K.Subscript, K.Right, K.Right, K.Backspace, K.Decimal),
T(@"a.", K.SmallA, K.Fraction, K.Right, K.Right, K.Backspace, K.Decimal),
T(@"a.", K.SmallA, K.SquareRoot, K.Right, K.Right, K.Backspace, K.Decimal),
T(@"a.", K.SmallA, K.NthRoot, K.Right, K.Right, K.Backspace, K.Decimal),
T(@"a.", K.SmallA, K.BothRoundBrackets, K.Right, K.Right, K.Backspace, K.Decimal),
T(@".", K.SmallA, K.Power, K.Right, K.Right, K.Backspace, K.Decimal),
T(@".", K.SmallA, K.Subscript, K.Right, K.Right, K.Backspace, K.Decimal),
T(@".bcd", K.Fraction, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@".bcd", K.SquareRoot, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@".bcd", K.NthRoot, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@".bcd", K.BothRoundBrackets, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@".bcd", K.Power, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@".bcd", K.Subscript, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"a.bcd", K.SmallA, K.Fraction, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"a.bcd", K.SmallA, K.SquareRoot, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"a.bcd", K.SmallA, K.NthRoot, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"a.bcd", K.SmallA, K.BothRoundBrackets, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"a.bcd", K.SmallA, K.Power, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"a.bcd", K.SmallA, K.Subscript, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"bcd.", K.Fraction, K.SmallB, K.SmallC, K.SmallD, K.Right, K.Backspace, K.Decimal),
T(@"bcd.", K.NthRoot, K.SmallB, K.SmallC, K.SmallD, K.Right, K.Backspace, K.Decimal),
T(@"abcd.", K.SmallA, K.Fraction, K.SmallB, K.SmallC, K.SmallD, K.Right, K.Backspace, K.Decimal),
T(@"abcd.", K.SmallA, K.NthRoot, K.SmallB, K.SmallC, K.SmallD, K.Right, K.Backspace, K.Decimal),
T(@"bcd.", K.Fraction, K.Right, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"bcd.", K.NthRoot, K.Right, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"abcd.", K.SmallA, K.Fraction, K.Right, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"abcd.", K.SmallA, K.NthRoot, K.Right, K.SmallB, K.SmallC, K.SmallD, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"bcd.efg", K.Fraction, K.SmallB, K.SmallC, K.SmallD, K.Right, K.SmallE, K.SmallF, K.SmallG, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"bcd.efg", K.NthRoot, K.SmallB, K.SmallC, K.SmallD, K.Right, K.SmallE, K.SmallF, K.SmallG, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"abcd.efg", K.SmallA, K.Fraction, K.SmallB, K.SmallC, K.SmallD, K.Right, K.SmallE, K.SmallF, K.SmallG, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"abcd.efg", K.SmallA, K.NthRoot, K.SmallB, K.SmallC, K.SmallD, K.Right, K.SmallE, K.SmallF, K.SmallG, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@".456", K.Subscript, K.D4, K.D5, K.D6, K.Left, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@".789", K.Power, K.D7, K.D8, K.D9, K.Left, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@".456789", K.Subscript, K.D4, K.D5, K.D6, K.Right, K.Power, K.D7, K.D8, K.D9, K.Left, K.Left, K.Left, K.Left, K.Left, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@".456789", K.Power, K.D7, K.D8, K.D9, K.Right, K.Subscript, K.D4, K.D5, K.D6, K.Left, K.Left, K.Left, K.Left, K.Backspace, K.Decimal),
T(@"\square ^{\square }", K.Power, K.Right, K.Subscript, K.Backspace),
T(@"\square _{\square }", K.Subscript, K.Right, K.Power, K.Backspace),
T(@"X^{\square }", K.X, K.Power, K.Right, K.Subscript, K.Backspace),
T(@"X_{\square }", K.X, K.Subscript, K.Right, K.Power, K.Backspace),
T(@"\square ^Z", K.Power, K.Z, K.Right, K.Subscript, K.Backspace),
T(@"\square _{\square }Z", K.Subscript, K.Right, K.Power, K.Z, K.Left, K.Backspace),
T(@"X^Z", K.X, K.Power, K.Z, K.Right, K.Subscript, K.Backspace),
T(@"X_{\square }Z", K.X, K.Subscript, K.Right, K.Power, K.Z, K.Left, K.Backspace),
T(@"\square ^{\square }Y", K.Power, K.Right, K.Subscript, K.Y, K.Left, K.Backspace),
T(@"\square _Y", K.Subscript, K.Y, K.Right, K.Power, K.Backspace),
T(@"X^{\square }Y", K.X, K.Power, K.Right, K.Subscript, K.Y, K.Left, K.Backspace),
T(@"X_Y", K.X, K.Subscript, K.Y, K.Right, K.Power, K.Backspace),
T(@"\square ^ZY", K.Power, K.Z, K.Right, K.Subscript, K.Y, K.Left, K.Backspace),
T(@"\square _YZ", K.Subscript, K.Y, K.Right, K.Power, K.Z, K.Left, K.Backspace),
T(@"X^ZY", K.X, K.Power, K.Z, K.Right, K.Subscript, K.Y, K.Left, K.Backspace),
T(@"X_YZ", K.X, K.Subscript, K.Y, K.Right, K.Power, K.Z, K.Left, K.Backspace),
T(@"\frac{\square }{3}", K.Slash, K.D3, K.Left, K.Left, K.Backspace, K.Left),
T(@"1_3", K.D1, K.D2, K.Subscript, K.D3, K.Left, K.Left, K.Backspace),
T(@"1_3^2", K.D1, K.D4, K.Subscript, K.D3, K.Left, K.Left, K.Power, K.D2, K.Left, K.Left, K.Left, K.Left, K.Backspace),
Expand All @@ -247,7 +345,6 @@ public void Return(params K[] inputs) =>
T(@"\sqrt[■]{\square }", K.NthRoot, K.SmallA, K.Backspace),
T(@"\sqrt{■}", K.SquareRoot, K.SmallA, K.Backspace),
T(@"\frac{1}{■}", K.Slash, K.D6, K.Backspace),
T(@"■_5", K.Subscript, K.D5, K.Left, K.Left, K.Backspace, K.X, K.Left, K.Left, K.Left, K.Backspace),
T(@"7+1^X", K.D7, K.Plus, K.D1, K.D2, K.Power, K.X, K.Left, K.Left, K.Backspace),
T(@"7.^X", K.D7, K.Decimal, K.D1, K.Power, K.X, K.Left, K.Left, K.Backspace),
T(@"7+■^X", K.D7, K.Plus, K.D1, K.Power, K.X, K.Left, K.Left, K.Backspace),
Expand Down
Loading