-
-
Notifications
You must be signed in to change notification settings - Fork 130
refactor(web): simplify inputSegment spec + related SearchSpace property 🚂 #15141
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
jahorton
wants to merge
4
commits into
refactor/web/search-path-merging
Choose a base branch
from
refactor/web/simplify-input-segments
base: refactor/web/search-path-merging
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
refactor(web): simplify inputSegment spec + related SearchSpace property 🚂 #15141
jahorton
wants to merge
4
commits into
refactor/web/search-path-merging
from
refactor/web/simplify-input-segments
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
User Test ResultsTest specification and instructions
Results TemplateTest Artifacts
|
…plify-input-segments
…plify-input-segments
Build-bot: skip build:web build:android build:ios Test-bot: test
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
epic-autocorrect
has-user-test
refactor
user-test-required
User tests have not been completed
web/predictive-text/
web/
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
These are a few spec changes I wished to do sooner, but the previous code for ContextToken splitting and merging complicated matters and prevented the changes. Now that splitting and merging lie entirely on SearchPath and SearchSpace, these changes can now be made cleanly.
Once we support corrections from tokenizations that don't match the current context state, application of any suggestion not based on the true context's actual tokenization (say, due to fat-fingering a whitespace) will cause the context's "true transform" to become invalidated, with a different one (from the best correction) taking its place. The transform ID field is still valid, but
trueTransformwill not reflect the actual context state - thus, there's little reason to keep it around.Furthermore,
SearchSpaceshould not expose thePathInputProperties.subsetIdfields corresponding to its inputs; it will be possible for one or for more such "subsets" to converge on the same tokenization, and this cannot be reflected well when returningPathInputPropertiesfrom the.inputSegmentsproperty. TheInputSegmentportion itself will be shared by all converging paths, but not thesubsetId.Build-bot: skip release:web release:android release:ios
User Testing
Run all tests via Keyman for Android. Use the keyboard in-app.
TEST_PRED_CHAIN_APPLY: Apply numerous suggestions in sequence and verify that they apply properly.
TEST_PRED_TEXT_SUGGEST_ANDROID: Verify that predictive text produces appropriate suggestions and that they apply properly.
gff_amharic.TEST_CLEAR_CONTEXT: Verify that predictive text throws no errors when clearing the context / deleting all text.
TEST_PRED_LONG_TEXT_REVERSIONS: Verify that predictive text produces appropriate suggestions and that they apply properly.
Test with
sil_euro_latin.Type the following text, in full:
Tap the
breakfastsuggestion.Tap backspace.
Tap the reversion (
"breakf")Verify that the reversion is properly applied and that Android does not signal any errors (via toasts, notifications, or otherwise).
TEST_PERIOD_APPLY_OVERWRITE: Using the
sil_euro_latinkeyboard, check if punctuation typed immediately after applying a suggestion erases the whitespace.testitestingsuggestion.key.testing.is the result, with no appended whitespace.TEST_SPACE_APPLY_OVERWRITE: Using the
sil_euro_latinkeyboard, check if punctuation typed immediately after applying a suggestion erases the whitespace.testitestingsuggestionkey.testingis the result.TEST_PERIOD_APPLICATION: Using the
sil_euro_latinkeyboard, check if punctuation typed with a highlighted suggestion applies it and appears afterward.testiand verify that it is selected / highlighted. (If it isn't, delete its text and retype - tap accuracy may help.).key.testing.is the result, with no appended whitespace..again and verify that it outputs a new..TEST_SPACE_APPLICATION: Using the
sil_euro_latinkeyboard, check if punctuation typed with a highlighted suggestion applies it and appears afterward.testiand verify that it is selected / highlighted. (If it isn't, delete its text and retype - tap accuracy may help.)key.testingis the result, with no appended whitespace.and verify that it outputs a new.TEST_PERIOD_OVERWRITE_REVERSION: Using the
sil_euro_latinkeyboard, check if punctuation typed immediately after applying a suggestion erases the whitespace.testitestingsuggestion.key.testing.is the result, with no appended whitespace..and verify that a proper reversion is displayed:"testi"TEST_PERIOD_APPLICATION_REVERSION: Using the
sil_euro_latinkeyboard, check if punctuation typed immediately after applying a suggestion erases the whitespace.testiand verify that it is selected / highlighted. (If it isn't, delete its text and retype - tap accuracy may help.).key.testing.is the result, with no appended whitespace.., landing attesting, and verify that a proper reversion is displayed:"testi"TEST_PERIOD_APPLICATION_DELAYED_REVERSION: Using the
sil_euro_latinkeyboard, check if punctuation typed immediately after applying a suggestion erases the whitespace.testiand verify that it is selected / highlighted. (If it isn't, delete its text and retype - tap accuracy may help.).key.testing.is the result, with no appended whitespace..again and verify that it outputs a new...and verify that a proper reversion is displayed:"testi"TEST_MULTITAPS: Verify that the
.key onenglish_punct_rotarotates through the desired punctuation marks.Install the keyboard package found at https://jahorton.github.io/english_punct_rota.kmp.
It may be installed via the following QR link as well:
.key four times, rotating through.,,, and?, landing on!.Testing is important. (Include the space mark.)TEST_MULTITAP_OVERWRITE: Using a keyboard with a multitap punctuation rota key, check if punctuation typed immediately after applying a suggestion erases the whitespace, even on repeated taps.
Install the keyboard package found at https://jahorton.github.io/english_punct_rota.kmp.
It may be installed via the following QR link as well:
Type
testiManually apply the
testingsuggestion.Then tap the
.key four times, rotating through.,,, and?, landing on!.Verify that the results are
testing.,testing,,testing?, and the final result istesting!, with no appended whitespace.TEST_MULTITAP_APPLICATION: Using a keyboard with a multitap punctuation rota key, check if punctuation typed with a highlighted suggestion applies it and appears afterward, even on repeated taps.
Install the keyboard package found at https://jahorton.github.io/english_punct_rota.kmp.
It may be installed via the following QR link as well:
Type
testiand verify that it is selected / highlighted. (If it isn't, delete its text and retype - tap accuracy may help.)Then tap the
.key four times, rotating through.,,, and?, landing on!.Verify that the results are
testing.,testing,,testing?, and the final result istesting!, with no appended whitespace.TEST_SUGGESTIONS_ON_BKSP: Using Keyman for Android, verify that reasonable suggestions are displayed for text after using BKSP to reach the end of a previous word.
termTEST_DELAYED_ON_WORD: Using the
sil_euro_latinkeyboard, check if deleting characters up to the end of an applied suggestion's main body displays a reversion.trials.andsuggestion.testi, then tapspaceto automatically apply it. (Restart this test if it is not automatically highlighted somehow.)ab.abso that you end up immediately aftertesting."testi"reversion is displayed.trials and testi.TEST_DELAYED_ON_SPACE: Using the
sil_euro_latinkeyboard, check if deleting characters up to the end of an applied suggestion's main body displays a reversion.trials.andsuggestion.testi, then tapspaceto automatically apply it. (Restart this test if it is not automatically highlighted somehow.)ab.abso that you end up immediately after the whitespace aftertesting."testi"reversion is displayed.trials and testi.TEST_DOUBLE_DELAYED: Using the
sil_euro_latinkeyboard, check if two suggestions can be reverted in rapid succession.that.p, then apply thepointsuggestion.ofsuggestion, giving youthat point of.""suggestion is displayed.""suggestion and verify that the text becomesthat point."p"suggestion is displayed."p"suggestion and verify that the text becomesthat p.TEST_ROBUSTNESS: Spend at least 5 minutes trying to "break" predictive text and/or cause it to work improperly. Report back on any issues discovered.