Commit graph

237 commits

Author SHA1 Message Date
Tadashi G. Takaoka
fb5b4c4fc3 Add language agnostic QWERTY subtype
Bug: 6010147
Change-Id: I705e38ac889172ae8b7c2a68e5c688f2ffc28320
2012-03-30 18:20:52 +09:00
Tadashi G. Takaoka
6aaa105a85 Fix coordinates of InputTestsBase.type
Bug: 6225317
Change-Id: I5c9adb3e65e5742680309b4f2d1a9f2b83ce546f
2012-03-28 20:21:26 +09:00
Ken Wakasa
c166697e3f Optimization: Start making use of ProductionFlag.IS_EXPERIMENTAL for ResearchLogger
Move GodMode specific tests to relevant directories as well.

This goes along with I9dc4d469

Change-Id: I4a21c53846b26eede346cb1da13e6abbdf9ec27f
2012-03-27 11:55:23 +09:00
Kurt Partridge
2482e6c386 add tests for ResearchLogger
Bug: 6188932
Change-Id: Icf407f9d145d2b25b70d5d7bc30ee3d64561620c
2012-03-26 17:21:50 +09:00
Jean Chalard
0d708b0cf5 Separate input logic tests in several categories.
The intent is to make things easier to read.

Change-Id: Ida95ac8bd4119a2497d3e2a4d92485a96316962d
2012-03-23 14:22:47 +09:00
Jean Chalard
8592ed408e Split input logic tests to make creating new tests easier
This will allow easier reuse of the complicated set up code
and the various helper methods.

Change-Id: I864eb0da476cbf0fe087ddb1713af80d3c3eb850
2012-03-23 14:15:50 +09:00
Jean Chalard
109728193e Don't rely on spell checker proximity in tests
This fixes the input logic tests that were broken and suppresses
their dependency upon the spell checker proximity. Instead, it
gets the Keyboard instance from Latin IME and uses the actual
coordinates, which results in a test run closer to what actually
happens during typing.

Change-Id: I3a81d249ee7fb3ac6ae6940aa2e8b2421e829e5c
2012-03-22 18:08:23 +09:00
Jean Chalard
6ec1209a33 Fix a bug where quotes and dashes are considered letters
Bug: 6174065
Change-Id: I702760d44ead0eeb60d06360aa3bb03c2ec73325
2012-03-15 18:18:52 +09:00
Jean Chalard
274a0643b1 Give InputLogicTests the ability to change language
Also fix a typo, and increase the time allowed to load the main
dictionary to 2 secs instead of 1.

Bug: 6114326
Change-Id: I5f70b34fc4277c55977b18466253152aa98a2507
2012-03-08 16:39:29 +09:00
Jean Chalard
845b24d9d3 Fix a bug with successive manual picks
Bug: 6121571
Change-Id: Ib16fbef1087da3b7da5539901ec57156f242f089
2012-03-07 17:32:42 +09:00
satok
231ef8fa3e Merge "Integrate the logic to calculate the proximities" 2012-03-05 23:25:29 -08:00
satok
ca7ec2097c Integrate the logic to calculate the proximities
Bug: 4343280

Change-Id: I0f6a7e6912ed4abea07c10d266da4c7ccb0dae76
2012-03-06 15:34:27 +09:00
Jean Chalard
cbad260cf3 Fix a test
To some extent, the test was wrong here.
After space is typed in this case, we wait a small delay before updating
the suggestion strip so that we can display bigram predictions without
introducing delays. The suggestion strip is not displayed until then.

The test was bypassing this by simulating a press on the suggestion
strip, but for LatinIME it was not displayed yet, hence the bug.
The new code waits for the delay, makes sure the suggestion strip is
actually displaying punctuation marks, then press the mark and do
the intended test on space.

