This directory contains the tools and the data for generating
JavaScript code from the Unipen files. The Unipen data is useful
for testing handwriting recognition input methods. Since the
JavaScript does not have file io, the data must be provided in
JavaScript format.

The build_unipen_data.py is a Python script that scans the directories
for Unipen files, combines them into a data structure and prints
the output as the JavaScript code. The produced JavaScript code
can be imported in the testscript and used for emulating handwritten
characters.

The Unipen data can be collected using the virtual keyboard.
To enable the data collection mode, the virtual keyboard must
be compiled with a special parameters:

INPUT_vkb_handwriting FEATURE_vkb_record_trace_input

The first option enables the handwriting recognition engine and
the second option enables the data collection mode.

In data collection mode, the handwriting input for a character
is saved into a file. To eliminate bad input, the text case of
the handwriting input must match with the current text case of
the handwriting keyboard.

The collected traces are saved into VIRTUAL_KEYBOARD_TRACES folder in
the current users home directory. The file names of the collected
traces are constructed as follows:

<unicode>_<confidence>_<index>.txt

Where the unicode is the Unicode value of the recognized character
in decimal format, the confidence is the confidence value in the
scale from 0 to 100 (with 100 being the highest confidence) and
the index is the number of overlapping files in the directory.

After collecting the desired amount of trace samples, the Unipen
files are copied (manually) into this directory and supplied to the
build_unipen_data.py script. For example:

./build_unipen_data.py alphanumeric > unipen_data.js

The generated JavaScript file, unipen_data.js in this case, contains
all the data combined in the input files. This file can now be used
in the input panel tests as a common character database to emulate
handwriting recognition in test cases. The database can be copied to

tests/auto/inputpanel/data/inputpanel/unipen_data.js

and re-run the tests. It should be noted that the character database
should contain at least the characters that are tested.
