diff --git a/developer/src/kmc-convert/test/data/Test.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test copy.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test copy.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test.xkb b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test.xkb
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test.keylayout
diff --git a/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test.xkb b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test.xkb
new file mode 100644
index 0000000000..76fd91b4db
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test.xkb
@@ -0,0 +1,596 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/Test_C0.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C0.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_C0.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C0.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_C0_C1_C2_C3.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C0_C1_C2_C3.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_C0_C1_C2_C3.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C0_C1_C2_C3.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_C1.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C1.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_C1.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C1.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_C2.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C2.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_C2.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C2.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_C2_several.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C2_several.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_C2_several.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C2_several.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_C3.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C3.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_C3.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C3.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_C3_several.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C3_several.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_C3_several.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_C3_several.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_ExtraWarning.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_ExtraWarning.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_ExtraWarning.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_ExtraWarning.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_ambiguous_keys.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_ambiguous_keys.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_ambiguous_keys.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_ambiguous_keys.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_characters.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_characters.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_characters.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_characters.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_differentAmountOfKeysInBehaviours.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_differentAmountOfKeysInBehaviours.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_differentAmountOfKeysInBehaviours.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_differentAmountOfKeysInBehaviours.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_differentEncodings.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_differentEncodings.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_differentEncodings.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_differentEncodings.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_duplicate_keys.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_duplicate_keys.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_duplicate_keys.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_duplicate_keys.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_duplicate_missing_keycode.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_duplicate_missing_keycode.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_duplicate_missing_keycode.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_duplicate_missing_keycode.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_duplicate_missing_keys.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_duplicate_missing_keys.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_duplicate_missing_keys.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_duplicate_missing_keys.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_maxKeyCode.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_maxKeyCode.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_maxKeyCode.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_maxKeyCode.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_messages.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_messages.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_messages.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_messages.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_messages_controlCharacter.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_messages_controlCharacter.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_messages_controlCharacter.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_messages_controlCharacter.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_messages_superior_C2.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_messages_superior_C2.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_messages_superior_C2.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_messages_superior_C2.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_messages_superior_C3.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_messages_superior_C3.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_messages_superior_C3.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_messages_superior_C3.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_modifier.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_modifier.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_modifier.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_modifier.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_modifierNoCaps.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_modifierNoCaps.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_modifierNoCaps.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_modifierNoCaps.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_moreKeyMapThanKeyMapselectAndJisERROR.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_moreKeyMapThanKeyMapselectAndJisERROR.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_moreKeyMapThanKeyMapselectAndJisERROR.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_moreKeyMapThanKeyMapselectAndJisERROR.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_moreKeyMapThanKeyMapselectERROR.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_moreKeyMapThanKeyMapselectERROR.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_moreKeyMapThanKeyMapselectERROR.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_moreKeyMapThanKeyMapselectERROR.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_moreKeymapSelectThanKeymapERROR.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_moreKeymapSelectThanKeymapERROR.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_moreKeymapSelectThanKeymapERROR.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_moreKeymapSelectThanKeymapERROR.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_nr_elements.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_nr_elements.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_nr_elements.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_nr_elements.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_onlyOneKeymap.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_onlyOneKeymap.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_onlyOneKeymap.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_onlyOneKeymap.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_undefinedAction.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_undefinedAction.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_undefinedAction.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_undefinedAction.keylayout
diff --git a/developer/src/kmc-convert/test/data/Test_unsupportedCharacters.keylayout b/developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_unsupportedCharacters.keylayout
similarity index 100%
rename from developer/src/kmc-convert/test/data/Test_unsupportedCharacters.keylayout
rename to developer/src/kmc-convert/test/data/tests-keylayout-kmn/Test_unsupportedCharacters.keylayout
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test copy.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test copy.keylayout
new file mode 100644
index 0000000000..76fd91b4db
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test copy.keylayout
@@ -0,0 +1,596 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test.keylayout
new file mode 100644
index 0000000000..76fd91b4db
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test.keylayout
@@ -0,0 +1,596 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test.xkb b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test.xkb
new file mode 100644
index 0000000000..76fd91b4db
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test.xkb
@@ -0,0 +1,596 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C0.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C0.keylayout
new file mode 100644
index 0000000000..d8c49ea62a
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C0.keylayout
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C0_C1_C2_C3.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C0_C1_C2_C3.keylayout
new file mode 100644
index 0000000000..f1f3ebab1e
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C0_C1_C2_C3.keylayout
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C1.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C1.keylayout
new file mode 100644
index 0000000000..e785e58ca1
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C1.keylayout
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C2.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C2.keylayout
new file mode 100644
index 0000000000..aa6b60997b
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C2.keylayout
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C2_several.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C2_several.keylayout
new file mode 100644
index 0000000000..d51369c934
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C2_several.keylayout
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C3.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C3.keylayout
new file mode 100644
index 0000000000..6275a230bb
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C3.keylayout
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C3_several.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C3_several.keylayout
new file mode 100644
index 0000000000..7fff380f2c
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_C3_several.keylayout
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_ExtraWarning.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_ExtraWarning.keylayout
new file mode 100644
index 0000000000..0d36b2a5fe
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_ExtraWarning.keylayout
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_ambiguous_keys.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_ambiguous_keys.keylayout
new file mode 100644
index 0000000000..97778e876e
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_ambiguous_keys.keylayout
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_characters.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_characters.keylayout
new file mode 100644
index 0000000000..2aae8f1bb4
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_characters.keylayout
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_differentAmountOfKeysInBehaviours.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_differentAmountOfKeysInBehaviours.keylayout
new file mode 100644
index 0000000000..4b770866cd
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_differentAmountOfKeysInBehaviours.keylayout
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_differentEncodings.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_differentEncodings.keylayout
new file mode 100644
index 0000000000..c526f8c2af
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_differentEncodings.keylayout
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_duplicate_keys.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_duplicate_keys.keylayout
new file mode 100644
index 0000000000..a5cb09069b
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_duplicate_keys.keylayout
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_duplicate_missing_keycode.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_duplicate_missing_keycode.keylayout
new file mode 100644
index 0000000000..39da3300f4
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_duplicate_missing_keycode.keylayout
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_duplicate_missing_keys.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_duplicate_missing_keys.keylayout
new file mode 100644
index 0000000000..b367056143
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_duplicate_missing_keys.keylayout
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_maxKeyCode.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_maxKeyCode.keylayout
new file mode 100644
index 0000000000..a5f9e178b9
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_maxKeyCode.keylayout
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_messages.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_messages.keylayout
new file mode 100644
index 0000000000..5d8d1b8682
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_messages.keylayout
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_messages_controlCharacter.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_messages_controlCharacter.keylayout
new file mode 100644
index 0000000000..f97abb984d
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_messages_controlCharacter.keylayout
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_messages_superior_C2.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_messages_superior_C2.keylayout
new file mode 100644
index 0000000000..3416bb5e8f
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_messages_superior_C2.keylayout
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_messages_superior_C3.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_messages_superior_C3.keylayout
new file mode 100644
index 0000000000..f95afe40db
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_messages_superior_C3.keylayout
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_modifier.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_modifier.keylayout
new file mode 100644
index 0000000000..67ccf4db63
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_modifier.keylayout
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_modifierNoCaps.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_modifierNoCaps.keylayout
new file mode 100644
index 0000000000..9656413d7e
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_modifierNoCaps.keylayout
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_moreKeyMapThanKeyMapselectAndJisERROR.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_moreKeyMapThanKeyMapselectAndJisERROR.keylayout
new file mode 100644
index 0000000000..13be153d75
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_moreKeyMapThanKeyMapselectAndJisERROR.keylayout
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_moreKeyMapThanKeyMapselectERROR.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_moreKeyMapThanKeyMapselectERROR.keylayout
new file mode 100644
index 0000000000..3bd9b5ba49
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_moreKeyMapThanKeyMapselectERROR.keylayout
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_moreKeymapSelectThanKeymapERROR.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_moreKeymapSelectThanKeymapERROR.keylayout
new file mode 100644
index 0000000000..25d178237c
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_moreKeymapSelectThanKeymapERROR.keylayout
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_nr_elements.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_nr_elements.keylayout
new file mode 100644
index 0000000000..7a32f4b3c2
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_nr_elements.keylayout
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_onlyOneKeymap.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_onlyOneKeymap.keylayout
new file mode 100644
index 0000000000..8f17399457
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_onlyOneKeymap.keylayout
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_undefinedAction.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_undefinedAction.keylayout
new file mode 100644
index 0000000000..4e6f0ce802
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_undefinedAction.keylayout
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_unsupportedCharacters.keylayout b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_unsupportedCharacters.keylayout
new file mode 100644
index 0000000000..d393b332ee
--- /dev/null
+++ b/developer/src/kmc-convert/test/data/tests-xkb-kmn/Test_unsupportedCharacters.keylayout
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/developer/src/kmc-convert/test/data/keylayout.dtd b/developer/src/kmc-convert/test/data/tests-xkb-kmn/keylayout.dtd
similarity index 100%
rename from developer/src/kmc-convert/test/data/keylayout.dtd
rename to developer/src/kmc-convert/test/data/tests-xkb-kmn/keylayout.dtd
diff --git a/developer/src/kmc-convert/test/keylayout-to-kmn-converter.tests.ts b/developer/src/kmc-convert/test/keylayout-to-kmn-converter.tests.ts
index a7010ef1e7..f8e7173bc0 100644
--- a/developer/src/kmc-convert/test/keylayout-to-kmn-converter.tests.ts
+++ b/developer/src/kmc-convert/test/keylayout-to-kmn-converter.tests.ts
@@ -23,29 +23,29 @@ describe('KeylayoutToKmnConverter', function () {
describe('RunSpecialTestFiles', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
[
- [makePathToFixture('../data/Test_C0.keylayout')],
- [makePathToFixture('../data/Test_C1.keylayout')],
- [makePathToFixture('../data/Test_C2.keylayout')],
- [makePathToFixture('../data/Test_C2_several.keylayout')],
- [makePathToFixture('../data/Test_C3.keylayout')],
- [makePathToFixture('../data/Test_C3_several.keylayout')],
- [makePathToFixture('../data/Test_C0_C1_C2_C3.keylayout')],
- [makePathToFixture('../data/Test_maxKeyCode.keylayout')],
- [makePathToFixture('../data/Test_messages.keylayout')],
- [makePathToFixture('../data/Test_messages_controlCharacter.keylayout')],
- [makePathToFixture('../data/Test_messages_superior_C2.keylayout')],
- [makePathToFixture('../data/Test_messages_superior_C3.keylayout')],
- [makePathToFixture('../data/Test_duplicate_missing_keycode.keylayout')],
- [makePathToFixture('../data/Test_modifier.keylayout')],
- [makePathToFixture('../data/Test_modifierNoCaps.keylayout')],
- [makePathToFixture('../data/Test_differentAmountOfKeysInBehaviours.keylayout')],
- [makePathToFixture('../data/Test_duplicate_missing_keys.keylayout')],
- [makePathToFixture('../data/Test_duplicate_keys.keylayout')],
- [makePathToFixture('../data/Test_ambiguous_keys.keylayout')],
- [makePathToFixture('../data/Test_nr_elements.keylayout')],
- [makePathToFixture('../data/Test.keylayout')],
- [makePathToFixture('../data/Test_differentEncodings.keylayout')],
- [makePathToFixture('../data/Test_ExtraWarning.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_C0.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_C1.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_C2.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_C2_several.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_C3.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_C3_several.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_C0_C1_C2_C3.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_maxKeyCode.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_messages.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_messages_controlCharacter.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_messages_superior_C2.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_messages_superior_C3.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_duplicate_missing_keycode.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_modifier.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_modifierNoCaps.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_differentAmountOfKeysInBehaviours.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_duplicate_missing_keys.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_duplicate_keys.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_ambiguous_keys.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_nr_elements.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_differentEncodings.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_ExtraWarning.keylayout')],
].forEach(function (files) {
it(files + " should give no errors ", async function () {
sut.run(files[0]);
@@ -57,17 +57,17 @@ describe('KeylayoutToKmnConverter', function () {
describe('RunTestFiles resulting in errors ', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
[
- [makePathToFixture('../data/Test_moreKeyMapThanKeyMapselectERROR.keylayout')],
- [makePathToFixture('../data/Test_moreKeyMapThanKeyMapselectAndJisERROR.keylayout')],
- [makePathToFixture('../data/Test_moreKeyMapThanKeyMapselectERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingkeyERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingkeyMapERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingLayoutsERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingmodifierMapERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingkeyMapSetERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingActionsERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingTerminatorsERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingAllERROR.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_moreKeyMapThanKeyMapselectERROR.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_moreKeyMapThanKeyMapselectAndJisERROR.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_moreKeyMapThanKeyMapselectERROR.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_MissingkeyERROR.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_MissingkeyMapERROR.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_MissingLayoutsERROR.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_MissingmodifierMapERROR.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_MissingkeyMapSetERROR.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_MissingActionsERROR.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_MissingTerminatorsERROR.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_MissingAllERROR.keylayout')],
].forEach(function (files) {
it(files + " should give an error ", async function () {
sut.run(files[0]);
@@ -79,7 +79,7 @@ describe('KeylayoutToKmnConverter', function () {
describe('RunSpecialTestFiles - create Error: unsupported characters', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
[
- [makePathToFixture('../data/Test_characters.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_characters.keylayout')],
].forEach(function (files) {
it(files + " should give Error: unsupported characters ", async function () {
sut.run(files[0]);
@@ -91,7 +91,7 @@ describe('KeylayoutToKmnConverter', function () {
describe('RunSpecialTestFiles - create Error: undefined action', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
[
- [makePathToFixture('../data/Test_undefinedAction.keylayout')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test_undefinedAction.keylayout')],
].forEach(function (files) {
it(files + " should give Error: undefined action detected", async function () {
sut.run(files[0]);
@@ -127,7 +127,7 @@ describe('KeylayoutToKmnConverter', function () {
});
it('run() should throw on unavailable input file name and null output file name', async function () {
- const inputFilename = makePathToFixture('../data/Unavailable.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Unavailable.keylayout');
const result = sut.run(inputFilename, null);
assert.isNotNull(result);
assert.equal(compilerTestCallbacks.messages.length, 2);
@@ -139,14 +139,14 @@ describe('KeylayoutToKmnConverter', function () {
describe('Run kmc-convert with or without outputfile name', async function () {
this.timeout(5000); // allow longer time for this test
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
- const infile = '../data/Test.keylayout';
+ const infile = '../data/tests-keylayout-kmn/Test.keylayout';
[
- [makePathToFixture('../data/Test.kmn')],
+ [makePathToFixture('../data/tests-keylayout-kmn/Test.kmn')],
[makePathToFixture('')],
[],
[null],
- [makePathToFixture('../data/test_OtherOutputName.kmn')],
- [makePathToFixture('../data/OutputXName.bb')],
+ [makePathToFixture('../data/tests-keylayout-kmn/test_OtherOutputName.kmn')],
+ [makePathToFixture('../data/tests-keylayout-kmn/OutputXName.bb')],
].forEach(function (files) {
it(infile + " should run ", async function () {
await NodeAssert.doesNotReject(async () => sut.run(makePathToFixture(infile), files[0]));
@@ -160,12 +160,12 @@ describe('KeylayoutToKmnConverter', function () {
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
// ProcessedData from usable file
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
const converted = sut.convertBound.convert(read, inputFilename.replace(/\.keylayout$/, '.kmn'));
// ProcessedData from unavailable file
- const inputFilenameUnavailable = makePathToFixture('../data/X.keylayout');
+ const inputFilenameUnavailable = makePathToFixture('../data/tests-keylayout-kmn/X.keylayout');
const readUnavailable = sutR.read(compilerTestCallbacks.loadFile(inputFilenameUnavailable));
const convertedUnavailable = sut.convertBound.convert(readUnavailable, inputFilenameUnavailable.replace(/\.keylayout$/, '.kmn'));
@@ -322,7 +322,7 @@ describe('KeylayoutToKmnConverter', function () {
describe('getModifierArrayFromKeyModifierArray ', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
const converted = sut.convertBound.convert(read, inputFilename.replace(/\.keylayout$/, '.kmn'));
[
@@ -348,7 +348,7 @@ describe('KeylayoutToKmnConverter', function () {
describe('getKeyModifierArrayFromActionID ', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
[
['A_16', [{ "key": "32", "behavior": "5" }]],
@@ -374,7 +374,7 @@ describe('KeylayoutToKmnConverter', function () {
describe('getActionIdFromActionNext ', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
[
['none', ''],
@@ -400,7 +400,7 @@ describe('KeylayoutToKmnConverter', function () {
describe('getActionIndexFromActionId ', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
[
['none', -1],
@@ -424,7 +424,7 @@ describe('KeylayoutToKmnConverter', function () {
describe('getOutputFromActionIdNone ', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
[
['A_14', 'u'],
@@ -454,7 +454,7 @@ describe('KeylayoutToKmnConverter', function () {
describe('getKeybehaviorModOutputArrayFromKeyActionbehaviorOutputArray ', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
const b1KeycodeArr: KeylayoutFileData[] = [
@@ -562,7 +562,7 @@ describe('KeylayoutToKmnConverter', function () {
describe('getActionStateOutputArrayFromActionState ', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
[['1', [
{ "id": "A_0", "state": "1", "output": "ˆ" },
@@ -609,7 +609,7 @@ describe('KeylayoutToKmnConverter', function () {
describe('getActionOutputbehaviorKeyModiFromActionIDStateOutput ', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
const converted = sut.convertBound.convert(read, inputFilename.replace(/\.keylayout$/, '.kmn'));
[
@@ -644,7 +644,7 @@ describe('KeylayoutToKmnConverter', function () {
describe('getKeyActionOutputArrayFromActionStateOutputArray ', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
const b6ActionIdArr: ActionStateOutput[] = [
@@ -751,35 +751,35 @@ describe('KeylayoutToKmnConverter', function () {
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
[
[
- ['../data/Test_C0.keylayout'],
+ ['../data/tests-keylayout-kmn/Test_C0.keylayout'],
[new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'NCAPS', 'K_A', new TextEncoder().encode('a')),
new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'CAPS', 'K_A', new TextEncoder().encode('A')),
new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'NCAPS', 'K_S', new TextEncoder().encode('s')),
new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'NCAPS', 'K_D', new TextEncoder().encode('d'))]
],
[
- ['../data/Test_C1.keylayout'],
+ ['../data/tests-keylayout-kmn/Test_C1.keylayout'],
[new Rule("C1", '', '', 0, 0, '', '', 0, 0, 'NCAPS', 'K_S', new TextEncoder().encode('s')),
new Rule("C1", '', '', 0, 0, '', '', 0, 0, 'CAPS', 'K_S', new TextEncoder().encode('S'))]
],
[
- ['../data/Test_C2.keylayout'],
+ ['../data/tests-keylayout-kmn/Test_C2.keylayout'],
[new Rule("C2", '', '', 0, 0, 'NCAPS', 'K_U', 1, 1, 'CAPS', 'K_A', new TextEncoder().encode('Â'))],
],
[
- ['../data/Test_C3.keylayout'],
+ ['../data/tests-keylayout-kmn/Test_C3.keylayout'],
[new Rule("C3", 'NCAPS SHIFT', 'K_D', 2, 1, 'NCAPS', 'K_U', 1, 2, 'CAPS', 'K_A', new TextEncoder().encode('Â'))]
],
[
- ['../data/Test_C3_several.keylayout'],
+ ['../data/tests-keylayout-kmn/Test_C3_several.keylayout'],
[new Rule("C3", 'NCAPS RALT', 'K_8', 3, 1, 'CAPS', 'K_U', 1, 3, 'NCAPS', 'K_A', new TextEncoder().encode('â')),
new Rule("C3", 'NCAPS RALT', 'K_8', 3, 0, 'CAPS', 'K_U', 1, 0, 'NCAPS RALT', 'K_A', new TextEncoder().encode('â')),
new Rule("C3", 'NCAPS RALT', 'K_8', 3, 0, 'NCAPS RALT', 'K_U', 2, 2, 'NCAPS', 'K_A', new TextEncoder().encode('â')),
new Rule("C3", 'NCAPS RALT', 'K_8', 3, 0, 'NCAPS RALT', 'K_U', 2, 0, 'NCAPS RALT', 'K_A', new TextEncoder().encode('â'))]
],
[
- ['../data/Test_C0_C1_C2_C3.keylayout'],
+ ['../data/tests-keylayout-kmn/Test_C0_C1_C2_C3.keylayout'],
[new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'CAPS', 'K_A', new TextEncoder().encode('A')),
new Rule("C2", '', '', 0, 0, 'NCAPS RALT', 'K_EQUAL', 1, 1, 'CAPS', 'K_D', new TextEncoder().encode('Â')),
new Rule("C1", '', '', 0, 0, '', '', 0, 0, 'CAPS', 'K_S', new TextEncoder().encode('S')),
diff --git a/developer/src/kmc-convert/test/kmn-file-reader.tests.ts b/developer/src/kmc-convert/test/kmn-file-reader.tests.ts
index c68e0e5241..5b955dae9d 100644
--- a/developer/src/kmc-convert/test/kmn-file-reader.tests.ts
+++ b/developer/src/kmc-convert/test/kmn-file-reader.tests.ts
@@ -22,7 +22,7 @@ describe('KeylayoutFileReader', function () {
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
it('read() should return filled array on correct input', async function () {
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout');
const result = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
assert.isNotEmpty(result);
});
@@ -38,7 +38,7 @@ describe('KeylayoutFileReader', function () {
});
it('read() should return empty array on unavailable file name', async function () {
- const inputFilenameUnavailable = makePathToFixture('../data/X.keylayout');
+ const inputFilenameUnavailable = makePathToFixture('../data/tests-keylayout-kmn/X.keylayout');
const result = sutR.read(compilerTestCallbacks.loadFile(inputFilenameUnavailable));
assert.isNull(result);
});
diff --git a/developer/src/kmc-convert/test/kmn-file-writer.tests.ts b/developer/src/kmc-convert/test/kmn-file-writer.tests.ts
index 3d47c8636a..4558d7da50 100644
--- a/developer/src/kmc-convert/test/kmn-file-writer.tests.ts
+++ b/developer/src/kmc-convert/test/kmn-file-writer.tests.ts
@@ -22,7 +22,7 @@ describe('KmnFileWriter', function () {
});
describe("writeDataRules() ", function () {
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout');
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
const sutW = new KmnFileWriter(compilerTestCallbacks, compilerTestOptions);
@@ -40,7 +40,7 @@ describe('KmnFileWriter', function () {
const sut = new KeylayoutToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
const sutW = new KmnFileWriter(compilerTestCallbacks, compilerTestOptions);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-keylayout-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
const converted = sut.convertBound.convert(read, inputFilename.replace(/\.keylayout$/, '.kmn'));
diff --git a/developer/src/kmc-convert/test/kmnXKB-file-writer.tests.ts b/developer/src/kmc-convert/test/kmnXKB-file-writer.tests.ts
index 8db24fc66e..e3ffb2386d 100644
--- a/developer/src/kmc-convert/test/kmnXKB-file-writer.tests.ts
+++ b/developer/src/kmc-convert/test/kmnXKB-file-writer.tests.ts
@@ -22,7 +22,7 @@ describe('KmnXKBFileWriter', function () {
});
describe("Xkb-kmn: writeDataRules() ", function () {
- const inputFilename = makePathToFixture('../data/Test.xkb');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Test.xkb');
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new XkbFileReader(compilerTestCallbacks);
const sutW = new KmnXKBFileWriter(compilerTestCallbacks, compilerTestOptions);
@@ -40,7 +40,7 @@ describe('KmnXKBFileWriter', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new XkbFileReader(compilerTestCallbacks);
const sutW = new KmnXKBFileWriter(compilerTestCallbacks, compilerTestOptions);
- const inputFilename = makePathToFixture('../data/Test.xkb');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Test.xkb');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
const converted = sut.convertBound.convert(read, inputFilename.replace(/\.xkb$/, '.kmn'));
@@ -422,7 +422,7 @@ describe('KmnXKBFileWriter', function () {
const sutW = new KmnXKBFileWriter(compilerTestCallbacks, compilerTestOptions);
[
[
- [ /* see ../data/Test_C0.xkb */
+ [ /* see ../data/tests-xkb-kmn/Test_C0.xkb */
new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'NCAPS', 'K_A', new TextEncoder().encode('a')),
new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'CAPS', 'K_A', new TextEncoder().encode('A')),
new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'NCAPS', 'K_S', new TextEncoder().encode('s')),
@@ -434,7 +434,7 @@ describe('KmnXKBFileWriter', function () {
"+ [NCAPS K_D] > 'd'\n"]
],
[
- [ /* see ../data/Test_C1.xkb */
+ [ /* see ../data/tests-xkb-kmn/Test_C1.xkb */
new Rule("C1", '', '', 0, 0, '', '', 0, 0, 'NCAPS', 'K_S', new TextEncoder().encode('s')),
new Rule("C1", '', '', 0, 0, '', '', 0, 0, 'CAPS', 'K_S', new TextEncoder().encode('S'))
],
@@ -442,14 +442,14 @@ describe('KmnXKBFileWriter', function () {
"+ [CAPS K_S] > 'S'\n"]
],
[
- [ /* see ../data/Test_C2.xkb */
+ [ /* see ../data/tests-xkb-kmn/Test_C2.xkb */
new Rule("C2", '', '', 0, 0, 'NCAPS', 'K_U', 1, 1, 'CAPS', 'K_A', new TextEncoder().encode('Â'))
],
["+ [NCAPS K_U] > dk(A1)\n" +
"dk(A1) + [CAPS K_A] > 'Â'\n\n"]
],
[
- [ /* see ../data/Test_C3.xkb */
+ [ /* see ../data/tests-xkb-kmn/Test_C3.xkb */
new Rule("C3", 'NCAPS SHIFT', 'K_D', 2, 1, 'NCAPS', 'K_U', 1, 2, 'CAPS', 'K_A', new TextEncoder().encode('Â'))
],
["+ [NCAPS SHIFT K_D] > dk(A2)\n" +
@@ -458,7 +458,7 @@ describe('KmnXKBFileWriter', function () {
]
],
[
- [ /* see ../data/Test_C0_C1_C2_C3.xkb */
+ [ /* see ../data/tests-xkb-kmn/Test_C0_C1_C2_C3.xkb */
new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'CAPS', 'K_A', new TextEncoder().encode('A')),
new Rule("C2", '', '', 0, 0, 'NCAPS RALT', 'K_EQUAL', 1, 1, 'CAPS', 'K_D', new TextEncoder().encode('Â')),
new Rule("C1", '', '', 0, 0, '', '', 0, 0, 'CAPS', 'K_S', new TextEncoder().encode('S')),
@@ -492,7 +492,7 @@ describe('KmnXKBFileWriter', function () {
"dk(B5) + [CAPS K_D] > 'Â'\n\n"]
],
[
- [ /* see ../data/Test_C3_several.xkb */
+ [ /* see ../data/tests-xkb-kmn/Test_C3_several.xkb */
new Rule("C3", 'NCAPS RALT', 'K_8', 3, 1, 'CAPS', 'K_U', 1, 3, 'NCAPS', 'K_A', new TextEncoder().encode('â')),
new Rule("C3", 'NCAPS RALT', 'K_8', 3, 0, 'CAPS', 'K_U', 1, 0, 'NCAPS RALT', 'K_A', new TextEncoder().encode('â')),
new Rule("C3", 'NCAPS RALT', 'K_8', 3, 0, 'NCAPS RALT', 'K_U', 2, 2, 'NCAPS', 'K_A', new TextEncoder().encode('â')),
diff --git a/developer/src/kmc-convert/test/xkb-file-reader.tests.ts b/developer/src/kmc-convert/test/xkb-file-reader.tests.ts
index 0df6b4f227..936dbc32a6 100644
--- a/developer/src/kmc-convert/test/xkb-file-reader.tests.ts
+++ b/developer/src/kmc-convert/test/xkb-file-reader.tests.ts
@@ -22,7 +22,7 @@ describe('XkbFileReader', function () {
const sutR = new XkbFileReader(compilerTestCallbacks);
it('read() should return filled array on correct input', async function () {
- const inputFilename = makePathToFixture('../data/Test.xkb');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Test.xkb');
const result = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
assert.isNotEmpty(result);
});
@@ -38,7 +38,7 @@ describe('XkbFileReader', function () {
});
it('read() should return empty array on unavailable file name', async function () {
- const inputFilenameUnavailable = makePathToFixture('../data/X.xkb');
+ const inputFilenameUnavailable = makePathToFixture('../data/tests-xkb-kmn/X.xkb');
const result = sutR.read(compilerTestCallbacks.loadFile(inputFilenameUnavailable));
assert.isNull(result);
});
diff --git a/developer/src/kmc-convert/test/xkb-to-kmn-converter.tests.ts b/developer/src/kmc-convert/test/xkb-to-kmn-converter.tests.ts
index 91a2dd1025..ed00fc22d4 100644
--- a/developer/src/kmc-convert/test/xkb-to-kmn-converter.tests.ts
+++ b/developer/src/kmc-convert/test/xkb-to-kmn-converter.tests.ts
@@ -23,29 +23,29 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: RunSpecialTestFiles', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
[
- [makePathToFixture('../data/Test_C0.keylayout')],
- [makePathToFixture('../data/Test_C1.keylayout')],
- [makePathToFixture('../data/Test_C2.keylayout')],
- [makePathToFixture('../data/Test_C2_several.keylayout')],
- [makePathToFixture('../data/Test_C3.keylayout')],
- [makePathToFixture('../data/Test_C3_several.keylayout')],
- [makePathToFixture('../data/Test_C0_C1_C2_C3.keylayout')],
- [makePathToFixture('../data/Test_maxKeyCode.keylayout')],
- [makePathToFixture('../data/Test_messages.keylayout')],
- [makePathToFixture('../data/Test_messages_controlCharacter.keylayout')],
- [makePathToFixture('../data/Test_messages_superior_C2.keylayout')],
- [makePathToFixture('../data/Test_messages_superior_C3.keylayout')],
- [makePathToFixture('../data/Test_duplicate_missing_keycode.keylayout')],
- [makePathToFixture('../data/Test_modifier.keylayout')],
- [makePathToFixture('../data/Test_modifierNoCaps.keylayout')],
- [makePathToFixture('../data/Test_differentAmountOfKeysInBehaviours.keylayout')],
- [makePathToFixture('../data/Test_duplicate_missing_keys.keylayout')],
- [makePathToFixture('../data/Test_duplicate_keys.keylayout')],
- [makePathToFixture('../data/Test_ambiguous_keys.keylayout')],
- [makePathToFixture('../data/Test_nr_elements.keylayout')],
- [makePathToFixture('../data/Test.keylayout')],
- [makePathToFixture('../data/Test_differentEncodings.keylayout')],
- [makePathToFixture('../data/Test_ExtraWarning.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_C0.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_C1.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_C2.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_C2_several.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_C3.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_C3_several.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_C0_C1_C2_C3.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_maxKeyCode.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_messages.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_messages_controlCharacter.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_messages_superior_C2.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_messages_superior_C3.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_duplicate_missing_keycode.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_modifier.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_modifierNoCaps.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_differentAmountOfKeysInBehaviours.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_duplicate_missing_keys.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_duplicate_keys.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_ambiguous_keys.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_nr_elements.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_differentEncodings.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_ExtraWarning.keylayout')],
].forEach(function (files) {
it(files + " should give no errors ", async function () {
sut.run(files[0]);
@@ -57,15 +57,15 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: RunTestFiles resulting in errors ', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
[
- [makePathToFixture('../data/Test_DifferentAmountOfMapSelectInKeyMapERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingkeyERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingkeyMapERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingLayoutsERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingmodifierMapERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingkeyMapSetERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingActionsERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingTerminatorsERROR.keylayout')],
- [makePathToFixture('../data/Test_MissingAllERROR.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_DifferentAmountOfMapSelectInKeyMapERROR.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_MissingkeyERROR.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_MissingkeyMapERROR.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_MissingLayoutsERROR.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_MissingmodifierMapERROR.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_MissingkeyMapSetERROR.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_MissingActionsERROR.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_MissingTerminatorsERROR.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_MissingAllERROR.keylayout')],
].forEach(function (files) {
it(files + " should give an error ", async function () {
sut.run(files[0]);
@@ -77,7 +77,7 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: RunSpecialTestFiles - create Error: unsupported characters', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
[
- [makePathToFixture('../data/Test_characters.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_characters.keylayout')],
].forEach(function (files) {
it(files + " should give Error: unsupported characters ", async function () {
sut.run(files[0]);
@@ -89,7 +89,7 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: RunSpecialTestFiles - create Error: undefined action', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
[
- [makePathToFixture('../data/Test_undefinedAction.keylayout')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test_undefinedAction.keylayout')],
].forEach(function (files) {
it(files + " should give Error: undefined action detected", async function () {
sut.run(files[0]);
@@ -125,7 +125,7 @@ describe('XkbToKmnConverter', function () {
});
it('run() should throw on unavailable input file name and null output file name', async function () {
- const inputFilename = makePathToFixture('../data/Unavailable.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Unavailable.keylayout');
const result = sut.run(inputFilename, null);
assert.isNotNull(result);
assert.equal(compilerTestCallbacks.messages.length, 2);
@@ -137,14 +137,14 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: Run kmc-convert with or without outputfile name', async function () {
this.timeout(5000); // allow longer time for this test
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
- const infile = '../data/Test.keylayout';
+ const infile = '../data/tests-xkb-kmn/Test.keylayout';
[
- [makePathToFixture('../data/Test.kmn')],
+ [makePathToFixture('../data/tests-xkb-kmn/Test.kmn')],
[makePathToFixture('')],
[],
[null],
- [makePathToFixture('../data/test_OtherOutputName.kmn')],
- [makePathToFixture('../data/OutputXName.bb')],
+ [makePathToFixture('../data/tests-xkb-kmn/test_OtherOutputName.kmn')],
+ [makePathToFixture('../data/tests-xkb-kmn/OutputXName.bb')],
].forEach(function (files) {
it(infile + " should run ", async function () {
await NodeAssert.doesNotReject(async () => sut.run(makePathToFixture(infile), files[0]));
@@ -158,12 +158,12 @@ describe('XkbToKmnConverter', function () {
const sutR = new XkbFileReader(compilerTestCallbacks);
// ProcessedData from usable file
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
const converted = sut.convertBound.convert(read, inputFilename.replace(/\.keylayout$/, '.kmn'));
// ProcessedData from unavailable file
- const inputFilenameUnavailable = makePathToFixture('../data/X.keylayout');
+ const inputFilenameUnavailable = makePathToFixture('../data/tests-xkb-kmn/X.keylayout');
const readUnavailable = sutR.read(compilerTestCallbacks.loadFile(inputFilenameUnavailable));
const convertedUnavailable = sut.convertBound.convert(readUnavailable, inputFilenameUnavailable.replace(/\.keylayout$/, '.kmn'));
@@ -320,7 +320,7 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: getModifierArrayFromKeyModifierArray ', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new XkbFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
const converted = sut.convertBound.convert(read, inputFilename.replace(/\.keylayout$/, '.kmn'));
[
@@ -345,7 +345,7 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: getKeyModifierArrayFromActionID ', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new XkbFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
[
['A_16', [{ "key": "32", "behavior": "5" }]],
@@ -371,7 +371,7 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: getActionIdFromActionNext ', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new XkbFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
[
['none', ''],
@@ -397,7 +397,7 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: getActionIndexFromActionId ', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new XkbFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
[
['none', -1],
@@ -421,7 +421,7 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: getOutputFromActionIdNone ', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new XkbFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
[
['A_14', 'u'],
@@ -451,7 +451,7 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: getKeybehaviorModOutputArrayFromKeyActionbehaviorOutputArray ', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new XkbFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
const b1KeycodeArr: KeylayoutFileData[] = [
@@ -559,7 +559,7 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: getActionStateOutputArrayFromActionState ', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new XkbFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
[['1', [
{ "id": "A_0", "state": "1", "output": "ˆ" },
@@ -606,7 +606,7 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: getActionOutputbehaviorKeyModiFromActionIDStateOutput ', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new XkbFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
const converted = sut.convertBound.convert(read, inputFilename.replace(/\.keylayout$/, '.kmn'));
[
@@ -641,7 +641,7 @@ describe('XkbToKmnConverter', function () {
describe('Xkb-kmn: getKeyActionOutputArrayFromActionStateOutputArray ', function () {
const sut = new XkbToKmnConverter(compilerTestCallbacks, compilerTestOptions);
const sutR = new XkbFileReader(compilerTestCallbacks);
- const inputFilename = makePathToFixture('../data/Test.keylayout');
+ const inputFilename = makePathToFixture('../data/tests-xkb-kmn/Test.keylayout');
const read = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
const b6ActionIdArr: ActionStateOutput[] = [
@@ -748,35 +748,35 @@ describe('XkbToKmnConverter', function () {
const sutR = new XkbFileReader(compilerTestCallbacks);
[
[
- ['../data/Test_C0.keylayout'],
+ ['../data/tests-xkb-kmn/Test_C0.keylayout'],
[new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'NCAPS', 'K_A', new TextEncoder().encode('a')),
new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'CAPS', 'K_A', new TextEncoder().encode('A')),
new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'NCAPS', 'K_S', new TextEncoder().encode('s')),
new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'NCAPS', 'K_D', new TextEncoder().encode('d'))]
],
[
- ['../data/Test_C1.keylayout'],
+ ['../data/tests-xkb-kmn/Test_C1.keylayout'],
[new Rule("C1", '', '', 0, 0, '', '', 0, 0, 'NCAPS', 'K_S', new TextEncoder().encode('s')),
new Rule("C1", '', '', 0, 0, '', '', 0, 0, 'CAPS', 'K_S', new TextEncoder().encode('S'))]
],
[
- ['../data/Test_C2.keylayout'],
+ ['../data/tests-xkb-kmn/Test_C2.keylayout'],
[new Rule("C2", '', '', 0, 0, 'NCAPS', 'K_U', 1, 1, 'CAPS', 'K_A', new TextEncoder().encode('Â'))],
],
[
- ['../data/Test_C3.keylayout'],
+ ['../data/tests-xkb-kmn/Test_C3.keylayout'],
[new Rule("C3", 'NCAPS SHIFT', 'K_D', 2, 1, 'NCAPS', 'K_U', 1, 2, 'CAPS', 'K_A', new TextEncoder().encode('Â'))]
],
[
- ['../data/Test_C3_several.keylayout'],
+ ['../data/tests-xkb-kmn/Test_C3_several.keylayout'],
[new Rule("C3", 'NCAPS RALT', 'K_8', 3, 1, 'CAPS', 'K_U', 1, 3, 'NCAPS', 'K_A', new TextEncoder().encode('â')),
new Rule("C3", 'NCAPS RALT', 'K_8', 3, 0, 'CAPS', 'K_U', 1, 0, 'NCAPS RALT', 'K_A', new TextEncoder().encode('â')),
new Rule("C3", 'NCAPS RALT', 'K_8', 3, 0, 'NCAPS RALT', 'K_U', 2, 2, 'NCAPS', 'K_A', new TextEncoder().encode('â')),
new Rule("C3", 'NCAPS RALT', 'K_8', 3, 0, 'NCAPS RALT', 'K_U', 2, 0, 'NCAPS RALT', 'K_A', new TextEncoder().encode('â'))]
],
[
- ['../data/Test_C0_C1_C2_C3.keylayout'],
+ ['../data/tests-xkb-kmn/Test_C0_C1_C2_C3.keylayout'],
[new Rule("C0", '', '', 0, 0, '', '', 0, 0, 'CAPS', 'K_A', new TextEncoder().encode('A')),
new Rule("C2", '', '', 0, 0, 'NCAPS RALT', 'K_EQUAL', 1, 1, 'CAPS', 'K_D', new TextEncoder().encode('Â')),
new Rule("C1", '', '', 0, 0, '', '', 0, 0, 'CAPS', 'K_S', new TextEncoder().encode('S')),