Commit graph

22 commits

Author SHA1 Message Date
Jean Chalard
001884a1ee Clean up tests and increase speed
Conservatively reduce the number of unigrams to test from 1000
to 100.

Bug: 8583091
Change-Id: I48621ec44ff5f0590640d7c6b174ab5a6d267aaf
2013-04-15 14:25:32 +09:00
Jean Chalard
c2653d0b5c Fix a typo
Change-Id: I27b925be030e9e6ee8ae49dc13f39accec996d7e
2013-04-15 12:57:27 +09:00
Jean Chalard
c2e9c511cb Fix Binary dict tests
There are two problems here. The first one is the tests would send
an invalid unicode character. Although we could want dicttool to
handle this more gracefully, it's fine for now.

The second problem is much more serious. If a node has more than
128 children, then the java code will crash trying to read the
dictionary back because of a bug that this change fixes. In
theory, it's possible that happens when we try to load the user
history dictionary back from the disk - native code is not affected
so there is no other point that may cause a problem.
In the practice, that means you'd need to have 129 words with a
common prefix (including empty string) but all different after
this. It's almost impossible with Google Keyboard since there are
only so many keys on the keyboard that you can make a word out
of, and then again you'd have to do it repeatedly until it
actually enters the user history dictionary, wait for it to get
saved on the disk.
The bad news is, if you manage to get this far, the keyboard will
crash every time and won't be able to get up until you clear
data for the package.
The good news is, the dictionary itself is not corrupted and only
the reading code is wrong. So updating to a newer version would
actually even recover from this situation.

All in all, considering how almost-impossible this is to trigger,
I don't think even a single user actually did hit this bug.

Bug: 8583091
Change-Id: Iabb2a7f47cbd9ed3193d2a3487318d280753e071
2013-04-15 12:48:16 +09:00
Jean Chalard
a411595b16 Fix two nasty bugs with surrogate pairs.
The important bug is in findWordInTree. The problem, which is
not obvious, is that we were calling codePointAt() with the
code point index in the string, instead of the char index.
The other bug this change fixes was harmless in the practice,
because it's in the iteration which is only used for debug and
pretty printing purposes. It's very similar in that it would
substract a length in code point to a length in chars and
truncate a StringBuilder at that length, so it would fail in a
quite similar manner. This changes the meaning of the "length"
attribute in Position, but it's clearer this way anyway.

Bug: 8450145
Change-Id: If396f883a9e6449de39351553ba83f5be5bd30f0
2013-04-01 17:06:19 +09:00
Jean Chalard
1c5b2a41ec Cleanups
Follow-up to Idc6f419a

Change-Id: I4aae8f4e19f27a0a309879dc19af6e40906d58c5
2013-02-11 21:14:56 -08:00
Jean Chalard
68ed7aa990 Fix a test
The test is wrong - it checks a struct that contains a string
instead of checking the string itself.

Bug: 8149360
Change-Id: Ifb93d61f25a64a64e1c1e689de792f27994487b6
2013-02-06 15:27:21 -08:00
Tadashi G. Takaoka
b4598f7d05 Add unit tests tags
Bug: 8131968
Change-Id: Ibca5a0d63a492134b8af401a62ca3a5748e003cf
2013-02-04 17:21:30 -08:00
Jean Chalard
1ec8299389 Fix the build (again)
Change-Id: Idb7addede891a5c672d7fc09ddfe4d2585f8d647
2012-10-23 19:34:37 +09:00
Yuichiro Hanada
6def28d1da Make unit tests create temporary files in the cache directory.
Change-Id: I90791b364b441bc4e8e221d9e668372d15591719
2012-10-05 15:17:13 +09:00
Yuichiro Hanada
d2579c4832 fix writeCharGroup.
Change-Id: Ib841afaba0a20c3b300eb7d3e9133243f9f3ae58
2012-10-05 14:54:17 +09:00
Yuichiro Hanada
3c6d9fe148 Add insertWord.
bug: 6669677

Change-Id: Ide55a4931071de9cd42c1cddae63ddd531d2feba
2012-10-04 17:19:47 +09:00
Yuichiro Hanada
82d9deaaf2 Combine mHasParentAddress with mHasLinkedListNode into mSupportsDynamicUpdate.
bug: 6669677

Change-Id: I82799af199358420f09ac34fc005091e202c5d3b
2012-09-24 13:17:44 +09:00
Yuichiro Hanada
66597f5e5f Add deleteWord.
bug: 6669677

Change-Id: I1a5b90ee05e5cffd74a5c140384a3e37c79e7e70
2012-09-21 12:40:07 +09:00
Yuichiro Hanada
d36245fad2 Add getTerminalPosition.
Change-Id: If04d779db23b1aea2cc12e5e9b8cecfcb35a5737
2012-09-20 18:02:16 +09:00
Yuichiro Hanada
65feee12e5 Make BinaryDictIOUtils.
Change-Id: I45830235ee738233e8eb2bd91d659705b698f58c
2012-09-19 15:37:37 +09:00
Yuichiro Hanada
bf45dc4860 Make writePlacedNode write the linked-list node.
Change-Id: I60feda815ea08cf73300fccca1ae12b97550f116
2012-09-18 21:20:07 +09:00
Yuichiro Hanada
7e35841053 Add tests for BinaryDictInputOutput.
Change-Id: I2ca66fd9a3568d5b6ece79d954095383d23a0a9f
2012-09-13 18:06:45 +09:00
Yuichiro Hanada
1a347723c5 Move FormatOptions and FileHeader to FormatSpec.
Change-Id: I232e35598635113bf2c81825669c744aadc79efe
2012-09-13 16:35:41 +09:00
Yuichiro Hanada
be5db53a09 Add tests for readDictionaryBinary with byte array.
Change-Id: I2c2815e9d4867687fb3f5b0c661e6162b88c0a0c
2012-09-06 20:35:33 +09:00
Yuichiro Hanada
13b85c4167 Refactor BinaryDictIOTests.
Change-Id: I6eef88ab436f478a9255cc20ea59a24cd472807e
2012-09-06 18:06:14 +09:00
Yuichiro Hanada
6e422af881 Check shortcuts in checkDictionary.
Change-Id: I150913833e586bf7d3f0b9b2e796a61f89fa4f83
2012-09-06 16:32:54 +09:00
Yuichiro Hanada
2a2b5edc21 Change BinaryDictIOTests's package.
Change-Id: Ie9df2f7767cd925051c5e1fdcc325cc3359bca20
2012-09-05 18:23:53 +09:00