Change-Id: I18f82da1bc0a8e584e9b1bac59ff48823d78ec12
2012-03-06 14:00:11 +09:00
Tadashi G. Takaoka
3a1844c33b Merge "Support dividers in MoreKeysKeyboard" 2012-03-02 03:58:13 -08:00
Tadashi G. Takaoka
5ef4fccbb9 Support dividers in MoreKeysKeyboard
Bug: 6080806
Change-Id: Iacd78c6aab6abf948717d34da7489a79c41316d2
2012-03-02 20:52:25 +09:00
Tadashi G. Takaoka
a3abbac47a Merge "Remove obsolete tests" 2012-03-01 21:23:54 -08:00
Tadashi G. Takaoka
8d7cb928d8 Remove obsolete tests
Change-Id: Ibfbe6b39580ae13e4c32fb2ceab7a6c6f3a24ccb
2012-03-02 14:18:08 +09:00
Jean Chalard
f717c5685e Add basic tests for auto-correct indicator.
Bug: 5975557
Change-Id: I39e782f89813b9d585e369e590d6288e696168a2
2012-03-02 11:08:46 +09:00
Tadashi G. Takaoka
42fd1d2d72 Refactor more keys spec handling
Change-Id: Ibd95eff0725724ea35ad58e1d1ec7ec3d02a6e90
2012-03-01 16:07:02 +09:00
Tadashi G. Takaoka
d054aa17da Merge "Reset previous symbols shifted state when auto switch backed" 2012-02-29 08:05:58 -08:00
Tadashi G. Takaoka
4ba2216219 Reset previous symbols shifted state when auto switch backed
Bug: 6072517
Change-Id: I00337b3ed5c85df4627e8f5a02465d406c4d9178
2012-03-01 01:01:09 +09:00
Jean Chalard
d9f6a0ebb7 Add a method to run the handler's messages from the tests
This is really brutal, but after trying many many things I didn't
find a better way. It works with the current implementation of
MessageQueue.
Since this only introduces a utility method it doesn't really do
anything, but the functionality it provides will be essential to
Bug: 5975557

Change-Id: I81c4113a08f9a8d8a88294d7dd3b6c8c483c8b1d
2012-02-29 11:52:33 +09:00
Jean Chalard
bb15f92d4f Add some unit tests.
- Type "tgis", manually pick "thus", press backspace.
  Backspace should revert the manual pick.
  Check "tgis" is the result.
- Type "tgis" followed by a period.
  Period should trigger auto-correct to "this".
  Check "this" is the result.
- Type "tgis" followed by a period, then backspace.
  Period should trigger auto-correct to "this", and backspace should
  revert the auto-correction.
  Check "tgis." is the result.

Change-Id: I7e23c8a26fbdbe23336149a05ff01bc51707422e
2012-02-22 01:35:11 -08:00
Tadashi G. Takaoka
fed72d6038 Merge "Support fixed order more keys" 2012-02-17 01:01:28 -08:00
Tadashi G. Takaoka
aeeed75848 Support fixed order more keys
Change-Id: I979f54e8b54243da4d23cfbe08198d2aa495f870
2012-02-17 00:49:18 -08:00
Tadashi G. Takaoka
beb08b398f Remove unnecessary and harmful KeyboardState.onUpdateShiftState call
This change also cancels double tap and long press timers if other
letter key is pressed after shift key.

Bug: 5693999
Bug: 6017610
Change-Id: I3b5f3debfb8915fa73a93b409a38afadf24132e9
2012-02-16 18:02:17 -08:00
Tadashi G. Takaoka
6213983fa1 Refactor MoreKeysKeyboard.Builder
Change-Id: Ib5f58b1143be60c748b81299ccc3b237d2587846
2012-02-10 18:53:54 +09:00
Tadashi G. Takaoka
614cb02a91 Merge "Rename mini keyboard to more keys keyboard" 2012-02-08 00:04:16 -08:00
Tadashi G. Takaoka
2affaf91a0 Rename mini keyboard to more keys keyboard
Change-Id: Ie4c85e8ca5a1f41a420aae5c1cd9c1cb07e237e5
2012-02-08 16:12:31 +09:00
Jean Chalard
9159b9953d Fix the auto-composer to support supplementary chars
Change-Id: I61ff218ae2ca4eb443a370e581b677755258670a
2012-02-08 15:45:51 +09:00
Jean Chalard
fd6a52c8d5 Merge "Add some unit tests for punctuation and special keys" 2012-02-07 17:36:39 -08:00
Tadashi G. Takaoka
c217dc9237 Convert one letter Key.outputText to Key.code
This change also uses Key.code instead of Key.outputText for the
variety of parentheses keys taht introduced by I85998f17.

Bug: 5975484
Change-Id: I86879c9942d264edc71e5893325a2f582763d12f
2012-02-07 22:34:20 +09:00
Jean Chalard
de60d87a60 Add some unit tests for punctuation and special keys
Bug: 5962053
Change-Id: I7dd68767be6e724675428910fa2c00290f76e869
2012-02-07 20:34:56 +09:00
Jean Chalard
816a8a0fd8 Fix a race condition that makes tests unstable
Change-Id: Ic19d380eb64855884bc6ded8547c200dd772ffe9
2012-02-07 19:22:37 +09:00
Tadashi G. Takaoka
f6cf387edc Merge "Recursively resolve @string/resource reference in key key spec parsing" 2012-02-03 03:20:37 -08:00
Tadashi G. Takaoka
aca8870128 Recursively resolve @string/resource reference in key key spec parsing
Change-Id: I9d172605e90e828e00f7c4c8d49548498aa3b50d
2012-02-03 20:03:23 +09:00
Jean Chalard
9f17de5b4d Merge "Stop inserting a space after a manually picked word." 2012-02-03 02:09:05 -08:00
Tadashi G. Takaoka
9f491e34ac Merge "Filter out empty entry from more keys CSV" 2012-02-03 01:54:49 -08:00
Tadashi G. Takaoka
24cd2617f5 Filter out empty entry from more keys CSV
Change-Id: I9a26aaa58f0f502b3bfef9de422370d2b0add8d8
2012-02-03 18:48:01 +09:00
Jean Chalard
fb684cebe8 Stop inserting a space after a manually picked word.
Bug: 4994861
Change-Id: I6ae256a94dbaddea4304304779d17025620c5025
2012-02-03 18:45:44 +09:00
Tadashi G. Takaoka
0de2fbd7b6 Fix KeySpecParserTests to read correct icon id
Change-Id: Ic002e7fbe84a7001874ebd59e6af8ba695d173de
2012-02-03 18:40:38 +09:00
Tadashi G. Takaoka
909b2940db Merge "Get rid of Key.setIcon(Drawable)" 2012-02-02 21:51:51 -08:00
Tadashi G. Takaoka
e7948a8692 Get rid of Key.setIcon(Drawable)
Change-Id: If6ebbdefcbfd0cc14c72858f9bb44861e8abe079
2012-02-03 14:38:17 +09:00
Jean Chalard
825e2bbd91 Fix a bug when deleting the last char
And unit test

Change-Id: Ic4fc3626f8b86e10156d770d41cd6deab5d31f39
2012-02-03 13:03:54 +09:00
Jean Chalard
9242a2bcf8 Fix string iterations in a couple places.
Seems I didn't get how to iterate on a String correctly >.>
Talk about a big bug. Anyway, I think it's working now.

Bug: 5955228
Change-Id: I988c900cf2a16c44b9505cfd4f77c7cda7e592f0
2012-02-03 11:15:46 +09:00
Tadashi G. Takaoka
5852a2594f Parse escaped sequence strictly in CSV parser
This change alters the CSV parser behavior. The parser only resolves
  * String resource reference. ["@string/res" -> "<content_of_res>"]
  * Other occurrence of escape sequence will be intact. ["\x" -> "\x"]

Before this change, escape sequence in moreKeys string is parsed three
times. At first in parsing string resource, next in CSV parser, and at
last in KeySpecParser. So that representing single escape character
itself is a bit annoying, "\\\\\\\\".

Now we can represent single escape character itself in string resource by "\\\\".

Change-Id: Ib978e17b779cc82585eed8241ac3857508b14bc7
2012-02-02 20:19:26 +09:00
Jean Chalard
a456c755ee Merge "Add unit tests in prevision of magic space removal" 2012-02-02 01:35:36 -08:00
Jean Chalard
cca2183f5a Add unit tests in prevision of magic space removal
Bug: 4994861
Change-Id: I114a1117cf19aa6e514ac7342f733175dc5d5df1
2012-02-02 18:21:10 +09:00
Tadashi G. Takaoka
0086861d5a Move CSV parser to KeySpecParser
Change-Id: I424fb47bc70e9b6aaa5a16ae9b2500d23da75c26
2012-02-02 16:10:14 +09:00
Tadashi G. Takaoka
e01d272603 Make KeySpecParser and CSV parser code point aware
This change also renames MoreKeySpecParser to KeySpecParser

Change-Id: I35733cdbb344f16b57ffa2cfe79055c089b4e409
2012-02-02 15:51:40 +09:00
Tadashi G. Takaoka
ff858c7ff5 Use MoreKeySpecParser to parse puctuations strip resources
This change also
  * Doesn't use Key.getRtlParenthesisCode to get correct parentheses
    code in RTL context. Intead uses the outputText feature of
    moreKeys specification.
  * Move CVS string parser from KeyStyles to Utils.

Bug: 5948247
Change-Id: I45752c7d01b4f7d3f3da900b110a2185b336a1f0
2012-02-01 19:33:26 +09:00
Tadashi G. Takaoka
a5c96f376a Move long press shift handling from PointerTracker to KeyboardState
This change also
  * Rename phone shift keyboard to phone symbols keyboard.
    Use CODE_SWITCH_ALPHA_SYMBOL code to switch between phone and phone symbols keyboard.
  * Remove phone symbols keyboard from tablet.
  * Introduces enableLongPress flag of Key.keyActionFlags attribute.
  * Remove clumsy long press code from PointerTracker.
  * Remove CODE_CAPSLOCK handling from LatinIME.
  * Make KeyboardSwitcher to invoke haptic and audio feedback.

Change-Id: I00e1f697a10ab5112aec75e36853b96246ff5054
2012-02-01 19:04:21 +09:00
Tadashi G. Takaoka
3feb99fa6c Merge "Save/restore alphabet shift locked state while rotating even in symbols mode" 2012-01-31 02:26:41 -08:00
Tadashi G. Takaoka
49bd49c8fb Save/restore alphabet shift locked state while rotating even in symbols mode
Bug: 5730212
Change-Id: Id2342dacd149d6385d61001f880ebcd1883cf0b4
2012-01-31 19:11:39 +09:00
Tadashi G. Takaoka
88e079ae6b Cleanup redundant methods of KeyboardSet
Change-Id: I69fa1b5661695d0323222c2969679f4792b6ef0d
2012-01-31 18:27:37 +09:00
Tadashi G. Takaoka
0ed2d3a449 Fix double tap shift key enable/disable shift locked mode
Bug: 5942452
Change-Id: I2c7b1605bceac2b2f929cd4d97c417ef15c6f754
2012-01-31 18:06:54 +09:00
Tadashi G. Takaoka
15c99e9f1a Support addtionalMoreKeys
This change also removes
  * Unused more_keys_for_q, w, and p.

Change-Id: Idb99e5f6d8c2ad2d28437f42b35b21c282cd181f
2012-01-30 17:04:25 +09:00
Tadashi G. Takaoka
f057b25cdd Save and restore previous mode keyboard state at KeyboardState.toggleAlphabetAndSymbols
Bug: 5881820
Change-Id: I9b1718b16c60f27c05ba727724c0189aa5284334
2012-01-27 16:03:51 +09:00
Tadashi G. Takaoka
757f8d96ee Add KeyboardState.SwitchActions.setAlphabetShiftLockShifted
Change-Id: I6c49d8eb0a8272840ff03e0940d88a31c3d20bd9
2012-01-26 18:25:48 +09:00
Jean Chalard
a02e703289 Add a missing brace
Change-Id: Ia51da6506d78a295b8b70a241208fb81602cf0ea
2012-01-26 16:08:53 +09:00
Jean Chalard
9184d8b235 Add a test for moving cursor then backspace
This is a test for the case in
Bug: 5851148

Change-Id: I58ee459d85f463b445a28137bdc6c40bc3067ff5
2012-01-26 15:39:29 +09:00
Jean Chalard
41df8a98fd Add a test case for backspace at start of line
Tests the behavior from
Bug: 5784542

Change-Id: I78ec9d77c5dd1e3ea8eff530f9d7d284a1c094d4
2012-01-26 15:36:27 +09:00
Jean Chalard
60e7718462 Add tests for double space behavior
Bug: 5875776
Change-Id: Icc28b6c5c0132a3afc8d603841c9e321f720b7c9
2012-01-26 10:10:38 +09:00
Jean Chalard
d9702a375a Merge "Add a test for auto-correction." 2012-01-25 02:33:39 -08:00
Jean Chalard
0bfe359ee4 Add a test for auto-correction.
Fix two related subtle bugs:
- Stop singling out fat-finger-only corrections for rejection
  when touch coordinates are not available.
- Remove a racy check that would happen only in debug mode

Change-Id: Ic904f9b27c091ca6b369052c4e65a630bff81257
2012-01-25 19:29:40 +09:00
Tadashi G. Takaoka
38d6a18821 Use String instaed of CharSequence in Key class
Change-Id: Ia76a41daede402ed2a509e110ae97d6bb660c760
2012-01-25 17:04:00 +09:00
Jean Chalard
20f437cc49 Merge "Test that delete actually removes any selected text." 2012-01-24 01:19:26 -08:00
Jean Chalard
1e4684ad24 Test that delete actually removes any selected text.
Bug: 5699301
Change-Id: I09a967eb03690251e8bd69503285c982d6958a7d
2012-01-24 18:17:09 +09:00
Tadashi G. Takaoka
83d81f2e34 Fix sliding shift input in caps lock mode
Bug: 5881820
Change-Id: I4cbe3eda83c09edc9da8efbdff7d3359c1e140d5
2012-01-24 17:58:23 +09:00
Tadashi G. Takaoka
747ed9e99a For get the symbols shifted state when switch back from alphabet layout
Bug: 5881820
Change-Id: Ic478264e1cd366affc34fbf4cd59f1b6e7efede7
2012-01-24 17:28:00 +09:00
Tadashi G. Takaoka
0f05076990 Get rid of setShifted/setShiftLocked from SwitchActions
Change-Id: Ib54b0575be190556690ef2dfb14077842745f038
2012-01-24 12:27:09 +09:00
Tadashi G. Takaoka
9507b4a086 Merge "Add more sliding input unit test" 2012-01-23 19:00:56 -08:00
Tadashi G. Takaoka
373f452584 Add more sliding input unit test
Bug: 5881820
Change-Id: I9249d8b702ba9afbd1c7d0a4889ac5b2e929f85d
2012-01-24 11:49:00 +09:00
Tadashi G. Takaoka
3611068bc6 Move string resources for unit test to donottranslate.xml
Bug: 5904617
Change-Id: I2eb677a4dd9686f87fec9f11051775a5c9c670a1
2012-01-24 11:29:16 +09:00
Tadashi G. Takaoka
530f5d7e15 Merge "Support @icon/icon_name for more keys specification" 2012-01-20 03:20:40 -08:00
Tadashi G. Takaoka
b009a24b83 Support @icon/icon_name for more keys specification
Change-Id: I8842e5ce77f9d27a0969df947de292c1830e36b7
2012-01-20 20:09:02 +09:00
Jean Chalard
482588c5a2 Merge "Enable DEBUG mode for logic tests." 2012-01-20 02:27:34 -08:00
Jean Chalard
bc10e4145e Enable DEBUG mode for logic tests.
This enables a wealth of useful checks. We want to run unit
tests with debug mode on.

Change-Id: Ic45caaf43a889287f5aec203e7d1ba63136fc58e
2012-01-20 19:23:34 +09:00
Tadashi G. Takaoka
e54a4005d5 Support @string reference in moreKeys attribute
Change-Id: If0056d0601149d2ddd0e231a81e7b2409b37fc06
2012-01-20 18:46:33 +09:00
Tadashi G. Takaoka
3eede315dc Merge "Move MoreKeySpecParser.getResourceId to Utils" 2012-01-20 00:01:29 -08:00
Tadashi G. Takaoka
86641ef6e8 Merge "Change more key specification type to String from CharSequence" 2012-01-20 00:01:24 -08:00
Tadashi G. Takaoka
0718590486 Move MoreKeySpecParser.getResourceId to Utils
Change-Id: I0640dbe76a8ff2dc45b504eca631942811571736
2012-01-20 16:28:18 +09:00
Tadashi G. Takaoka
bd7b160cfb Change more key specification type to String from CharSequence
Change-Id: I5e910f8225a248fc6403771836dec4c0b7294caa
2012-01-20 16:27:32 +09:00
Jean Chalard
83c72d1dae Add the first tests for the input login in LatinIME class
Change-Id: Ifcf9ab55ee01bf7c6c6829e699246e5654975456
2012-01-20 13:00:40 +09:00
Tadashi G. Takaoka
f36f90a173 Fix KeyboardState switching back from alphabet-chording input correctly
Bug: 5881820
Change-Id: I108bbc25baa331cc87f00955b48188b3557d10dd
2012-01-19 18:53:38 +09:00
Tadashi G. Takaoka
d26d63b35d Fix KeyboardState to pass KeyboardStateMultiTouchTests
Change-Id: If2b9ee7cf3fad7633d64b98758f802792d66f7a8
2012-01-19 18:48:02 +09:00
Tadashi G. Takaoka
01d9fc966a Cleanup KeyboardState a bit
Rename KeyboardShiftState variable and reorder some statements.

Change-Id: I7e8842836f35876f8697f9906343f7d4a1f9db4f
2012-01-19 18:42:11 +09:00
Tadashi G. Takaoka
23bacdb6a5 Fix MoreKeySpecParser to be able to handle outputText correctly
The issue was introduced by Id2320f4d.

Bug: 5887936
Change-Id: Ifec3aefb5b168f790de696ece104b84cdab46539
2012-01-19 12:51:27 +09:00
Tadashi G. Takaoka
06bc1db017 Add more multitouch tests
Change-Id: I424a4b608fec084cb787003ef4417ccf273366ae
2012-01-18 19:35:01 +09:00
Tadashi G. Takaoka
60c4594ee6 Get rid of hasDistinctMultitouch reference from KeyboardState
Change-Id: I0a783a425302fbc381d056f5b0d757c27f2a9f14
2012-01-18 18:11:46 +09:00
Tadashi G. Takaoka
64e01baade Add KeyboardStateTestsBase and helper methods
Change-Id: I17d908b60bbf784dae7add8355f699a63f7eb90a
2012-01-18 16:46:38 +09:00
Tadashi G. Takaoka
5731b939c7 Remove KeyboardSwicther.toggleCapslock
Change-Id: Id613c06e2df770659095d78d42637aed063d0c70
2012-01-17 19:26:24 +09:00
Tadashi G. Takaoka
2a88440419 Rename KeyboardActionListener methods
* Rename KeyboardActionListener.onPress to onPressKey
* Rename KeyboardActionListener.onRelease to onReleaseKey
* Merge KeyboardSwicther.onPressShift, onPressSymbol, and onPressOtherKey to onPressKey.
* Merge KeyboardSwitcher.onReleaseShift and onReleaseSymbol to onReleaseKey.
* Merge KeyboardState.onPressShift, onPressSymbol, and onPressOtherKey to onPressKey.
* Merge KeyboardState.onReleaseShift and onReleaseSymbol to onReleaseKey.

Change-Id: Icf28fd18e238c5e534c292893e4ab5b6b98e72f8
2012-01-17 19:07:20 +09:00
Tadashi G. Takaoka
87e025da11 Remove toggleShift and toggleAlphabetAndSymbols from KeyboardSwitcher
Change-Id: I9bb8f78b0a766cd7937d5cbe1c1e5e35898b2997
2012-01-17 16:49:33 +09:00
Tadashi G. Takaoka
1602540764 Remove redundant permission tag
Change-Id: I717e2fc9dca13096d76c159f8c3bebff065c6ca1
2012-01-16 20:17:18 +09:00
Tadashi G. Takaoka
4910c9621c Merge "KeyboardState unit tests for non-distinct multitouch device" 2012-01-16 02:31:37 -08:00
Tadashi G. Takaoka
e47bd3f4fb KeyboardState unit tests for non-distinct multitouch device
Bug: 5708602
Change-Id: Id85db2f8b7b427ba62205f5aaad481a3d33e65fc
2012-01-16 19:14:18 +09:00
Tadashi G. Takaoka
6d5c9c9edc Add more KeyboardState unit test cases
Bug: 5708602
Change-Id: Ib9d2b7a2878f78adecc857fd569fba8965cf4a03
2012-01-16 17:19:54 +09:00
Tadashi G. Takaoka
8ece45bb32 Add auto caps function simulation to MockKeyboardSwitcher
Change-Id: I049c224994a37121de031b9fd61edb52eb912e20
2012-01-16 16:30:50 +09:00
Tadashi G. Takaoka
549571cf5c Make MockKeyboardSwitcher top level class
Change-Id: I52c1bc237c20b8bd49fca2431b83843a6e2af10b
2012-01-16 15:49:24 +09:00