From 92c300d79c31c0c9864a661e18193489afc5099f Mon Sep 17 00:00:00 2001 From: Marian Lalik Date: Fri, 22 Apr 2022 16:25:07 +0200 Subject: [PATCH 1/3] better handling of the mglyph element, added cerror to remove_all --- doc/sample-config.xml | 2 +- pom.xml | 7 ++++++- .../modules/AbstractModule.java | 1 + .../modules/ElementMinimizer.java | 13 ++++++++++++- .../modules/ElementMinimizerTest.java | 7 ++++++- .../ElementMinimizerTest/mglyph.canonical.xml | 10 ++++++++++ .../ElementMinimizerTest/mglyph.original.xml | 10 ++++++++++ 7 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.original.xml diff --git a/doc/sample-config.xml b/doc/sample-config.xml index 45f43cc..4dc19aa 100644 --- a/doc/sample-config.xml +++ b/doc/sample-config.xml @@ -6,7 +6,7 @@ mspace maligngroup malignmark mstyle mpadded menclose maction - mphantom merror + mphantom merror cerror mathvariant=bold mathvariant=italic mathvariant=bold-italic mathvariant=double-struck mathvariant=bold-fraktur mathvariant=script mathvariant=bold-script mathvariant=fraktur mathvariant=sans-serif mathvariant=bold-sans-serif mathvariant=sans-serif-italic mathvariant=sans-serif-bold-italic mathvariant=monospace mathvariant=initial mathvariant=tailed mathvariant=looped mathvariant=stretched encoding diff --git a/pom.xml b/pom.xml index 29724e9..41ff16c 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ cz.muni.fi.mir mathml-canonicalizer - 1.4.0 + 1.4.1 jar MathMLCanonicalizer @@ -48,6 +48,11 @@ Maros Kucbel kocka@mail.muni.cz + + lalik + Marian Lalik + xlalik@mail.muni.cz + diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/AbstractModule.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/AbstractModule.java index 1228d34..5f13ea3 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/AbstractModule.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/AbstractModule.java @@ -48,6 +48,7 @@ abstract class AbstractModule implements Module { protected static final String SUBSUP = "msubsup"; protected static final String UNDEROVER = "munderover"; protected static final String UNDERSCRIPT = "munder"; + protected static final String MGLYPH = "mglyph"; @Override public String getProperty(String key) { diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizer.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizer.java index 618435e..7c5eb98 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizer.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizer.java @@ -154,6 +154,17 @@ private void minimizeElements(final InputStream input, final OutputStream output if (depth > 0) { continue; } + if (name.equals(MGLYPH)) { + for (int index = 0; index < reader.getAttributeCount(); ++index) { + final String attributeName = reader.getAttributeLocalName(index); + final String attributeValue = reader.getAttributeValue(index); + if (attributeName == "alt") { + writer.writeCharacters(attributeValue); + } + } + depth++; + continue; + } } writer.writeStartElement(reader.getName().getPrefix(), name, reader.getName().getNamespaceURI()); for (int index = 0; index < reader.getAttributeCount(); ++index) { @@ -186,7 +197,7 @@ private void minimizeElements(final InputStream input, final OutputStream output continue; } if (depth > 0) { - if (removeWithChildren.contains(name)) { + if (removeWithChildren.contains(name) || name.equals(MGLYPH)) { depth--; } continue; diff --git a/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest.java b/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest.java index 87c5bb7..efbf92a 100644 --- a/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest.java +++ b/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest.java @@ -31,7 +31,7 @@ public class ElementMinimizerTest extends AbstractModuleTest { @BeforeAll public static void setUpBeforeAll() { DEFAULT_INSTANCE.setProperty("remove", "mspace maligngroup malignmark mstyle mpadded menclose maction"); - DEFAULT_INSTANCE.setProperty("remove_all", "mphantom merror"); + DEFAULT_INSTANCE.setProperty("remove_all", "mphantom merror cerror"); DEFAULT_INSTANCE.setProperty("keepAttributes", "mathvariant=bold encoding"); DEFAULT_INSTANCE.setProperty("keepAttributes.mfrac", "linethickness=0"); DEFAULT_INSTANCE.setProperty("keepAttributes.cn", "base type"); @@ -63,4 +63,9 @@ public void testAttributes() { testXML(DEFAULT_INSTANCE, RESOURCE_SUBDIR + "attributes"); } + @Test + public void testMglyph() { + testXML(DEFAULT_INSTANCE, RESOURCE_SUBDIR + "mglyph"); + } + } diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.canonical.xml new file mode 100644 index 0000000..20bd9c1 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.canonical.xml @@ -0,0 +1,10 @@ + + + + num1 + plus + num2 + eqls + rslt + + diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.original.xml new file mode 100644 index 0000000..a1ebe57 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.original.xml @@ -0,0 +1,10 @@ + + + + + + + + + + From ca06c2de5c8ac81bc574f7c4dac16052f11bdcf6 Mon Sep 17 00:00:00 2001 From: Marian Lalik Date: Sun, 24 Apr 2022 04:09:39 +0200 Subject: [PATCH 2/3] changed to work with html instead of xml --- pom.xml | 7 +- .../MathMLCanonicalizer.java | 77 ++++-- .../MathMLCanonicalizerCommandLineTool.java | 36 +-- .../modules/AbstractModule.java | 25 +- .../modules/DOMModule.java | 2 +- .../modules/ElementMinimizer.java | 223 ++++++------------ .../modules/FunctionNormalizer.java | 48 ++-- .../modules/MfencedReplacer.java | 62 ++--- .../modules/MrowNormalizer.java | 104 ++++---- .../modules/OperatorNormalizer.java | 95 ++++---- .../modules/ScriptNormalizer.java | 73 +++--- .../modules/SingleTopElementOutputter.java | 29 +-- .../modules/UnaryOperatorRemover.java | 84 +++---- .../mathmlcanonicalization/default-config.xml | 1 + .../MathMLCanonicalizerTest.java | 7 +- .../modules/AbstractModuleTest.java | 78 +++--- .../modules/ElementMinimizerTest.java | 1 + .../modules/ModuleTestResources.java | 83 +++---- .../attributes.canonical.html | 17 ++ .../attributes.canonical.xml | 12 - .../attributes.original.html | 17 ++ .../attributes.original.xml | 12 - .../comments.canonical.html | 15 ++ .../comments.canonical.xml | 10 - .../comments.original.html | 19 ++ .../comments.original.xml | 14 -- .../ElementMinimizerTest/mfrac.canonical.html | 12 + .../ElementMinimizerTest/mfrac.canonical.xml | 7 - .../ElementMinimizerTest/mfrac.original.html | 12 + .../ElementMinimizerTest/mfrac.original.xml | 7 - .../mglyph.canonical.html | 15 ++ .../ElementMinimizerTest/mglyph.canonical.xml | 10 - .../ElementMinimizerTest/mglyph.original.html | 15 ++ .../ElementMinimizerTest/mglyph.original.xml | 10 - .../mphantom.canonical.html | 22 ++ .../mphantom.canonical.xml | 17 -- .../mphantom.original.html | 26 ++ .../mphantom.original.xml | 21 -- .../function.canonical.html | 14 ++ .../function.canonical.xml | 9 - .../function.original.html | 15 ++ .../function.original.xml | 10 - .../function2.canonical.html | 24 ++ .../function2.canonical.xml | 19 -- .../function2.original.html | 23 ++ .../function2.original.xml | 18 -- .../function3.canonical.html | 18 ++ .../function3.canonical.xml | 13 - .../function3.original.html | 17 ++ .../function3.original.xml | 12 - .../FunctionNormalizerTest/sin.canonical.html | 14 ++ .../FunctionNormalizerTest/sin.canonical.xml | 9 - .../FunctionNormalizerTest/sin.original.html | 11 + .../FunctionNormalizerTest/sin.original.xml | 6 - .../blank-separators.canonical.html | 16 ++ .../blank-separators.canonical.xml | 11 - .../blank-separators.original.html | 12 + .../blank-separators.original.xml | 7 - .../interval-configured.canonical.html | 15 ++ .../interval-configured.canonical.xml | 10 - .../interval-configured.original.html | 12 + .../interval-configured.original.xml | 7 - .../interval.canonical.html | 17 ++ .../interval.canonical.xml | 12 - .../interval.original.html | 12 + .../MfencedReplacerTest/interval.original.xml | 7 - .../MfencedReplacerTest/nested.canonical.html | 27 +++ .../MfencedReplacerTest/nested.canonical.xml | 22 -- .../MfencedReplacerTest/nested.original.html | 16 ++ .../MfencedReplacerTest/nested.original.xml | 11 - .../no-children.canonical.html | 12 + .../no-children.canonical.xml | 7 - .../no-children.original.html | 10 + .../no-children.original.xml | 5 - .../sequence-separators.canonical.html | 23 ++ .../sequence-separators.canonical.xml | 18 -- .../sequence-separators.original.html | 17 ++ .../sequence-separators.original.xml | 12 - .../configured.canonical.html | 17 ++ .../configured.canonical.xml | 12 - .../configured.original.html | 13 + .../configured.original.xml | 8 - .../MrowNormalizerTest/frac.canonical.html | 12 + .../MrowNormalizerTest/frac.canonical.xml | 7 - .../MrowNormalizerTest/frac.original.html | 14 ++ .../MrowNormalizerTest/frac.original.xml | 9 - .../interval.canonical.html | 17 ++ .../MrowNormalizerTest/interval.canonical.xml | 12 - .../MrowNormalizerTest/interval.original.html | 15 ++ .../MrowNormalizerTest/interval.original.xml | 10 - .../MrowNormalizerTest/mixed1.canonical.html | 19 ++ .../MrowNormalizerTest/mixed1.canonical.xml | 14 -- .../MrowNormalizerTest/mixed1.original.html | 23 ++ .../MrowNormalizerTest/mixed1.original.xml | 18 -- .../MrowNormalizerTest/mixed2.canonical.html | 20 ++ .../MrowNormalizerTest/mixed2.canonical.xml | 15 -- .../MrowNormalizerTest/mixed2.original.html | 22 ++ .../MrowNormalizerTest/mixed2.original.xml | 17 -- .../MrowNormalizerTest/mixed3.canonical.html | 16 ++ .../MrowNormalizerTest/mixed3.canonical.xml | 11 - .../MrowNormalizerTest/mixed3.original.html | 20 ++ .../MrowNormalizerTest/mixed3.original.xml | 15 -- .../MrowNormalizerTest/mixed4.canonical.html | 18 ++ .../MrowNormalizerTest/mixed4.canonical.xml | 13 - .../MrowNormalizerTest/mixed4.original.html | 22 ++ .../MrowNormalizerTest/mixed4.original.xml | 17 -- .../parentheses1.canonical.html | 17 ++ .../parentheses1.canonical.xml | 12 - .../parentheses1.original.html | 15 ++ .../parentheses1.original.xml | 10 - .../parentheses2.canonical.html | 19 ++ .../parentheses2.canonical.xml | 14 -- .../parentheses2.original.html | 17 ++ .../parentheses2.original.xml | 12 - .../parentheses3.canonical.html | 19 ++ .../parentheses3.canonical.xml | 14 -- .../parentheses3.original.html | 19 ++ .../parentheses3.original.xml | 14 -- .../parentheses4.canonical.html | 27 +++ .../parentheses4.canonical.xml | 22 -- .../parentheses4.original.html | 21 ++ .../parentheses4.original.xml | 16 -- .../parentheses5.canonical.html | 15 ++ .../parentheses5.canonical.xml | 10 - .../parentheses5.original.html | 15 ++ .../parentheses5.original.xml | 10 - .../MrowNormalizerTest/sqrt.canonical.html | 12 + .../MrowNormalizerTest/sqrt.canonical.xml | 7 - .../MrowNormalizerTest/sqrt.original.html | 14 ++ .../MrowNormalizerTest/sqrt.original.xml | 9 - .../MrowNormalizerTest/tuple.canonical.html | 17 ++ .../MrowNormalizerTest/tuple.canonical.xml | 12 - .../MrowNormalizerTest/tuple.original.html | 15 ++ .../MrowNormalizerTest/tuple.original.xml | 10 - .../identifier-replacement.canonical.html | 22 ++ .../identifier-replacement.canonical.xml | 17 -- .../identifier-replacement.original.html | 23 ++ .../identifier-replacement.original.xml | 18 -- .../multiplication-blank.canonical.html | 15 ++ .../multiplication-blank.canonical.xml | 10 - .../multiplication-blank.original.html | 16 ++ .../multiplication-blank.original.xml | 11 - .../multiplication-cdot.canonical.html | 13 + .../multiplication-cdot.canonical.xml | 8 - .../multiplication-cdot.original.html | 13 + .../multiplication-cdot.original.xml | 8 - .../operator-unification.canonical.html | 19 ++ .../operator-unification.canonical.xml | 14 -- .../operator-unification.original.html | 19 ++ .../operator-unification.original.xml | 14 -- .../operator2identifier.canonical.html | 16 ++ .../operator2identifier.canonical.xml | 11 - .../operator2identifier.original.html | 16 ++ .../operator2identifier.original.xml | 11 - .../unicode.canonical.html | 12 + .../unicode.canonical.xml | 9 - .../unicode.original.html | 12 + .../unicode.original.xml | 9 - .../complexsubsup.canonical.html | 40 ++++ .../complexsubsup.canonical.xml | 35 --- .../complexsubsup.original.html | 34 +++ .../complexsubsup.original.xml | 29 --- .../invalid-scripts.canonical.html | 23 ++ .../invalid-scripts.canonical.xml | 18 -- .../invalid-scripts.original.html | 23 ++ .../invalid-scripts.original.xml | 18 -- .../nested-sub-sup.canonical.html | 39 +++ .../nested-sub-sup.canonical.xml | 34 --- .../nested-sub-sup.original.html | 39 +++ .../nested-sub-sup.original.xml | 34 --- .../sub-sup.canonical.html | 15 ++ .../sub-sup.canonical.xml | 10 - .../sub-sup.original.html | 15 ++ .../ScriptNormalizerTest/sub-sup.original.xml | 10 - .../subsup.canonical.html | 20 ++ .../ScriptNormalizerTest/subsup.canonical.xml | 15 -- .../ScriptNormalizerTest/subsup.original.html | 18 ++ .../ScriptNormalizerTest/subsup.original.xml | 13 - .../underover.canonical.html | 19 ++ .../underover.canonical.xml | 14 -- .../underover.original.html | 19 ++ .../underover.original.xml | 14 -- ...ouble-operator-no-namespace.canonical.html | 13 + ...double-operator-no-namespace.canonical.xml | 9 - ...double-operator-no-namespace.original.html | 16 ++ ...-double-operator-no-namespace.original.xml | 12 - ...ble-operator-with-namespace.canonical.html | 13 + ...uble-operator-with-namespace.canonical.xml | 9 - ...uble-operator-with-namespace.original.html | 16 ++ ...ouble-operator-with-namespace.original.xml | 12 - .../cmathml-no-namespace.canonical.html | 70 ++++++ .../cmathml-no-namespace.canonical.xml | 66 ------ .../cmathml-no-namespace.original.html | 76 ++++++ .../cmathml-no-namespace.original.xml | 72 ------ .../cmathml-with-namespace.canonical.html | 70 ++++++ .../cmathml-with-namespace.canonical.xml | 66 ------ .../cmathml-with-namespace.original.html | 76 ++++++ .../cmathml-with-namespace.original.xml | 72 ------ ...ouble-operator-no-namespace.canonical.html | 13 + ...double-operator-no-namespace.canonical.xml | 9 - ...double-operator-no-namespace.original.html | 14 ++ ...-double-operator-no-namespace.original.xml | 10 - ...ble-operator-with-namespace.canonical.html | 13 + ...uble-operator-with-namespace.canonical.xml | 9 - ...uble-operator-with-namespace.original.html | 14 ++ ...ouble-operator-with-namespace.original.xml | 10 - .../pmathml-no-namespace.canonical.html | 84 +++++++ .../pmathml-no-namespace.canonical.xml | 80 ------- .../pmathml-no-namespace.original.html | 86 +++++++ .../pmathml-no-namespace.original.xml | 82 ------- .../pmathml-with-namespace.canonical.html | 84 +++++++ .../pmathml-with-namespace.canonical.xml | 80 ------- .../pmathml-with-namespace.original.html | 86 +++++++ .../pmathml-with-namespace.original.xml | 82 ------- 214 files changed, 2709 insertions(+), 2314 deletions(-) create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.original.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.canonical.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.canonical.xml create mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.original.html delete mode 100644 src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.original.xml diff --git a/pom.xml b/pom.xml index 41ff16c..5e1dc95 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ cz.muni.fi.mir mathml-canonicalizer - 1.4.1 + 1.5.0 jar MathMLCanonicalizer @@ -221,6 +221,11 @@ xmlunit-legacy 2.9.0 + + org.jsoup + jsoup + 1.14.3 + org.junit.jupiter diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/MathMLCanonicalizer.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/MathMLCanonicalizer.java index 74d9c88..8f1c71d 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/MathMLCanonicalizer.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/MathMLCanonicalizer.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.lang.reflect.InvocationTargetException; import java.util.LinkedList; import java.util.List; import java.util.logging.Level; @@ -35,10 +36,7 @@ import javax.xml.validation.Validator; import org.apache.commons.io.IOUtils; -import org.jdom2.Document; import org.jdom2.JDOMException; -import org.jdom2.input.SAXBuilder; -import org.jdom2.output.XMLOutputter; import org.xml.sax.SAXException; import cz.muni.fi.mir.mathmlcanonicalization.modules.DOMModule; @@ -47,6 +45,9 @@ import cz.muni.fi.mir.mathmlcanonicalization.modules.StreamModule; import cz.muni.fi.mir.mathmlcanonicalization.utils.DTDManipulator; +import org.jsoup.*; +import org.jsoup.nodes.Document; + /** * An input class for MathML canonicalization. * @@ -65,8 +66,13 @@ public final class MathMLCanonicalizer { * Initializes canonicalizer with default settings * * @return itialized canonicalizer + * @throws SecurityException + * @throws NoSuchMethodException + * @throws InvocationTargetException + * @throws IllegalArgumentException */ - public static MathMLCanonicalizer getDefaultCanonicalizer() { + public static MathMLCanonicalizer getDefaultCanonicalizer() + throws IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { try { return new MathMLCanonicalizer(Settings.getStreamFromProperty("defaultConfig")); } catch (ConfigException ex) { @@ -85,10 +91,17 @@ public MathMLCanonicalizer() { * Initializes canonicalizer using configuration file * * @param xmlConfigurationStream XML configuration constrained by XML Schema - * in cz.muni.fi.mir.mathmlcanonicalization.configuration.xsd resource file - * @throws ConfigException when configuration cannot be loaded + * in + * cz.muni.fi.mir.mathmlcanonicalization.configuration.xsd + * resource file + * @throws ConfigException when configuration cannot be loaded + * @throws SecurityException + * @throws NoSuchMethodException + * @throws InvocationTargetException + * @throws IllegalArgumentException */ - public MathMLCanonicalizer(InputStream xmlConfigurationStream) throws ConfigException { + public MathMLCanonicalizer(InputStream xmlConfigurationStream) throws ConfigException, IllegalArgumentException, + InvocationTargetException, NoSuchMethodException, SecurityException { if (xmlConfigurationStream == null) { throw new NullPointerException("xmlConfigurationStream is null"); } @@ -137,8 +150,13 @@ public MathMLCanonicalizer addModule(Module module) { * * @param moduleName the name of the module class * @return the canonizer object to allow adding more modules at once + * @throws SecurityException + * @throws NoSuchMethodException + * @throws InvocationTargetException + * @throws IllegalArgumentException */ - public MathMLCanonicalizer addModule(String moduleName) { + public MathMLCanonicalizer addModule(String moduleName) + throws IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { if (moduleName == null) { throw new NullPointerException("moduleName"); } @@ -150,7 +168,7 @@ public MathMLCanonicalizer addModule(String moduleName) { + ".modules." + moduleName; Class> moduleClass = Class.forName(fullyQualified); - return addModule((Module) moduleClass.newInstance()); + return addModule((Module) moduleClass.getDeclaredConstructor().newInstance()); } catch (ClassNotFoundException ex) { LOGGER.log(Level.WARNING, "cannot load module " + moduleName, ex); } catch (InstantiationException ex) { @@ -181,9 +199,15 @@ private void validateXMLConfiguration(InputStream xmlConfigurationStream) /** * Loads configuration from XML file, overriding the properties. + * + * @throws SecurityException + * @throws NoSuchMethodException + * @throws InvocationTargetException + * @throws IllegalArgumentException */ private void loadXMLConfiguration(InputStream xmlConfigurationStream) - throws ConfigException, XMLStreamException { + throws ConfigException, XMLStreamException, IllegalArgumentException, InvocationTargetException, + NoSuchMethodException, SecurityException { assert xmlConfigurationStream != null; final XMLInputFactory inputFactory = Settings.defaultXmlInputFactory(); final XMLStreamReader reader = inputFactory.createXMLStreamReader(xmlConfigurationStream); @@ -210,7 +234,7 @@ private void loadXMLConfiguration(InputStream xmlConfigurationStream) + ".modules." + attributeValue; try { Class> moduleClass = Class.forName(fullyQualified); - module = (Module) moduleClass.newInstance(); + module = (Module) moduleClass.getDeclaredConstructor().newInstance(); } catch (InstantiationException ex) { LOGGER.log(Level.SEVERE, ex.getMessage(), ex); throw new ConfigException("cannot instantiate module " @@ -275,13 +299,14 @@ private void loadXMLConfiguration(InputStream xmlConfigurationStream) /** * Canonicalize an input MathML stream. * - * @param in input stream to be canonicalized + * @param in input stream to be canonicalized * @param out canonical output stream of input - * @throws JDOMException problem with DOM - * @throws IOException problem with streams - * @throws ModuleException some module cannot canonicalize the input + * @throws JDOMException problem with DOM + * @throws IOException problem with streams + * @throws ModuleException some module cannot canonicalize + * the input * @throws javax.xml.stream.XMLStreamException an error with XML processing - * occurs + * occurs */ public void canonicalize(final InputStream in, final OutputStream out) throws JDOMException, IOException, ModuleException, XMLStreamException { @@ -303,13 +328,13 @@ public void canonicalize(final InputStream in, final OutputStream out) streamModulesResult.writeTo(out); return; } - final InputStream input = streamModulesResult == null ? in : new ByteArrayInputStream(streamModulesResult.toByteArray()); + final InputStream input = streamModulesResult == null ? in + : new ByteArrayInputStream(streamModulesResult.toByteArray()); final Document document = executeDomModules(input); // convertong the JDOM representation back to stream - final XMLOutputter serializer = new XMLOutputter(); - serializer.output(document, out); + out.write(document.html().getBytes("UTF-8")); } /** @@ -318,21 +343,22 @@ public void canonicalize(final InputStream in, final OutputStream out) * * NB: maybe add another method which returns {@link org.w3c.dom.Document}? */ - public Document canonicalize(final InputStream in) throws ModuleException, IOException, XMLStreamException, JDOMException { + public Document canonicalize(final InputStream in) + throws ModuleException, IOException, XMLStreamException, JDOMException { if (in == null) { throw new NullPointerException("Input stream is null"); } ByteArrayOutputStream streamModulesResult = executeStreamModules(in); - final InputStream input = streamModulesResult == null ? in : new ByteArrayInputStream(streamModulesResult.toByteArray()); + final InputStream input = streamModulesResult == null ? in + : new ByteArrayInputStream(streamModulesResult.toByteArray()); return executeDomModules(input); } private Document executeDomModules(final InputStream input) throws JDOMException, IOException, ModuleException { // creating the JDOM representation from the stream - final SAXBuilder builder = Settings.setupSAXBuilder(); - final Document document = builder.build(input); + final Document document = Jsoup.parse(input, null, ""); // calling JDOM modules for (DOMModule module : domModules) { @@ -369,7 +395,8 @@ private ByteArrayOutputStream executeStreamModules(final InputStream in) return removeDtdsIfNecessary(outputStream); } - private ByteArrayOutputStream removeDtdsIfNecessary(final ByteArrayOutputStream outputStream) throws XMLStreamException { + private ByteArrayOutputStream removeDtdsIfNecessary(final ByteArrayOutputStream outputStream) + throws XMLStreamException { ByteArrayOutputStream result; if (enforcingXHTMLPlusMathMLDTD) { @@ -398,7 +425,7 @@ private InputStream injectDtdsIfNecessary(final InputStream in) { * document. * * @return XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD reference enforcement - * setting + * setting */ public boolean isEnforcingXHTMLPlusMathMLDTD() { diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/MathMLCanonicalizerCommandLineTool.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/MathMLCanonicalizerCommandLineTool.java index 5ba7737..4295f4c 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/MathMLCanonicalizerCommandLineTool.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/MathMLCanonicalizerCommandLineTool.java @@ -18,6 +18,7 @@ import cz.muni.fi.mir.mathmlcanonicalization.modules.ModuleException; import java.io.*; +import java.lang.reflect.InvocationTargetException; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; @@ -65,9 +66,16 @@ public final class MathMLCanonicalizerCommandLineTool { /** * @param args the command line arguments * @throws javax.xml.stream.XMLStreamException an error with XML processing - * occurs + * occurs + * @throws SecurityException + * @throws NoSuchMethodException + * @throws InvocationTargetException + * @throws IllegalArgumentException */ - public static void main(String[] args) throws TransformerConfigurationException, ParserConfigurationException, SAXException, IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, ConfigException, FileNotFoundException, JDOMException, ModuleException, XMLStreamException { + public static void main(String[] args) throws TransformerConfigurationException, ParserConfigurationException, + SAXException, IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, + ConfigException, FileNotFoundException, JDOMException, ModuleException, XMLStreamException, + IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { final Options options = createOptions(); final CommandLineParser parser = new DefaultParser(); CommandLine line = null; @@ -147,46 +155,43 @@ private static Options createOptions() { .desc("Load configuration file.") .argName("arg") .hasArg() - .build() - ); + .build()); options.addOption(Option .builder(OPTION_INJECTION) .longOpt(OPTION_INJECTION_LONG) .desc("Enforce injection of XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD reference into input documents.") .hasArg(false) - .build() - ); + .build()); options.addOption(Option .builder(OPTION_OVERWRITE) .longOpt(OPTION_OVERWRITE_LONG) .desc("Overwrite input files by produced canonical outputs.") .hasArg(false) - .build() - ); + .build()); options.addOption(Option .builder(OPTION_PRINT_DEFAULT_CONFIG) .longOpt(OPTION_PRINT_DEFAULT_CONFIG_LONG) .desc("Print default configuration that will be used if no config file is supplied.") .hasArg(false) - .build() - ); + .build()); options.addOption(Option .builder(OPTION_HELP) .longOpt(OPTION_HELP_LONG) .desc("Print help (this screen).") .hasArg(false) - .build() - ); + .build()); return options; } - private static void canonicalize(File file, InputStream config, boolean dtdInjectionMode, boolean overwrite) throws - ConfigException, FileNotFoundException, JDOMException, IOException, ModuleException, XMLStreamException { + private static void canonicalize(File file, InputStream config, boolean dtdInjectionMode, boolean overwrite) + throws ConfigException, FileNotFoundException, JDOMException, IOException, ModuleException, + XMLStreamException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, + SecurityException { assert file != null; // but config can be null MathMLCanonicalizer mlcan; if (config != null) { @@ -255,7 +260,8 @@ private static void printHelp(Options options) { formatter.printOptions(output, 80, options, 8, 8); } - private static void printDefaultConfig() throws ParserConfigurationException, SAXException, IOException, ClassNotFoundException, InstantiationException, IllegalAccessException { + private static void printDefaultConfig() throws ParserConfigurationException, SAXException, IOException, + ClassNotFoundException, InstantiationException, IllegalAccessException { final InputSource src = new InputSource(Settings.getStreamFromProperty("defaultConfig")); final Document document = Settings.documentBuilderFactory().newDocumentBuilder().parse(src); diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/AbstractModule.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/AbstractModule.java index 5f13ea3..fb98358 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/AbstractModule.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/AbstractModule.java @@ -17,14 +17,11 @@ import java.util.Arrays; import java.util.HashSet; -import java.util.List; import java.util.Properties; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; -import org.jdom2.Attribute; -import org.jdom2.Element; -import org.jdom2.Namespace; +import org.jsoup.nodes.Element; /** * Module implementation with property loading @@ -35,7 +32,6 @@ abstract class AbstractModule implements Module { protected final Properties properties = new Properties(); private static final Logger LOGGER = Logger.getLogger(AbstractModule.class.getName()); - protected static final Namespace MATHMLNS = Namespace.getNamespace("http://www.w3.org/1998/Math/MathML"); // MathML elements protected static final String FENCED = "mfenced"; protected static final String IDENTIFIER = "mi"; @@ -110,31 +106,20 @@ protected Set getPropertySet(final String property) { } protected boolean isOperator(final Element element, final String operator) { - return isOperator(element) && element.getTextTrim().equals(operator); + return isOperator(element) && element.ownText().trim().equals(operator); } protected boolean isOperator(final Element element) { assert element != null; - return element.getName().equals(OPERATOR); + return element.tagName().equals(OPERATOR); } protected void replaceElement(final Element toReplace, final String replacementName) { assert toReplace != null && replacementName != null; assert !replacementName.isEmpty(); - final Element parent = toReplace.getParentElement(); - assert parent != null; - final Element replacement = new Element(replacementName, toReplace.getNamespace()); - replacement.addContent(toReplace.removeContent()); - final List attributes = toReplace.getAttributes(); - while (attributes.size() > 0) { - Attribute currentAttribute = attributes.get(0); - replacement.setAttribute(currentAttribute.detach()); - } - final int parentIndex = parent.indexOf(toReplace); - parent.removeContent(parentIndex); - parent.addContent(parentIndex, replacement); + toReplace.tagName(replacementName); LOGGER.log(Level.FINE, "{0} replaced with {1}", - new Object[]{toReplace, replacementName}); + new Object[] { toReplace, replacementName }); } } diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/DOMModule.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/DOMModule.java index 21c0111..06aec99 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/DOMModule.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/DOMModule.java @@ -15,7 +15,7 @@ */ package cz.muni.fi.mir.mathmlcanonicalization.modules; -import org.jdom2.Document; +import org.jsoup.nodes.Document; /** * Modules processing the input using Document Object Model diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizer.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizer.java index 7c5eb98..896454a 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizer.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizer.java @@ -15,43 +15,42 @@ */ package cz.muni.fi.mir.mathmlcanonicalization.modules; -import cz.muni.fi.mir.mathmlcanonicalization.Settings; -import java.io.ByteArrayOutputStream; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.List; import java.util.Set; -import java.util.logging.Level; import java.util.logging.Logger; -import javax.xml.stream.XMLInputFactory; -import javax.xml.stream.XMLOutputFactory; -import javax.xml.stream.XMLStreamConstants; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; + +import org.jsoup.nodes.Attribute; +import org.jsoup.nodes.Comment; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.nodes.Node; +import org.jsoup.nodes.TextNode; /** * Remove useless elements and attributes from MathML. * - * Input: + * Input: + * * Well-formed MathML, first module * Property file(s) with names of elements and attributes for removal or - * preservation + * preservation + * * Output: - * The original code with: + * The original code with: + * * removed elements insignificant for the formula searching and indexing * purpose (e.q. spacing and appearance altering tags) including the content * between open and close tag or preserving it (depending on the tag) * removed useless attributes but preserved those that are used in other * modules, e.q. separator attribute in mfenced element * removed attributes with default values? - * removed redundant spaces? + * removed redundant spaces? + * * * @author Maros Kucbel */ -public class ElementMinimizer extends AbstractModule implements StreamModule { +public class ElementMinimizer extends AbstractModule implements DOMModule { private static final Logger LOGGER = Logger.getLogger(ElementMinimizer.class.getName()); @@ -70,165 +69,79 @@ public ElementMinimizer() { declareProperty("keepAttributes.interval"); declareProperty("keepAttributes.declare"); declareProperty("keepAttributes.mfenced"); + declareProperty("keepAttributes.math"); } @Override - public ByteArrayOutputStream execute(final InputStream input) throws ModuleException { - if (input == null) { - throw new NullPointerException("input"); + public void execute(final Document doc) { + if (doc == null) { + throw new NullPointerException("doc"); } removeWithChildren = getPropertySet("remove_all"); removeKeepChildren = getPropertySet("remove"); - final ByteArrayOutputStream output = new ByteArrayOutputStream(); - try { - minimizeElements(input, output); - } catch (XMLStreamException ex) { - LOGGER.log(Level.SEVERE, "error while parsing the input file. ", ex); - throw new ModuleException("Error while parsing the input file", ex); + LOGGER.fine("Starting ElementMinimizer"); + minimizeElements(doc.root()); + LOGGER.fine("ElementMinimizer finished succesfully"); + } + + private void minimizeElements(Element element) { + minimizeAttributes(element); + for (int i = 0; i < element.childNodeSize(); i++) { + final Node childNode = element.childNode(i); + if (childNode instanceof Comment) { + childNode.remove(); + i--; // we need to stay at the same position + continue; + } + if (childNode instanceof Element) { + final Element child = (Element) childNode; + if (removeWithChildren.contains(child.tagName())) { + child.remove(); + i--; + continue; + } + if (removeKeepChildren.contains(child.tagName())) { + child.unwrap(); // removes element but keeps the children + i--; + continue; + } + if (child.tagName().equals(MGLYPH)) { + final TextNode textNode = new TextNode(child.attr("alt")); + child.replaceWith(textNode); + } + minimizeElements(child); + } } - return output; } - /** - * Decides which attributes to keep based on keepAttributes properties. - */ - private boolean keepAttribute(final String name, final String attributeName, - final String attributeValue) { - assert name != null && attributeName != null && attributeValue != null; - assert !name.isEmpty() && !attributeName.isEmpty(); + private void minimizeAttributes(Element element) { String property = getProperty("keepAttributes"); - final String elementPropertyName = "keepAttributes." + name; + final String elementPropertyName = "keepAttributes." + element.tagName(); if (isProperty(elementPropertyName)) { property += " " + getProperty(elementPropertyName); } final List whitelist = Arrays.asList(property.split(" ")); - for (String attribute : whitelist) { - if (attributeName.equals(attribute) - || attribute.contains("=") - && attributeName.equals(attribute.substring(0, attribute.lastIndexOf('='))) - && attributeValue.equals(attribute.substring(attribute.lastIndexOf('=') + 1))) { - return true; + + final List attributes = element.attributes().asList(); + for (int i = 0; i < attributes.size(); i++) { + if (!isWhitelisted(attributes.get(i), whitelist)) { + element.removeAttr(attributes.get(i).getKey()); } } - return false; } - private void minimizeElements(final InputStream input, final OutputStream outputStream) - throws XMLStreamException { - assert input != null && outputStream != null; - // TODO: refactoring - // TODO: add logging - final XMLInputFactory inputFactory = Settings.setupXMLInputFactory(); - final XMLOutputFactory outputFactory = Settings.xmlOutputFactory(); - // stream for reading event from input stream - final XMLStreamReader reader = inputFactory.createXMLStreamReader(input); - // stream that writes events to given output stream - final XMLStreamWriter writer = outputFactory.createXMLStreamWriter(outputStream, StandardCharsets.UTF_8.name()); - writer.writeStartDocument(reader.getEncoding(), reader.getVersion()); - // depth of current branch, used when removing element with all its children - int depth = 0; - boolean mathElement = false; - // check for event - while (reader.hasNext()) { - // get event code - final int event = reader.next(); - // based on event code choose action - switch (event) { - case XMLStreamConstants.START_ELEMENT: { - // write this element - // omit if it should be skipped - String name = reader.getLocalName(); - if (name.equals(MATH)) { - mathElement = true; - } - if (mathElement) { - if (removeKeepChildren.contains(name)) { - continue; - } - // omit this element if it is marked to skip or is a child - // of such an element - if (removeWithChildren.contains(name)) { - depth++; - } - if (depth > 0) { - continue; - } - if (name.equals(MGLYPH)) { - for (int index = 0; index < reader.getAttributeCount(); ++index) { - final String attributeName = reader.getAttributeLocalName(index); - final String attributeValue = reader.getAttributeValue(index); - if (attributeName == "alt") { - writer.writeCharacters(attributeValue); - } - } - depth++; - continue; - } - } - writer.writeStartElement(reader.getName().getPrefix(), name, reader.getName().getNamespaceURI()); - for (int index = 0; index < reader.getAttributeCount(); ++index) { - final String attributeName = reader.getAttributeLocalName(index); - final String attributeValue = reader.getAttributeValue(index); - final String attributePrefix = reader.getAttributePrefix(index); - final String attributeNamespace = reader.getAttributeNamespace(index); - // write only chosen attributes - if (!mathElement || (mathElement && keepAttribute(name, attributeName, attributeValue))) { - if (attributeNamespace == null) { - writer.writeAttribute(attributeName, attributeValue); - } else { - writer.writeAttribute(attributePrefix, attributeNamespace, attributeName, attributeValue); - } - } - } - for (int index = 0; index < reader.getNamespaceCount(); ++index) { - writer.writeNamespace(reader.getNamespacePrefix(index), reader.getNamespaceURI(index)); - } - - break; - } - case XMLStreamConstants.END_ELEMENT: { - if (mathElement) { - String name = reader.getLocalName(); - if (name.equals(MATH)) { - mathElement = false; - } - if (removeKeepChildren.contains(name)) { - continue; - } - if (depth > 0) { - if (removeWithChildren.contains(name) || name.equals(MGLYPH)) { - depth--; - } - continue; - } - } - writer.writeEndElement(); - break; - } - case XMLStreamConstants.CHARACTERS: { - // warning: white space is counted as CHARACTER event (new line after element) - if (depth > 0) { - continue; - } - writer.writeCharacters(reader.getText()); - break; - } - case XMLStreamConstants.END_DOCUMENT: { - writer.writeEndDocument(); - break; - } - case XMLStreamConstants.DTD: { - writer.writeDTD(reader.getText()); - break; - } - default: { - break; - } + private Boolean isWhitelisted(Attribute attribute, List whitelist) { + System.out.println(attribute.getKey()); + for (String attr : whitelist) { + if (attribute.getKey().equals(attr) + || attr.contains("=") + && attribute.getKey().equals(attr.substring(0, attr.lastIndexOf('='))) + && attribute.getValue().equals(attr.substring(attr.lastIndexOf('=') + 1))) { + return true; } } - writer.flush(); - writer.close(); + return false; } } diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizer.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizer.java index 0f5d653..f79645e 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizer.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizer.java @@ -15,12 +15,11 @@ */ package cz.muni.fi.mir.mathmlcanonicalization.modules; -import static cz.muni.fi.mir.mathmlcanonicalization.modules.AbstractModule.MATHMLNS; import java.util.Collection; import java.util.List; import java.util.logging.Logger; -import org.jdom2.Document; -import org.jdom2.Element; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; /** * Normalize the way to express an function applied to arguments in MathML. @@ -52,56 +51,57 @@ public void execute(final Document doc) { if (doc == null) { throw new NullPointerException("doc"); } - normalizeFunctionApplication(doc.getRootElement(), getPropertySet(APPLY_FUNCTION_OPERATORS)); + normalizeFunctionApplication(doc.root(), getPropertySet(APPLY_FUNCTION_OPERATORS)); } // TODO: refactoring private void normalizeFunctionApplication(final Element element, final Collection functionOperators) { assert element != null && functionOperators != null; - final List children = element.getChildren(); + final List children = element.children(); for (int i = 0; i < children.size(); i++) { if (isFunction(i, children, functionOperators)) { final int parameterPosition = i + 2; Element parameter = children.get(parameterPosition); // mrow in which the parameter will be stored - final Element newParameter = new Element(ROW, MATHMLNS); + final Element newParameter = new Element(ROW); - if (parameter.getName().equals(ROW)) { + if (parameter.tagName().equals(ROW)) { if (hasInsideBrackets(parameter)) { - children.get(i + 1).detach(); // just detach operator + children.get(i + 1).remove(); // just detach operator } else { // add parentheses - parameter.addContent(0, new Element(OPERATOR, MATHMLNS).setText("(")); - parameter.addContent(new Element(OPERATOR, MATHMLNS).setText(")")); + parameter.insertChildren(0, new Element(OPERATOR).text("(")); + parameter.appendChild(new Element(OPERATOR).text(")")); LOGGER.fine("Parentheses around function argument added"); - children.get(i + 1).detach(); // detach funct app operator + children.get(i + 1).remove(); // detach funct app operator } LOGGER.fine("Function application operator removed"); continue; // no need to set newParameter } else if (isOperator(parameter, "(")) { int bracketsDepth = 1; - newParameter.addContent(parameter.detach()); - - while ((parameterPosition < children.size()) && (bracketsDepth > 0)) { - parameter = children.get(parameterPosition); + newParameter.appendChild(parameter); + int viewPosition = parameterPosition + 1; + while ((viewPosition < children.size()) && (bracketsDepth > 0)) { + parameter = children.get(viewPosition); if (isOperator(parameter, "(")) { bracketsDepth++; } else if (isOperator(parameter, ")")) { bracketsDepth--; } - newParameter.addContent(parameter.detach()); + newParameter.appendChild(parameter); + viewPosition++; } for (; bracketsDepth > 0; bracketsDepth--) { // add missing right brackets - newParameter.addContent(new Element(OPERATOR, MATHMLNS).setText(")")); + newParameter.appendChild(new Element(OPERATOR).text(")")); LOGGER.fine("Added missing )"); } } else { // if the paramether is neither mrow or ( - newParameter.addContent(new Element(OPERATOR, MATHMLNS).setText("(")); // add left bracket - newParameter.addContent(children.get(parameterPosition).detach()); - newParameter.addContent(new Element(OPERATOR, MATHMLNS).setText(")")); // add right bracket + newParameter.appendChild(new Element(OPERATOR).text("(")); // add left bracket + newParameter.appendChild(children.get(parameterPosition)); + newParameter.appendChild(new Element(OPERATOR).text(")")); // add right bracket LOGGER.fine("Function argument wrapped with parentheses and mrow"); } - children.set(i + 1, newParameter); // replace function app operator with newParameter + children.get(i + 1).replaceWith(newParameter); // replace function app operator with newParameter LOGGER.fine("Function application operator removed"); } else { // if there isnt start of function application apply normalization on children normalizeFunctionApplication(children.get(i), functionOperators); @@ -113,14 +113,14 @@ private boolean isFunction(final int i, final List children, final Collection functionOperators) { assert i >= 0 && children != null && i < children.size() && functionOperators != null; return ((i < children.size() - 2) - && children.get(i).getName().equals(IDENTIFIER) + && children.get(i).tagName().equals(IDENTIFIER) && isOperator(children.get(i + 1)) - && functionOperators.contains(children.get(i + 1).getTextTrim())); + && functionOperators.contains(children.get(i + 1).ownText().trim())); } private boolean hasInsideBrackets(final Element element) { assert element != null; - final List children = element.getChildren(); + final List children = element.children(); if ((children.size() > 1) && isOperator(children.get(0), "(")) { int bracketsDepth = 1; Element child; diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacer.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacer.java index 9fd8dd8..7dc0153 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacer.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacer.java @@ -15,14 +15,11 @@ */ package cz.muni.fi.mir.mathmlcanonicalization.modules; -import static cz.muni.fi.mir.mathmlcanonicalization.modules.AbstractModule.MATHMLNS; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import org.jdom2.Document; -import org.jdom2.Element; -import org.jdom2.Namespace; -import org.jdom2.filter.ElementFilter; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; /** * Replace mfenced elements in MathML for equivalent. @@ -38,12 +35,16 @@ * configured not to add mrow outside and inside or your own fixed or default * parentheses and separators for fenced expressions can be specified. * Example + * * {@code * * x * y * - * } is transformed to + * } + * + * is transformed to + * * {@code * * [ @@ -92,7 +93,7 @@ public void execute(final Document doc) { throw new NullPointerException("doc"); } final List toReplace = new ArrayList<>(); - for (Element mfenced : doc.getDescendants(new ElementFilter(FENCED, MATHMLNS))) { + for (Element mfenced : doc.getElementsByTag(FENCED)) { toReplace.add(mfenced); } if (toReplace.isEmpty()) { @@ -107,26 +108,25 @@ public void execute(final Document doc) { private void replaceMfenced(final Element mfencedElement) { assert mfencedElement != null; final char[] separators = getSeparators(mfencedElement); - final Namespace ns = mfencedElement.getNamespace(); - final List children = mfencedElement.getChildren(); + final List children = mfencedElement.children(); final int nChildren = children.size(); final int last = Math.min(separators.length - 1, nChildren - 2); Element insideFence = null; - if (nChildren == 1 && children.get(0).getName().equals(ROW)) { + if (nChildren == 1 && children.get(0).tagName().equals(ROW)) { // we do not want to add another mrow - insideFence = children.get(0).detach(); + insideFence = children.get(0); } else if (nChildren != 0) { - insideFence = new Element(ROW, ns); + insideFence = new Element(ROW); for (int i = 0; i < nChildren; i++) { // add separator if (i > 0 && last >= 0) { // not before first or when blank separators char separatorChar = separators[(i - 1 > last) ? last : i - 1]; String separatorStr = Character.toString(separatorChar); - insideFence.addContent(new Element(OPERATOR, ns).setText(separatorStr)); + insideFence.appendChild(new Element(OPERATOR).text(separatorStr)); } // add original child - insideFence.addContent(children.get(0).detach()); + insideFence.appendChild(children.get(i)); } } replaceMfenced(mfencedElement, insideFence); @@ -134,38 +134,38 @@ private void replaceMfenced(final Element mfencedElement) { private void replaceMfenced(final Element mfencedElement, final Element insideContent) { assert mfencedElement != null; // but insideContent can be null - final Namespace ns = mfencedElement.getNamespace(); - Element replacement = new Element(ROW, ns); + Element replacement = new Element(ROW); String openStr = getProperty(DEFAULT_OPEN); String closeStr = getProperty(DEFAULT_CLOSE); if (openStr.isEmpty() || closeStr.isEmpty()) { LOGGER.warning("Default open or close fence not set"); } - if (!isEnabled(FORCE_DEFAULT_OPEN)) { - openStr = mfencedElement.getAttributeValue(OPEN_FENCE, openStr); + if (!isEnabled(FORCE_DEFAULT_OPEN) && mfencedElement.hasAttr(OPEN_FENCE)) { + openStr = mfencedElement.attr(OPEN_FENCE); } - if (!isEnabled(FORCE_DEFAULT_CLOSE)) { - closeStr = mfencedElement.getAttributeValue(CLOSE_FENCE, closeStr); + if (!isEnabled(FORCE_DEFAULT_CLOSE) && mfencedElement.hasAttr(CLOSE_FENCE)) { + closeStr = mfencedElement.attr(CLOSE_FENCE); } - replacement.addContent(new Element(OPERATOR, ns).setText(openStr)); + replacement.appendChild(new Element(OPERATOR).text(openStr)); if (insideContent != null) { if (isEnabled(ADD_INNER_ROW)) { - replacement.addContent(insideContent); + replacement.appendChild(insideContent); } else { - replacement.addContent(insideContent.removeContent()); + replacement.appendChildren(insideContent.childNodes()); + insideContent.remove(); } } - replacement.addContent(new Element(OPERATOR, ns).setText(closeStr)); + replacement.appendChild(new Element(OPERATOR).text(closeStr)); - final Element parent = mfencedElement.getParentElement(); - final int index = parent.indexOf(mfencedElement); - parent.removeContent(index); + final Element parent = mfencedElement.parent(); + final int index = mfencedElement.siblingIndex(); + mfencedElement.remove(); if (isEnabled(ADD_OUTER_ROW)) { - parent.addContent(index, replacement); + parent.insertChildren(index, replacement); } else { - parent.addContent(index, replacement.removeContent()); + parent.insertChildren(index, replacement.childNodes()); } LOGGER.fine("Mfenced element converted"); } @@ -175,8 +175,8 @@ private char[] getSeparators(final Element element) { if (isEnabled(FORCE_DEFAULT_SEPARATORS)) { return getProperty(DEFAULT_SEPARATORS).toCharArray(); } - return element.getAttributeValue(SEPARATORS, - getProperty(DEFAULT_SEPARATORS)).trim().toCharArray(); + return (element.hasAttr(SEPARATORS) ? element.attr(SEPARATORS).trim().toCharArray() + : getProperty(DEFAULT_SEPARATORS).toCharArray()); } } diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizer.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizer.java index 1fb4a47..ef5f8d2 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizer.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizer.java @@ -15,14 +15,12 @@ */ package cz.muni.fi.mir.mathmlcanonicalization.modules; -import static cz.muni.fi.mir.mathmlcanonicalization.modules.AbstractModule.MATHMLNS; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; -import org.jdom2.Document; -import org.jdom2.Element; -import org.jdom2.Parent; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; /** * Normalize the number of mrow elements in MathML. @@ -31,21 +29,27 @@ * Well-formed MathML, already processed by other modules (especially * ElementMinimizer, MfencedReplacer and FunctionNormalizer) * Output - * The original code with changes in mrow elements: + * The original code with changes in mrow elements: + * * added mrow elements to places, where detected fenced formulae (and not * already encapsulated in mrow) * removed redundant mrow elements in unneeded grouping – e.q. parents * requiring only one child element accept any number of elements so the mrow * tag is not needed (see example) or grouping with only presentation purpose - * + * + * * Example + * * {@code * * * - * 1 * - * } is transformed to + * } + * + * is transformed to + * * {@code * * - @@ -95,8 +99,8 @@ public void execute(final Document doc) { if (doc == null) { throw new NullPointerException("doc"); } - traverseRemoval(doc.getRootElement()); - traverseAddition(doc.getRootElement()); + traverseRemoval(doc.root()); + traverseAddition(doc.root()); } /** @@ -106,7 +110,7 @@ public void execute(final Document doc) { */ private void traverseAddition(final Element element) { assert element != null; - final List children = new ArrayList<>(element.getChildren()); + final List children = new ArrayList<>(element.children()); for (Element child : children) { traverseAddition(child); } @@ -120,11 +124,11 @@ private void traverseAddition(final Element element) { */ private void traverseRemoval(final Element element) { assert element != null; - final List children = new ArrayList<>(element.getChildren()); + final List children = new ArrayList<>(element.children()); for (Element child : children) { traverseRemoval(child); } - if (element.getName().equals(ROW)) { + if (element.tagName().equals(ROW)) { checkRemoval(element); } } @@ -135,13 +139,12 @@ private void traverseRemoval(final Element element) { * @param mrowElement the mrow element */ private void checkRemoval(final Element mrowElement) { - assert mrowElement != null && mrowElement.getName().equals(ROW); - final Parent parent = mrowElement.getParent(); - if (!(parent instanceof Element)) { + assert mrowElement != null && mrowElement.tagName().equals(ROW); + if (!mrowElement.hasParent()) { return; // no parent element } - final Element parentElement = (Element) parent; - final List children = mrowElement.getChildren(); + final Element parentElement = mrowElement.parent(); + final List children = mrowElement.children(); if (children.size() <= 1) { removeElement(mrowElement, parentElement); @@ -149,7 +152,7 @@ private void checkRemoval(final Element mrowElement) { return; } - final String childCountPropertyName = CHILD_COUNT_PREFIX + parentElement.getName(); + final String childCountPropertyName = CHILD_COUNT_PREFIX + parentElement.tagName(); if (!isProperty(childCountPropertyName)) { return; // unknown parent element } @@ -159,37 +162,38 @@ private void checkRemoval(final Element mrowElement) { childCount = Integer.parseInt(childCountProperty); } catch (NumberFormatException e) { LOGGER.log(Level.WARNING, - "\"{0}\" is not an integer for \"" + childCountPropertyName + "\", property ignored", childCountProperty); + "\"{0}\" is not an integer for \"" + childCountPropertyName + "\", property ignored", + childCountProperty); return; } if (childCount == 1 || // parent can accept any number of elements so we can remove mrow - children.size() + parentElement.getChildren().size() - 1 == childCount) { + children.size() + parentElement.childNodeSize() - 1 == childCount) { removeElement(mrowElement, parentElement); } } private static void removeElement(final Element element, final Element parent) { assert element != null && parent != null; - parent.addContent(parent.indexOf(element), element.cloneContent()); - element.detach(); + parent.insertChildren(element.siblingIndex(), element.childNodes()); + element.remove(); } /** * Test if element is an operator representing an opening or closing * parenthesis according to properties * - * @param element element to test + * @param element element to test * @param propertyName name of property specifiyng opening or closing - * parentheses + * parentheses * @return true if element is a parentheses according to propertyName */ private Boolean isParenthesis(final Element element, final String propertyName) { assert element != null && propertyName != null && isProperty(propertyName); - if (!element.getName().equals(OPERATOR)) { + if (!element.tagName().equals(OPERATOR)) { return false; } - return getPropertySet(propertyName).contains(element.getTextNormalize()); + return getPropertySet(propertyName).contains(element.ownText().trim()); } /** @@ -197,20 +201,17 @@ private Boolean isParenthesis(final Element element, final String propertyName) * of MfencedReplacer * * @param siblings children of parent element - * @param fenced list of elements inside parentheses, children of parent - * element - * @param opening opening parenthesis, child of parent element - * @param closing closing parenthesis, child of parent element + * @param fenced list of elements inside parentheses, children of parent + * element + * @param opening opening parenthesis, child of parent element + * @param closing closing parenthesis, child of parent element */ private void wrapFenced(final List siblings, final List fenced, final Element opening, final Element closing) { assert siblings != null && fenced != null && opening != null; - final Element parent = opening.getParentElement(); - assert closing != null && closing.getParentElement().equals(parent); - for (Element e : fenced) { - e.detach(); - } - final int openingIndex = parent.indexOf(opening); + final Element parent = opening.parent(); + assert closing != null && closing.parent().equals(parent); + final int openingIndex = opening.siblingIndex(); // Element to be placed inside parentheses. // If null, the original 'fenced' list will be used. @@ -220,35 +221,33 @@ private void wrapFenced(final List siblings, final List fenced } else if (fenced.size() == 1) { innerElement = fenced.get(0); // no need to wrap, just one element } else { - innerElement = new Element(ROW, MATHMLNS); - innerElement.addContent(fenced); + innerElement = new Element(ROW); + innerElement.appendChildren(fenced); LOGGER.fine("Inner mrow added"); } - if (((parent.getName().equals(ROW) + if (((parent.tagName().equals(ROW) && siblings.get(0) == opening && siblings.get(siblings.size() - 1) == closing)) || !isEnabled(WRAP_OUTSIDE)) { // will not wrap outside in mrow if (innerElement == null) { - parent.addContent(openingIndex + 1, fenced); + parent.insertChildren(openingIndex + 1, fenced); } else { - parent.addContent(openingIndex + 1, innerElement); + parent.insertChildren(openingIndex + 1, innerElement); } return; } // wrap outside in mrow - opening.detach(); - closing.detach(); - final Element outerMrowElement = new Element(ROW, MATHMLNS); - outerMrowElement.addContent(opening); + final Element outerMrowElement = new Element(ROW); + outerMrowElement.appendChild(opening); if (innerElement != null) { - outerMrowElement.addContent(innerElement); + outerMrowElement.appendChild(innerElement); } else { - outerMrowElement.addContent(fenced); + outerMrowElement.appendChildren(fenced); } - outerMrowElement.addContent(closing); - parent.addContent(openingIndex, outerMrowElement); + outerMrowElement.appendChild(closing); + parent.insertChildren(openingIndex, outerMrowElement); LOGGER.fine("Outer mrow added"); } @@ -257,12 +256,11 @@ private void wrapFenced(final List siblings, final List fenced */ private void checkAddition(final Element element) { assert element != null; - final Parent parent = element.getParent(); - if (!(parent instanceof Element)) { + if (!element.hasParent()) { return; } - final Element parentElement = (Element) parent; - final List siblings = parentElement.getChildren(); + final Element parentElement = element.parent(); + final List siblings = parentElement.children(); if (isParenthesis(element, OPENING)) { // Need to find matching closing par and register the elements between diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizer.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizer.java index 4c43f85..16a9bf4 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizer.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizer.java @@ -15,7 +15,6 @@ */ package cz.muni.fi.mir.mathmlcanonicalization.modules; -import static cz.muni.fi.mir.mathmlcanonicalization.modules.AbstractModule.MATHMLNS; import java.text.Normalizer; import java.util.ArrayList; import java.util.Collection; @@ -25,12 +24,11 @@ import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; -import org.jdom2.Content; -import org.jdom2.Document; -import org.jdom2.Element; -import org.jdom2.Text; -import org.jdom2.filter.ContentFilter; -import org.jdom2.filter.ElementFilter; + +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.nodes.Node; +import org.jsoup.nodes.TextNode; /** * Normalize the way to express an function applied to arguments in MathML. @@ -72,7 +70,7 @@ public void execute(final Document doc) { if (doc == null) { throw new NullPointerException("doc"); } - final Element root = doc.getRootElement(); + final Element root = doc.root(); // TODO: convert Unicode superscripts (supX entities) to msup etc. final String normalizerFormStr = getProperty(NORMALIZATION_FORM); @@ -125,40 +123,37 @@ private void unifyOperators(final Element ancestor) { private void normalizeUnicode(final Element ancestor, final Normalizer.Form form) { assert ancestor != null && form != null; - final List texts = new ArrayList<>(); - final ContentFilter textFilter = new ContentFilter(ContentFilter.TEXT); - for (Content text : ancestor.getContent(textFilter)) { - texts.add((Text) text); - } - for (Element element : ancestor.getDescendants(new ElementFilter())) { - for (Content text : element.getContent(textFilter)) { - texts.add((Text) text); + + final List texts = new ArrayList<>(); + for (Element descendant : ancestor.getAllElements()) { + for (Node text : descendant.textNodes()) { + texts.add(text); } } - for (Text text : texts) { - if (Normalizer.isNormalized(text.getText(), form)) { + + for (Node text : texts) { + final String textString = text.attr("#text"); + if (Normalizer.isNormalized(textString, form)) { continue; } - final String normalizedString = Normalizer.normalize(text.getText(), form); + text.attr("#text", Normalizer.normalize(textString, form)); LOGGER.log(Level.FINE, "Text ''{0}'' normalized to ''{1}''", - new Object[]{text.getText(), normalizedString}); - text.setText(normalizedString); - assert Normalizer.isNormalized(text.getText(), form); + new Object[] { textString, text.attr("#text") }); + assert Normalizer.isNormalized(text.attr("#text"), form); } } private void removeSpareOperators(final Element element, final Collection spareOperators) { assert element != null && spareOperators != null && !spareOperators.isEmpty(); - final List children = element.getChildren(); + final List children = element.children(); for (int i = 0; i < children.size(); i++) { final Element actual = children.get(i); // actual element if (isOperator(actual)) { - //Keep special case where asterisk is by itself in a subscript - String parent = actual.getParentElement().getName(); + // Keep special case where asterisk is by itself in a subscript + String parent = actual.parent().tagName(); if (isSpareOperator(actual, spareOperators) && !(parent.equals("msub")) && !(parent.equals("msubsup") && !(parent.equals("msup")))) { - actual.detach(); - i--; // move iterator back after detaching so it points to next element + actual.remove(); LOGGER.log(Level.FINE, "Operator {0} removed", actual); } } else { @@ -169,38 +164,46 @@ private void removeSpareOperators(final Element element, final Collection spareOperators) { assert operator != null && spareOperators != null && isOperator(operator); - return (isEnabled(REMOVE_EMPTY_OPERATORS) && operator.getText().isEmpty()) - || (spareOperators.contains(operator.getTextTrim())); + if (!isEnabled(REMOVE_EMPTY_OPERATORS)) { + return false; + } + if (operator.textNodes().isEmpty()) { + return true; + } + String operatorText = ""; + for (TextNode textNode : operator.textNodes()) { + operatorText += textNode.getWholeText().trim(); + } + return spareOperators.contains(operatorText); } private void replaceOperators(final Element element, final Map replacements) { assert element != null && replacements != null; - List operatorsToReplace = new ArrayList<>(); - for (Element operator : element.getDescendants(new ElementFilter(OPERATOR, MATHMLNS))) { - if (replacements.containsKey(operator.getTextTrim())) { - operatorsToReplace.add(operator); + for (Element operator : element.getElementsByTag(OPERATOR)) { + for (TextNode textNode : operator.textNodes()) { + final String oldOperator = textNode.getWholeText().trim(); + final String newOperator = replacements.get(oldOperator); + if (replacements.containsKey(oldOperator)) { + operator.text(newOperator); + LOGGER.log(Level.FINE, "Operator ''{0}'' was replaced by ''{1}''", + new Object[] { oldOperator, newOperator }); + break; + } } } - for (Element operator : operatorsToReplace) { - final String oldOperator = operator.getTextTrim(); - final String newOperator = replacements.get(oldOperator); - operator.setText(newOperator); - LOGGER.log(Level.FINE, "Operator ''{0}'' was replaced by ''{1}''", - new Object[]{oldOperator, newOperator}); - } } private void replaceIdentifiers(final Element ancestor, final Set operators) { assert ancestor != null && operators != null; final List toReplace = new ArrayList<>(); - for (Element element : ancestor.getDescendants(new ElementFilter(IDENTIFIER, MATHMLNS))) { + for (Element element : ancestor.getElementsByTag(IDENTIFIER)) { // TODO: control whole ranges of symbols rather than listed ones - if (operators.contains(element.getTextTrim())) { + if (operators.contains(element.ownText().trim())) { toReplace.add(element); } } for (Element element : toReplace) { - LOGGER.log(Level.FINE, "Creating an operator from {0}", element.getText()); + LOGGER.log(Level.FINE, "Creating an operator from {0}", element.ownText()); replaceElement(element, OPERATOR); } } @@ -208,13 +211,13 @@ private void replaceIdentifiers(final Element ancestor, final Set operat private void operatorsToIdentifiers(final Element ancestor, final Set identifiers) { assert ancestor != null && identifiers != null; final List toReplace = new ArrayList<>(); - for (Element element : ancestor.getDescendants(new ElementFilter(OPERATOR, MATHMLNS))) { - if (identifiers.contains(element.getTextTrim())) { + for (Element element : ancestor.getElementsByTag(OPERATOR)) { + if (identifiers.contains(element.ownText().trim())) { toReplace.add(element); } } for (Element element : toReplace) { - LOGGER.log(Level.FINE, "Creating an identifier from {0}", element.getText()); + LOGGER.log(Level.FINE, "Creating an identifier from {0}", element.ownText()); replaceElement(element, IDENTIFIER); } } diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizer.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizer.java index 11623f2..1ddc1fa 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizer.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizer.java @@ -15,16 +15,14 @@ */ package cz.muni.fi.mir.mathmlcanonicalization.modules; -import static cz.muni.fi.mir.mathmlcanonicalization.modules.AbstractModule.MATHMLNS; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Logger; -import org.jdom2.Document; -import org.jdom2.Element; -import org.jdom2.filter.ElementFilter; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; /** * Handle sub/super/under/over/multi script elements in MathML. @@ -34,10 +32,12 @@ * {@code }, {@code }, {@code } and * {@code } (with children {@code } and * {@code }) elements in MathML. - *
{@code * * x * y * - * }
{@code * * [ @@ -92,7 +93,7 @@ public void execute(final Document doc) { throw new NullPointerException("doc"); } final List toReplace = new ArrayList<>(); - for (Element mfenced : doc.getDescendants(new ElementFilter(FENCED, MATHMLNS))) { + for (Element mfenced : doc.getElementsByTag(FENCED)) { toReplace.add(mfenced); } if (toReplace.isEmpty()) { @@ -107,26 +108,25 @@ public void execute(final Document doc) { private void replaceMfenced(final Element mfencedElement) { assert mfencedElement != null; final char[] separators = getSeparators(mfencedElement); - final Namespace ns = mfencedElement.getNamespace(); - final List children = mfencedElement.getChildren(); + final List children = mfencedElement.children(); final int nChildren = children.size(); final int last = Math.min(separators.length - 1, nChildren - 2); Element insideFence = null; - if (nChildren == 1 && children.get(0).getName().equals(ROW)) { + if (nChildren == 1 && children.get(0).tagName().equals(ROW)) { // we do not want to add another mrow - insideFence = children.get(0).detach(); + insideFence = children.get(0); } else if (nChildren != 0) { - insideFence = new Element(ROW, ns); + insideFence = new Element(ROW); for (int i = 0; i < nChildren; i++) { // add separator if (i > 0 && last >= 0) { // not before first or when blank separators char separatorChar = separators[(i - 1 > last) ? last : i - 1]; String separatorStr = Character.toString(separatorChar); - insideFence.addContent(new Element(OPERATOR, ns).setText(separatorStr)); + insideFence.appendChild(new Element(OPERATOR).text(separatorStr)); } // add original child - insideFence.addContent(children.get(0).detach()); + insideFence.appendChild(children.get(i)); } } replaceMfenced(mfencedElement, insideFence); @@ -134,38 +134,38 @@ private void replaceMfenced(final Element mfencedElement) { private void replaceMfenced(final Element mfencedElement, final Element insideContent) { assert mfencedElement != null; // but insideContent can be null - final Namespace ns = mfencedElement.getNamespace(); - Element replacement = new Element(ROW, ns); + Element replacement = new Element(ROW); String openStr = getProperty(DEFAULT_OPEN); String closeStr = getProperty(DEFAULT_CLOSE); if (openStr.isEmpty() || closeStr.isEmpty()) { LOGGER.warning("Default open or close fence not set"); } - if (!isEnabled(FORCE_DEFAULT_OPEN)) { - openStr = mfencedElement.getAttributeValue(OPEN_FENCE, openStr); + if (!isEnabled(FORCE_DEFAULT_OPEN) && mfencedElement.hasAttr(OPEN_FENCE)) { + openStr = mfencedElement.attr(OPEN_FENCE); } - if (!isEnabled(FORCE_DEFAULT_CLOSE)) { - closeStr = mfencedElement.getAttributeValue(CLOSE_FENCE, closeStr); + if (!isEnabled(FORCE_DEFAULT_CLOSE) && mfencedElement.hasAttr(CLOSE_FENCE)) { + closeStr = mfencedElement.attr(CLOSE_FENCE); } - replacement.addContent(new Element(OPERATOR, ns).setText(openStr)); + replacement.appendChild(new Element(OPERATOR).text(openStr)); if (insideContent != null) { if (isEnabled(ADD_INNER_ROW)) { - replacement.addContent(insideContent); + replacement.appendChild(insideContent); } else { - replacement.addContent(insideContent.removeContent()); + replacement.appendChildren(insideContent.childNodes()); + insideContent.remove(); } } - replacement.addContent(new Element(OPERATOR, ns).setText(closeStr)); + replacement.appendChild(new Element(OPERATOR).text(closeStr)); - final Element parent = mfencedElement.getParentElement(); - final int index = parent.indexOf(mfencedElement); - parent.removeContent(index); + final Element parent = mfencedElement.parent(); + final int index = mfencedElement.siblingIndex(); + mfencedElement.remove(); if (isEnabled(ADD_OUTER_ROW)) { - parent.addContent(index, replacement); + parent.insertChildren(index, replacement); } else { - parent.addContent(index, replacement.removeContent()); + parent.insertChildren(index, replacement.childNodes()); } LOGGER.fine("Mfenced element converted"); } @@ -175,8 +175,8 @@ private char[] getSeparators(final Element element) { if (isEnabled(FORCE_DEFAULT_SEPARATORS)) { return getProperty(DEFAULT_SEPARATORS).toCharArray(); } - return element.getAttributeValue(SEPARATORS, - getProperty(DEFAULT_SEPARATORS)).trim().toCharArray(); + return (element.hasAttr(SEPARATORS) ? element.attr(SEPARATORS).trim().toCharArray() + : getProperty(DEFAULT_SEPARATORS).toCharArray()); } } diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizer.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizer.java index 1fb4a47..ef5f8d2 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizer.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizer.java @@ -15,14 +15,12 @@ */ package cz.muni.fi.mir.mathmlcanonicalization.modules; -import static cz.muni.fi.mir.mathmlcanonicalization.modules.AbstractModule.MATHMLNS; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; -import org.jdom2.Document; -import org.jdom2.Element; -import org.jdom2.Parent; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; /** * Normalize the number of mrow elements in MathML. @@ -31,21 +29,27 @@ * Well-formed MathML, already processed by other modules (especially * ElementMinimizer, MfencedReplacer and FunctionNormalizer) * Output - * The original code with changes in mrow elements: + * The original code with changes in mrow elements: + * * added mrow elements to places, where detected fenced formulae (and not * already encapsulated in mrow) * removed redundant mrow elements in unneeded grouping – e.q. parents * requiring only one child element accept any number of elements so the mrow * tag is not needed (see example) or grouping with only presentation purpose - * + * + * * Example + * * {@code * * * - * 1 * - * } is transformed to + * }
{@code * * * - * 1 * - * }
{@code * * - @@ -95,8 +99,8 @@ public void execute(final Document doc) { if (doc == null) { throw new NullPointerException("doc"); } - traverseRemoval(doc.getRootElement()); - traverseAddition(doc.getRootElement()); + traverseRemoval(doc.root()); + traverseAddition(doc.root()); } /** @@ -106,7 +110,7 @@ public void execute(final Document doc) { */ private void traverseAddition(final Element element) { assert element != null; - final List children = new ArrayList<>(element.getChildren()); + final List children = new ArrayList<>(element.children()); for (Element child : children) { traverseAddition(child); } @@ -120,11 +124,11 @@ private void traverseAddition(final Element element) { */ private void traverseRemoval(final Element element) { assert element != null; - final List children = new ArrayList<>(element.getChildren()); + final List children = new ArrayList<>(element.children()); for (Element child : children) { traverseRemoval(child); } - if (element.getName().equals(ROW)) { + if (element.tagName().equals(ROW)) { checkRemoval(element); } } @@ -135,13 +139,12 @@ private void traverseRemoval(final Element element) { * @param mrowElement the mrow element */ private void checkRemoval(final Element mrowElement) { - assert mrowElement != null && mrowElement.getName().equals(ROW); - final Parent parent = mrowElement.getParent(); - if (!(parent instanceof Element)) { + assert mrowElement != null && mrowElement.tagName().equals(ROW); + if (!mrowElement.hasParent()) { return; // no parent element } - final Element parentElement = (Element) parent; - final List children = mrowElement.getChildren(); + final Element parentElement = mrowElement.parent(); + final List children = mrowElement.children(); if (children.size() <= 1) { removeElement(mrowElement, parentElement); @@ -149,7 +152,7 @@ private void checkRemoval(final Element mrowElement) { return; } - final String childCountPropertyName = CHILD_COUNT_PREFIX + parentElement.getName(); + final String childCountPropertyName = CHILD_COUNT_PREFIX + parentElement.tagName(); if (!isProperty(childCountPropertyName)) { return; // unknown parent element } @@ -159,37 +162,38 @@ private void checkRemoval(final Element mrowElement) { childCount = Integer.parseInt(childCountProperty); } catch (NumberFormatException e) { LOGGER.log(Level.WARNING, - "\"{0}\" is not an integer for \"" + childCountPropertyName + "\", property ignored", childCountProperty); + "\"{0}\" is not an integer for \"" + childCountPropertyName + "\", property ignored", + childCountProperty); return; } if (childCount == 1 || // parent can accept any number of elements so we can remove mrow - children.size() + parentElement.getChildren().size() - 1 == childCount) { + children.size() + parentElement.childNodeSize() - 1 == childCount) { removeElement(mrowElement, parentElement); } } private static void removeElement(final Element element, final Element parent) { assert element != null && parent != null; - parent.addContent(parent.indexOf(element), element.cloneContent()); - element.detach(); + parent.insertChildren(element.siblingIndex(), element.childNodes()); + element.remove(); } /** * Test if element is an operator representing an opening or closing * parenthesis according to properties * - * @param element element to test + * @param element element to test * @param propertyName name of property specifiyng opening or closing - * parentheses + * parentheses * @return true if element is a parentheses according to propertyName */ private Boolean isParenthesis(final Element element, final String propertyName) { assert element != null && propertyName != null && isProperty(propertyName); - if (!element.getName().equals(OPERATOR)) { + if (!element.tagName().equals(OPERATOR)) { return false; } - return getPropertySet(propertyName).contains(element.getTextNormalize()); + return getPropertySet(propertyName).contains(element.ownText().trim()); } /** @@ -197,20 +201,17 @@ private Boolean isParenthesis(final Element element, final String propertyName) * of MfencedReplacer * * @param siblings children of parent element - * @param fenced list of elements inside parentheses, children of parent - * element - * @param opening opening parenthesis, child of parent element - * @param closing closing parenthesis, child of parent element + * @param fenced list of elements inside parentheses, children of parent + * element + * @param opening opening parenthesis, child of parent element + * @param closing closing parenthesis, child of parent element */ private void wrapFenced(final List siblings, final List fenced, final Element opening, final Element closing) { assert siblings != null && fenced != null && opening != null; - final Element parent = opening.getParentElement(); - assert closing != null && closing.getParentElement().equals(parent); - for (Element e : fenced) { - e.detach(); - } - final int openingIndex = parent.indexOf(opening); + final Element parent = opening.parent(); + assert closing != null && closing.parent().equals(parent); + final int openingIndex = opening.siblingIndex(); // Element to be placed inside parentheses. // If null, the original 'fenced' list will be used. @@ -220,35 +221,33 @@ private void wrapFenced(final List siblings, final List fenced } else if (fenced.size() == 1) { innerElement = fenced.get(0); // no need to wrap, just one element } else { - innerElement = new Element(ROW, MATHMLNS); - innerElement.addContent(fenced); + innerElement = new Element(ROW); + innerElement.appendChildren(fenced); LOGGER.fine("Inner mrow added"); } - if (((parent.getName().equals(ROW) + if (((parent.tagName().equals(ROW) && siblings.get(0) == opening && siblings.get(siblings.size() - 1) == closing)) || !isEnabled(WRAP_OUTSIDE)) { // will not wrap outside in mrow if (innerElement == null) { - parent.addContent(openingIndex + 1, fenced); + parent.insertChildren(openingIndex + 1, fenced); } else { - parent.addContent(openingIndex + 1, innerElement); + parent.insertChildren(openingIndex + 1, innerElement); } return; } // wrap outside in mrow - opening.detach(); - closing.detach(); - final Element outerMrowElement = new Element(ROW, MATHMLNS); - outerMrowElement.addContent(opening); + final Element outerMrowElement = new Element(ROW); + outerMrowElement.appendChild(opening); if (innerElement != null) { - outerMrowElement.addContent(innerElement); + outerMrowElement.appendChild(innerElement); } else { - outerMrowElement.addContent(fenced); + outerMrowElement.appendChildren(fenced); } - outerMrowElement.addContent(closing); - parent.addContent(openingIndex, outerMrowElement); + outerMrowElement.appendChild(closing); + parent.insertChildren(openingIndex, outerMrowElement); LOGGER.fine("Outer mrow added"); } @@ -257,12 +256,11 @@ private void wrapFenced(final List siblings, final List fenced */ private void checkAddition(final Element element) { assert element != null; - final Parent parent = element.getParent(); - if (!(parent instanceof Element)) { + if (!element.hasParent()) { return; } - final Element parentElement = (Element) parent; - final List siblings = parentElement.getChildren(); + final Element parentElement = element.parent(); + final List siblings = parentElement.children(); if (isParenthesis(element, OPENING)) { // Need to find matching closing par and register the elements between diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizer.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizer.java index 4c43f85..16a9bf4 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizer.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizer.java @@ -15,7 +15,6 @@ */ package cz.muni.fi.mir.mathmlcanonicalization.modules; -import static cz.muni.fi.mir.mathmlcanonicalization.modules.AbstractModule.MATHMLNS; import java.text.Normalizer; import java.util.ArrayList; import java.util.Collection; @@ -25,12 +24,11 @@ import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; -import org.jdom2.Content; -import org.jdom2.Document; -import org.jdom2.Element; -import org.jdom2.Text; -import org.jdom2.filter.ContentFilter; -import org.jdom2.filter.ElementFilter; + +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.nodes.Node; +import org.jsoup.nodes.TextNode; /** * Normalize the way to express an function applied to arguments in MathML. @@ -72,7 +70,7 @@ public void execute(final Document doc) { if (doc == null) { throw new NullPointerException("doc"); } - final Element root = doc.getRootElement(); + final Element root = doc.root(); // TODO: convert Unicode superscripts (supX entities) to msup etc. final String normalizerFormStr = getProperty(NORMALIZATION_FORM); @@ -125,40 +123,37 @@ private void unifyOperators(final Element ancestor) { private void normalizeUnicode(final Element ancestor, final Normalizer.Form form) { assert ancestor != null && form != null; - final List texts = new ArrayList<>(); - final ContentFilter textFilter = new ContentFilter(ContentFilter.TEXT); - for (Content text : ancestor.getContent(textFilter)) { - texts.add((Text) text); - } - for (Element element : ancestor.getDescendants(new ElementFilter())) { - for (Content text : element.getContent(textFilter)) { - texts.add((Text) text); + + final List texts = new ArrayList<>(); + for (Element descendant : ancestor.getAllElements()) { + for (Node text : descendant.textNodes()) { + texts.add(text); } } - for (Text text : texts) { - if (Normalizer.isNormalized(text.getText(), form)) { + + for (Node text : texts) { + final String textString = text.attr("#text"); + if (Normalizer.isNormalized(textString, form)) { continue; } - final String normalizedString = Normalizer.normalize(text.getText(), form); + text.attr("#text", Normalizer.normalize(textString, form)); LOGGER.log(Level.FINE, "Text ''{0}'' normalized to ''{1}''", - new Object[]{text.getText(), normalizedString}); - text.setText(normalizedString); - assert Normalizer.isNormalized(text.getText(), form); + new Object[] { textString, text.attr("#text") }); + assert Normalizer.isNormalized(text.attr("#text"), form); } } private void removeSpareOperators(final Element element, final Collection spareOperators) { assert element != null && spareOperators != null && !spareOperators.isEmpty(); - final List children = element.getChildren(); + final List children = element.children(); for (int i = 0; i < children.size(); i++) { final Element actual = children.get(i); // actual element if (isOperator(actual)) { - //Keep special case where asterisk is by itself in a subscript - String parent = actual.getParentElement().getName(); + // Keep special case where asterisk is by itself in a subscript + String parent = actual.parent().tagName(); if (isSpareOperator(actual, spareOperators) && !(parent.equals("msub")) && !(parent.equals("msubsup") && !(parent.equals("msup")))) { - actual.detach(); - i--; // move iterator back after detaching so it points to next element + actual.remove(); LOGGER.log(Level.FINE, "Operator {0} removed", actual); } } else { @@ -169,38 +164,46 @@ private void removeSpareOperators(final Element element, final Collection spareOperators) { assert operator != null && spareOperators != null && isOperator(operator); - return (isEnabled(REMOVE_EMPTY_OPERATORS) && operator.getText().isEmpty()) - || (spareOperators.contains(operator.getTextTrim())); + if (!isEnabled(REMOVE_EMPTY_OPERATORS)) { + return false; + } + if (operator.textNodes().isEmpty()) { + return true; + } + String operatorText = ""; + for (TextNode textNode : operator.textNodes()) { + operatorText += textNode.getWholeText().trim(); + } + return spareOperators.contains(operatorText); } private void replaceOperators(final Element element, final Map replacements) { assert element != null && replacements != null; - List operatorsToReplace = new ArrayList<>(); - for (Element operator : element.getDescendants(new ElementFilter(OPERATOR, MATHMLNS))) { - if (replacements.containsKey(operator.getTextTrim())) { - operatorsToReplace.add(operator); + for (Element operator : element.getElementsByTag(OPERATOR)) { + for (TextNode textNode : operator.textNodes()) { + final String oldOperator = textNode.getWholeText().trim(); + final String newOperator = replacements.get(oldOperator); + if (replacements.containsKey(oldOperator)) { + operator.text(newOperator); + LOGGER.log(Level.FINE, "Operator ''{0}'' was replaced by ''{1}''", + new Object[] { oldOperator, newOperator }); + break; + } } } - for (Element operator : operatorsToReplace) { - final String oldOperator = operator.getTextTrim(); - final String newOperator = replacements.get(oldOperator); - operator.setText(newOperator); - LOGGER.log(Level.FINE, "Operator ''{0}'' was replaced by ''{1}''", - new Object[]{oldOperator, newOperator}); - } } private void replaceIdentifiers(final Element ancestor, final Set operators) { assert ancestor != null && operators != null; final List toReplace = new ArrayList<>(); - for (Element element : ancestor.getDescendants(new ElementFilter(IDENTIFIER, MATHMLNS))) { + for (Element element : ancestor.getElementsByTag(IDENTIFIER)) { // TODO: control whole ranges of symbols rather than listed ones - if (operators.contains(element.getTextTrim())) { + if (operators.contains(element.ownText().trim())) { toReplace.add(element); } } for (Element element : toReplace) { - LOGGER.log(Level.FINE, "Creating an operator from {0}", element.getText()); + LOGGER.log(Level.FINE, "Creating an operator from {0}", element.ownText()); replaceElement(element, OPERATOR); } } @@ -208,13 +211,13 @@ private void replaceIdentifiers(final Element ancestor, final Set operat private void operatorsToIdentifiers(final Element ancestor, final Set identifiers) { assert ancestor != null && identifiers != null; final List toReplace = new ArrayList<>(); - for (Element element : ancestor.getDescendants(new ElementFilter(OPERATOR, MATHMLNS))) { - if (identifiers.contains(element.getTextTrim())) { + for (Element element : ancestor.getElementsByTag(OPERATOR)) { + if (identifiers.contains(element.ownText().trim())) { toReplace.add(element); } } for (Element element : toReplace) { - LOGGER.log(Level.FINE, "Creating an identifier from {0}", element.getText()); + LOGGER.log(Level.FINE, "Creating an identifier from {0}", element.ownText()); replaceElement(element, IDENTIFIER); } } diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizer.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizer.java index 11623f2..1ddc1fa 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizer.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizer.java @@ -15,16 +15,14 @@ */ package cz.muni.fi.mir.mathmlcanonicalization.modules; -import static cz.muni.fi.mir.mathmlcanonicalization.modules.AbstractModule.MATHMLNS; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Logger; -import org.jdom2.Document; -import org.jdom2.Element; -import org.jdom2.filter.ElementFilter; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; /** * Handle sub/super/under/over/multi script elements in MathML. @@ -34,10 +32,12 @@ * {@code }, {@code }, {@code } and * {@code } (with children {@code } and * {@code }) elements in MathML. - *
{@code * * @@ -53,7 +51,9 @@ * * * }
{@code * * @@ -79,19 +79,6 @@ public class UnaryOperatorRemover extends AbstractModule implements DOMModule { private static final String PM_UNARY_OPERATORS_TO_REMOVE = "pmathremoveunaryoperators"; private static final String CM_UNARY_OPERATORS_TO_REMOVE = "cmathremoveunaryoperators"; - private static final XPathExpression xpPMUnaryOperators = XPathFactory.instance().compile( - "//mathml:mo[count(preceding-sibling::*) = 0]|//mo[count(preceding-sibling::*) = 0]", - Filters.element(), null, - Namespace.getNamespace("mathml", "http://www.w3.org/1998/Math/MathML")); - private static final XPathExpression xpPMSecondOperatorInDoubleOperators = XPathFactory.instance().compile( - "//mathml:mo[preceding-sibling::*[1][self::mathml:mo]]|//mo[preceding-sibling::*[1][self::mo]]", - Filters.element(), null, - Namespace.getNamespace("mathml", "http://www.w3.org/1998/Math/MathML")); - private static final XPathExpression xpCMApplyWithTwoChildrens = XPathFactory.instance().compile( - "//mathml:apply[count(child::*)=2]|//apply[count(child::*)=2]", - Filters.element(), null, - Namespace.getNamespace("mathml", "http://www.w3.org/1998/Math/MathML")); - public UnaryOperatorRemover() { declareProperty(PM_UNARY_OPERATORS_TO_REMOVE); declareProperty(CM_UNARY_OPERATORS_TO_REMOVE); @@ -104,7 +91,7 @@ public void execute(final Document doc) { throw new NullPointerException("doc"); } - final Element root = doc.getRootElement(); + final Element root = doc.root(); removeUnaryOperator(root); @@ -118,26 +105,27 @@ private void removeUnaryOperator(final Element rootElem) { final Set pmCharsToRemove = getPropertySet(PM_UNARY_OPERATORS_TO_REMOVE); if (!pmCharsToRemove.isEmpty()) { - - // Unary operators - List pmElemsToRemove = xpPMUnaryOperators.evaluate(rootElem); - for (Element toRemove : pmElemsToRemove) { - if (pmCharsToRemove.contains(toRemove.getValue())) { - LOGGER.finest("Removing element '" + toRemove.getQualifiedName() + "' with value '" + toRemove.getValue() + "'."); - toRemove.detach(); - } else { - LOGGER.finest("Skipping element '" + toRemove.getQualifiedName() + "' with value '" + toRemove.getValue() + "'."); + List pmElemsToRemove = new ArrayList<>(); + for (Element operator : rootElem.getElementsByTag(OPERATOR)) { + int index = operator.elementSiblingIndex(); + if (index != 0 && operator.previousElementSibling().tagName().equals(OPERATOR)) { + System.out.println(operator.text()); + index = 0; + } + if (index == 0) { + pmElemsToRemove.add(operator); } } - // Second of the double operators - pmElemsToRemove = xpPMSecondOperatorInDoubleOperators.evaluate(rootElem); + // Unary operators for (Element toRemove : pmElemsToRemove) { - if (pmCharsToRemove.contains(toRemove.getValue())) { - LOGGER.finest("Removing the second element out of double elements '" + toRemove.getQualifiedName() + "' with value '" + toRemove.getValue() + "'."); - toRemove.detach(); + if (pmCharsToRemove.contains(toRemove.text())) { + LOGGER.finest( + "Removing element '" + toRemove.tagName() + "' with value '" + toRemove.text() + "'."); + toRemove.remove(); } else { - LOGGER.finest("Skipping the second element out of double elements '" + toRemove.getQualifiedName() + "' with value '" + toRemove.getValue() + "'."); + LOGGER.finest( + "Skipping element '" + toRemove.tagName() + "' with value '" + toRemove.text() + "'."); } } @@ -146,19 +134,25 @@ private void removeUnaryOperator(final Element rootElem) { LOGGER.finer("RemoveUnaryOperator Presentation MathML finished"); /* Content MathML */ - List applyWithTwoChildrens = xpCMApplyWithTwoChildrens.evaluate(rootElem); + List applyWithTwoChildrens = new ArrayList<>(); + for (Element element : rootElem.getElementsByTag("apply")) { + if (element.childrenSize() == 2) { + applyWithTwoChildrens.add(element); + } + } + final Set cmOperatorsToRemove = getPropertySet(CM_UNARY_OPERATORS_TO_REMOVE); for (Element applyElem : applyWithTwoChildrens) { - Element operator = applyElem.getChildren().get(0); - if (cmOperatorsToRemove.contains(operator.getName())) { - Element operand = applyElem.getChildren().get(1); - LOGGER.finest("Removing operator '" + operator.getQualifiedName() + "' for operand '" + operand.getQualifiedName() + "'."); - operand.detach(); - Element parent = applyElem.getParentElement(); - int applyElemIndex = parent.indexOf(applyElem); - parent.setContent(applyElemIndex, operand); - applyElem.detach(); + Element operator = applyElem.children().get(0); + if (cmOperatorsToRemove.contains(operator.tagName())) { + Element operand = applyElem.children().get(1); + LOGGER.finest( + "Removing operator '" + operator.tagName() + "' for operand '" + operand.tagName() + "'."); + Element parent = applyElem.parent(); + int applyElemIndex = applyElem.siblingIndex(); + parent.insertChildren(applyElemIndex, operand); + applyElem.remove(); } } diff --git a/src/main/resources/cz/muni/fi/mir/mathmlcanonicalization/default-config.xml b/src/main/resources/cz/muni/fi/mir/mathmlcanonicalization/default-config.xml index 24e3b82..72fa7dd 100644 --- a/src/main/resources/cz/muni/fi/mir/mathmlcanonicalization/default-config.xml +++ b/src/main/resources/cz/muni/fi/mir/mathmlcanonicalization/default-config.xml @@ -18,6 +18,7 @@ closure nargs occurrence open close + xmlns diff --git a/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/MathMLCanonicalizerTest.java b/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/MathMLCanonicalizerTest.java index 1f38941..dc752a4 100644 --- a/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/MathMLCanonicalizerTest.java +++ b/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/MathMLCanonicalizerTest.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; +import java.lang.reflect.InvocationTargetException; import java.nio.charset.StandardCharsets; import java.util.logging.Logger; @@ -47,8 +48,9 @@ public MathMLCanonicalizerTest() { } @Test - public void testLoadingProperties() throws - UnsupportedEncodingException, IOException, JDOMException, ModuleException { + public void testLoadingProperties() + throws UnsupportedEncodingException, IOException, JDOMException, ModuleException, IllegalArgumentException, + InvocationTargetException, NoSuchMethodException, SecurityException { final String config = XML_DECLARATION + "" + " value" @@ -74,6 +76,7 @@ public void shouldCreateDefaultCanonicalizer() throws Exception { MathMLCanonicalizer canonicalizer = MathMLCanonicalizer.getDefaultCanonicalizer(); for (InputStream resource : ModuleTestResources.getAllTestResources()) { + System.out.println(resource); canonicalizer.canonicalize(resource, new ByteArrayOutputStream()); // we don't check result; it just should not throw an exception } diff --git a/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/AbstractModuleTest.java b/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/AbstractModuleTest.java index 6d143a6..510964d 100644 --- a/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/AbstractModuleTest.java +++ b/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/AbstractModuleTest.java @@ -15,22 +15,19 @@ */ package cz.muni.fi.mir.mathmlcanonicalization.modules; -import cz.muni.fi.mir.mathmlcanonicalization.Settings; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; import java.util.logging.Level; import java.util.logging.Logger; -import org.custommonkey.xmlunit.XMLTestCase; -import org.custommonkey.xmlunit.XMLUnit; -import org.jdom2.Document; -import org.jdom2.JDOMException; -import org.jdom2.input.SAXBuilder; -import org.jdom2.output.XMLOutputter; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; + import org.junit.jupiter.api.*; -import org.xml.sax.SAXException; /** * Abstract class to allow descendants to simple compare desired and produced @@ -50,42 +47,47 @@ protected void setPrintProcessed(boolean shouldPrintProcessed) { } protected void testXML(Module instance, String testFile) { - testXML(instance, testFile, true); + testHTML(instance, testFile, true); } - protected void testXML(Module instance, String testFile, boolean testIdempotence) { - final InputStream processed = getProcessed(instance, testFile, shouldPrintProcessed); - final InputStream canonical = getCanonical(testFile); - XMLUnit.setIgnoreWhitespace(true); + protected void testHTML(Module instance, String testFile, boolean testIdempotence) { try { - new XMLTestCase() { - }.assertXMLEqual(getReader(canonical), getReader(processed)); - } catch (SAXException ex) { - LOGGER.log(Level.SEVERE, "cannot compare XML streams", ex); - } catch (IOException ex) { - LOGGER.log(Level.SEVERE, "problem with streams", ex); + final String processed = new String(getProcessed(instance, testFile, shouldPrintProcessed).readAllBytes(), + StandardCharsets.UTF_8); + final String canonical = new String(getCanonical(testFile).readAllBytes(), StandardCharsets.UTF_8); + + assertEquals(normalize(canonical), normalize(processed)); + } catch (IOException e) { + } + if (testIdempotence) { testIdempotence(instance, testFile); } } protected void testIdempotence(Module instance, String testFile) { - final InputStream processed = getProcessed(instance, testFile, false); - final InputStream processedTwice = getProcessed( - instance, getProcessed(instance, testFile, false), false); try { - new XMLTestCase() { - }.assertXMLEqual(getReader(processed), getReader(processedTwice)); - } catch (SAXException ex) { - LOGGER.log(Level.SEVERE, "cannot compare XML streams", ex); - } catch (IOException ex) { - LOGGER.log(Level.SEVERE, "problem with streams", ex); + final String processed = new String(getProcessed(instance, testFile, false).readAllBytes(), + StandardCharsets.UTF_8); + final String processedTwice = new String( + getProcessed(instance, getProcessed(instance, testFile, false), false).readAllBytes(), + StandardCharsets.UTF_8); + + assertEquals(normalize(processed), normalize(processedTwice)); + } catch (IOException e) { + } } + private static String normalize(String original) { + return original.replaceAll("(^\\s+)|(\\s*\n+\\s+)", "") // remove whitespaces at line start & newlines + .replaceAll("(>)(\\s+)(<)", "$1$3") // remove white space between tags + .toLowerCase(); + } + private InputStream getProcessed(Module instance, String testFile, boolean shouldPrint) { - InputStream resourceStream = this.getClass().getResourceAsStream(testFile + ".original.xml"); + InputStream resourceStream = this.getClass().getResourceAsStream(testFile + ".original.html"); return getProcessed(instance, resourceStream, shouldPrint); } @@ -93,7 +95,7 @@ private InputStream getProcessed(Module instance, String testFile, boolean shoul * Get input processed by specified module. * * @param instance a configured instance of the tested module - * @param in input stream with original XML document + * @param in input stream with original XML document * @return input stream with processed input */ private InputStream getProcessed(Module instance, InputStream in, boolean shouldPrint) { @@ -120,16 +122,12 @@ private InputStream getProcessed(StreamModule instance, InputStream in, boolean } private InputStream getProcessed(DOMModule instance, InputStream in, boolean shouldPrint) { - SAXBuilder builder = Settings.setupSAXBuilder(); Document doc; - XMLOutputter serializer = new XMLOutputter(); ByteArrayOutputStream output = new ByteArrayOutputStream(); try { - doc = builder.build(in); + doc = Jsoup.parse(in, null, ""); instance.execute(doc); - serializer.output(doc, output); - } catch (JDOMException ex) { - LOGGER.log(Level.SEVERE, "cannot build document", ex); + output.write(doc.html().getBytes("UTF-8")); } catch (IOException ex) { LOGGER.log(Level.SEVERE, "cannot convert between stream and DOM", ex); } catch (ModuleException ex) { @@ -142,11 +140,7 @@ private InputStream getProcessed(DOMModule instance, InputStream in, boolean sho } private InputStream getCanonical(String testFile) { - return this.getClass().getResourceAsStream(testFile + ".canonical.xml"); - } - - private InputStreamReader getReader(InputStream inputStream) { - return new InputStreamReader(inputStream); + return this.getClass().getResourceAsStream(testFile + ".canonical.html"); } private InputStream getInputStream(ByteArrayOutputStream output) { diff --git a/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest.java b/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest.java index efbf92a..33dbcb8 100644 --- a/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest.java +++ b/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest.java @@ -41,6 +41,7 @@ public static void setUpBeforeAll() { DEFAULT_INSTANCE.setProperty("keepAttributes.interval", "closure"); DEFAULT_INSTANCE.setProperty("keepAttributes.declare", "nargs occurrence"); DEFAULT_INSTANCE.setProperty("keepAttributes.mfenced", "open close"); + DEFAULT_INSTANCE.setProperty("keepAttributes.math", "xmlns"); } @Test diff --git a/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ModuleTestResources.java b/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ModuleTestResources.java index 5c89fd7..248b417 100644 --- a/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ModuleTestResources.java +++ b/src/test/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ModuleTestResources.java @@ -4,7 +4,7 @@ import java.util.Iterator; /** - * Class gives access to all *.original.xml test resources. + * Class gives access to all *.original.html test resources. */ public class ModuleTestResources { @@ -32,46 +32,47 @@ public void remove() { * Test resources relative to this class package. */ private static final String[] TEST_RESOURCES = { - "ElementMinimizerTest/attributes.original.xml", - "ElementMinimizerTest/comments.original.xml", - "ElementMinimizerTest/mfrac.original.xml", - "ElementMinimizerTest/mphantom.original.xml", - "FunctionNormalizerTest/function2.original.xml", - "FunctionNormalizerTest/function3.original.xml", - "FunctionNormalizerTest/function.original.xml", - "FunctionNormalizerTest/sin.original.xml", - "MfencedReplacerTest/blank-separators.original.xml", - "MfencedReplacerTest/interval-configured.original.xml", - "MfencedReplacerTest/interval.original.xml", - "MfencedReplacerTest/nested.original.xml", - "MfencedReplacerTest/no-children.original.xml", - "MfencedReplacerTest/sequence-separators.original.xml", - "MrowNormalizerTest/configured.original.xml", - "MrowNormalizerTest/frac.original.xml", - "MrowNormalizerTest/interval.original.xml", - "MrowNormalizerTest/mixed1.original.xml", - "MrowNormalizerTest/mixed2.original.xml", - "MrowNormalizerTest/mixed3.original.xml", - "MrowNormalizerTest/mixed4.original.xml", - "MrowNormalizerTest/parentheses1.original.xml", - "MrowNormalizerTest/parentheses2.original.xml", - "MrowNormalizerTest/parentheses3.original.xml", - "MrowNormalizerTest/parentheses4.original.xml", - "MrowNormalizerTest/parentheses5.original.xml", - "MrowNormalizerTest/sqrt.original.xml", - "MrowNormalizerTest/tuple.original.xml", - "OperatorNormalizerTest/identifier-replacement.original.xml", - "OperatorNormalizerTest/multiplication-blank.original.xml", - "OperatorNormalizerTest/multiplication-cdot.original.xml", - "OperatorNormalizerTest/operator2identifier.original.xml", - "OperatorNormalizerTest/operator-unification.original.xml", - "OperatorNormalizerTest/unicode.original.xml", - "ScriptNormalizerTest/complexsubsup.original.xml", - "ScriptNormalizerTest/invalid-scripts.original.xml", - "ScriptNormalizerTest/nested-sub-sup.original.xml", - "ScriptNormalizerTest/sub-sup.original.xml", - "ScriptNormalizerTest/subsup.original.xml", - "ScriptNormalizerTest/underover.original.xml" + "ElementMinimizerTest/attributes.original.html", + "ElementMinimizerTest/comments.original.html", + "ElementMinimizerTest/mfrac.original.html", + "ElementMinimizerTest/mglyph.original.html", + "ElementMinimizerTest/mphantom.original.html", + "FunctionNormalizerTest/function2.original.html", + "FunctionNormalizerTest/function3.original.html", + "FunctionNormalizerTest/function.original.html", + "FunctionNormalizerTest/sin.original.html", + "MfencedReplacerTest/blank-separators.original.html", + "MfencedReplacerTest/interval-configured.original.html", + "MfencedReplacerTest/interval.original.html", + "MfencedReplacerTest/nested.original.html", + "MfencedReplacerTest/no-children.original.html", + "MfencedReplacerTest/sequence-separators.original.html", + "MrowNormalizerTest/configured.original.html", + "MrowNormalizerTest/frac.original.html", + "MrowNormalizerTest/interval.original.html", + "MrowNormalizerTest/mixed1.original.html", + "MrowNormalizerTest/mixed2.original.html", + "MrowNormalizerTest/mixed3.original.html", + "MrowNormalizerTest/mixed4.original.html", + "MrowNormalizerTest/parentheses1.original.html", + "MrowNormalizerTest/parentheses2.original.html", + "MrowNormalizerTest/parentheses3.original.html", + "MrowNormalizerTest/parentheses4.original.html", + "MrowNormalizerTest/parentheses5.original.html", + "MrowNormalizerTest/sqrt.original.html", + "MrowNormalizerTest/tuple.original.html", + "OperatorNormalizerTest/identifier-replacement.original.html", + "OperatorNormalizerTest/multiplication-blank.original.html", + "OperatorNormalizerTest/multiplication-cdot.original.html", + "OperatorNormalizerTest/operator2identifier.original.html", + "OperatorNormalizerTest/operator-unification.original.html", + "OperatorNormalizerTest/unicode.original.html", + "ScriptNormalizerTest/complexsubsup.original.html", + "ScriptNormalizerTest/invalid-scripts.original.html", + "ScriptNormalizerTest/nested-sub-sup.original.html", + "ScriptNormalizerTest/sub-sup.original.html", + "ScriptNormalizerTest/subsup.original.html", + "ScriptNormalizerTest/underover.original.html" }; public static Iterable getAllTestResources() { diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.canonical.html new file mode 100644 index 0000000..c3bee6e --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.canonical.html @@ -0,0 +1,17 @@ + + + + + + + a + b + + = + + a + b + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.canonical.xml deleted file mode 100644 index 2efb9d5..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.canonical.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - a - b - - = - - a - b - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.original.html new file mode 100644 index 0000000..e1948bf --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.original.html @@ -0,0 +1,17 @@ + + + + + + + a + b + + = + + a + b + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.original.xml deleted file mode 100644 index 3785c0a..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/attributes.original.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - a - b - - = - - a - b - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.canonical.html new file mode 100644 index 0000000..d5a45d8 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.canonical.html @@ -0,0 +1,15 @@ + + + + + + + + x + + + z + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.canonical.xml deleted file mode 100644 index 21e2e92..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.canonical.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - x - + - z - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.original.html new file mode 100644 index 0000000..33c4c2d --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.original.html @@ -0,0 +1,19 @@ + + + + + + + + x + + + + z + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.original.xml deleted file mode 100644 index 87575ce..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/comments.original.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - x - - + - z - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.canonical.html new file mode 100644 index 0000000..0b37928 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.canonical.html @@ -0,0 +1,12 @@ + + + + + + + a + b + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.canonical.xml deleted file mode 100644 index 1410ef2..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.canonical.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - a - b - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.original.html new file mode 100644 index 0000000..b921d1c --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.original.html @@ -0,0 +1,12 @@ + + + + + + + a + b + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.original.xml deleted file mode 100644 index 96a6215..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mfrac.original.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - a - b - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.canonical.html new file mode 100644 index 0000000..c107624 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.canonical.html @@ -0,0 +1,15 @@ + + + + + + + num1 + plus + num2 + eqls + rslt + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.canonical.xml deleted file mode 100644 index 20bd9c1..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.canonical.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - num1 - plus - num2 - eqls - rslt - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.original.html new file mode 100644 index 0000000..1d12849 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.original.html @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.original.xml deleted file mode 100644 index a1ebe57..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mglyph.original.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.canonical.html new file mode 100644 index 0000000..5525d2b --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.canonical.html @@ -0,0 +1,22 @@ + + + + + + + + x + + + y + + + z + + + x + + + z + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.canonical.xml deleted file mode 100644 index d3ab594..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.canonical.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - x - + - y - + - z - - - x - + - z - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.original.html new file mode 100644 index 0000000..8a138dc --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.original.html @@ -0,0 +1,26 @@ + + + + + + + + x + + + y + + + z + + + x + + + + y + + + + z + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.original.xml deleted file mode 100644 index 3018c73..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizerTest/mphantom.original.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - x - + - y - + - z - - - x - - + - y - - + - z - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.canonical.html new file mode 100644 index 0000000..4e56629 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.canonical.html @@ -0,0 +1,14 @@ + + + + + + f + + ( + x + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.canonical.xml deleted file mode 100644 index 6a8fdc8..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.canonical.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - f - - ( - x - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.original.html new file mode 100644 index 0000000..4b0cde1 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.original.html @@ -0,0 +1,15 @@ + + + + + + f + + + ( + x + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.original.xml deleted file mode 100644 index 1e6698f..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function.original.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - f - - - ( - x - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.canonical.html new file mode 100644 index 0000000..2fe2ff4 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.canonical.html @@ -0,0 +1,24 @@ + + + + + + f + + ( + ( + a + + + b + ) + / + ( + c + - + d + ) + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.canonical.xml deleted file mode 100644 index 782e0d1..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.canonical.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - f - - ( - ( - a - + - b - ) - / - ( - c - - - d - ) - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.original.html new file mode 100644 index 0000000..3d54d31 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.original.html @@ -0,0 +1,23 @@ + + + + + + f + + + ( + a + + + b + ) + / + ( + c + - + d + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.original.xml deleted file mode 100644 index ae0fd29..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function2.original.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - f - - - ( - a - + - b - ) - / - ( - c - - - d - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.canonical.html new file mode 100644 index 0000000..edc456e --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.canonical.html @@ -0,0 +1,18 @@ + + + + + + f + + ( + a + + + b + ) + + + + c + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.canonical.xml deleted file mode 100644 index b8f3afe..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.canonical.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - f - - ( - a - + - b - ) - - + - c - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.original.html new file mode 100644 index 0000000..f71b016 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.original.html @@ -0,0 +1,17 @@ + + + + + + f + + ( + a + + + b + ) + + + c + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.original.xml deleted file mode 100644 index 629ab21..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/function3.original.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - f - - ( - a - + - b - ) - + - c - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.canonical.html new file mode 100644 index 0000000..93937e4 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.canonical.html @@ -0,0 +1,14 @@ + + + + + + sin + + ( + x + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.canonical.xml deleted file mode 100644 index a5dc1d2..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.canonical.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - sin - - ( - x - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.original.html new file mode 100644 index 0000000..12193b1 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.original.html @@ -0,0 +1,11 @@ + + + + + + sin + + x + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.original.xml deleted file mode 100644 index a21c13b..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/FunctionNormalizerTest/sin.original.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - sin - - x - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.canonical.html new file mode 100644 index 0000000..80ac4a9 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.canonical.html @@ -0,0 +1,16 @@ + + + + + + + ( + + x + y + + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.canonical.xml deleted file mode 100644 index 4398f81..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.canonical.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - ( - - x - y - - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.original.html new file mode 100644 index 0000000..48e19a9 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.original.html @@ -0,0 +1,12 @@ + + + + + + + x + y + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.original.xml deleted file mode 100644 index 15150d4..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/blank-separators.original.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - x - y - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.canonical.html new file mode 100644 index 0000000..ebec268 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.canonical.html @@ -0,0 +1,15 @@ + + + + + + [[ + + x + ; + y + + ]] + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.canonical.xml deleted file mode 100644 index 49cf5e9..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.canonical.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - [[ - - x - ; - y - - ]] - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.original.html new file mode 100644 index 0000000..0ce275e --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.original.html @@ -0,0 +1,12 @@ + + + + + + + x + y + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.original.xml deleted file mode 100644 index 86834a8..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval-configured.original.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - x - y - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.canonical.html new file mode 100644 index 0000000..8a03102 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.canonical.html @@ -0,0 +1,17 @@ + + + + + + + [ + + x + , + y + + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.canonical.xml deleted file mode 100644 index d599eab..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.canonical.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - [ - - x - , - y - - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.original.html new file mode 100644 index 0000000..8b58860 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.original.html @@ -0,0 +1,12 @@ + + + + + + + x + y + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.original.xml deleted file mode 100644 index f5cbeb3..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/interval.original.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - x - y - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.canonical.html new file mode 100644 index 0000000..2bba507 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.canonical.html @@ -0,0 +1,27 @@ + + + + + + + ( + + x + , + + [: + + y + , + z + + :] + + , + 1 + + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.canonical.xml deleted file mode 100644 index e108076..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.canonical.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - ( - - x - , - - [: - - y - , - z - - :] - - , - 1 - - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.original.html new file mode 100644 index 0000000..f5bf98b --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.original.html @@ -0,0 +1,16 @@ + + + + + + + x + + y + z + + 1 + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.original.xml deleted file mode 100644 index a4db0b7..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/nested.original.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - x - - y - z - - 1 - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.canonical.html new file mode 100644 index 0000000..a5a5038 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.canonical.html @@ -0,0 +1,12 @@ + + + + + + + : + ? + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.canonical.xml deleted file mode 100644 index 56a813b..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.canonical.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - : - ? - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.original.html new file mode 100644 index 0000000..2c99382 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.original.html @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.original.xml deleted file mode 100644 index 5105887..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/no-children.original.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.canonical.html new file mode 100644 index 0000000..551b627 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.canonical.html @@ -0,0 +1,23 @@ + + + + + + + + ( + + x + ; + y + : + 1 + + ] + + + + z + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.canonical.xml deleted file mode 100644 index 378e2ea..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.canonical.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - ( - - x - ; - y - : - 1 - - ] - - + - z - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.original.html new file mode 100644 index 0000000..6b338c7 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.original.html @@ -0,0 +1,17 @@ + + + + + + + + x + y + 1 + + + + z + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.original.xml deleted file mode 100644 index 7abb42a..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MfencedReplacerTest/sequence-separators.original.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - x - y - 1 - - + - z - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.canonical.html new file mode 100644 index 0000000..962305c --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.canonical.html @@ -0,0 +1,17 @@ + + + + + + + left + + x + , + y + + right + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.canonical.xml deleted file mode 100644 index 0c0f33b..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.canonical.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - left - - x - , - y - - right - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.original.html new file mode 100644 index 0000000..a8326d0 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.original.html @@ -0,0 +1,13 @@ + + + + + + left + x + , + y + right + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.original.xml deleted file mode 100644 index 0a9616a..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/configured.original.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - left - x - , - y - right - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.canonical.html new file mode 100644 index 0000000..1669adc --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.canonical.html @@ -0,0 +1,12 @@ + + + + + + + a + b + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.canonical.xml deleted file mode 100644 index 5049855..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.canonical.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - a - b - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.original.html new file mode 100644 index 0000000..c5ddef0 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.original.html @@ -0,0 +1,14 @@ + + + + + + + + a + + b + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.original.xml deleted file mode 100644 index e191f2d..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/frac.original.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - a - - b - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.canonical.html new file mode 100644 index 0000000..4d3f400 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.canonical.html @@ -0,0 +1,17 @@ + + + + + + + [ + + 0 + , + 100 + + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.canonical.xml deleted file mode 100644 index dd46e34..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.canonical.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - [ - - 0 - , - 100 - - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.original.html new file mode 100644 index 0000000..69ae2f7 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.original.html @@ -0,0 +1,15 @@ + + + + + + + [ + 0 + , + 100 + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.original.xml deleted file mode 100644 index 2577a9a..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/interval.original.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - [ - 0 - , - 100 - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.canonical.html new file mode 100644 index 0000000..5360230 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.canonical.html @@ -0,0 +1,19 @@ + + + + + + 1 + + + + a + n + + x + + + 1 + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.canonical.xml deleted file mode 100644 index 7145ce7..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.canonical.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - 1 - + - - a - n - - x - + - 1 - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.original.html new file mode 100644 index 0000000..64c90ba --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.original.html @@ -0,0 +1,23 @@ + + + + + + + + 1 + + + + + + a + n + + x + + + 1 + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.original.xml deleted file mode 100644 index ee84748..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed1.original.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - 1 - - - + - - a - n - - x - + - 1 - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.canonical.html new file mode 100644 index 0000000..5682c06 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.canonical.html @@ -0,0 +1,20 @@ + + + + + + + a + + = + + + x + + + y + + z + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.canonical.xml deleted file mode 100644 index 5085fed..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.canonical.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - a - - = - - - x - + - y - - z - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.original.html new file mode 100644 index 0000000..f50634a --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.original.html @@ -0,0 +1,22 @@ + + + + + + + + a + + + = + + + x + + + y + + z + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.original.xml deleted file mode 100644 index a6a1918..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed2.original.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - a - - - = - - - x - + - y - - z - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.canonical.html new file mode 100644 index 0000000..e6defec --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.canonical.html @@ -0,0 +1,16 @@ + + + + + + + 2 + + a + + + b + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.canonical.xml deleted file mode 100644 index 264da35..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.canonical.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - 2 - - a - + - b - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.original.html new file mode 100644 index 0000000..e187bac --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.original.html @@ -0,0 +1,20 @@ + + + + + + + + 2 + + + + a + + + + b + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.original.xml deleted file mode 100644 index 1c571a6..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed3.original.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - 2 - - - - a - - + - b - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.canonical.html new file mode 100644 index 0000000..14b3be7 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.canonical.html @@ -0,0 +1,18 @@ + + + + + + + + a + + b + + + c + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.canonical.xml deleted file mode 100644 index f64d9d8..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.canonical.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - a - - b - + - c - - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.original.html new file mode 100644 index 0000000..1158127 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.original.html @@ -0,0 +1,22 @@ + + + + + + + + + + a + + + b + + + c + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.original.xml deleted file mode 100644 index 68b2491..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/mixed4.original.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - a - - - b - + - c - - - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.canonical.html new file mode 100644 index 0000000..5ec338f --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.canonical.html @@ -0,0 +1,17 @@ + + + + + + + [ + + a + + + b + + ] + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.canonical.xml deleted file mode 100644 index dd1950a..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.canonical.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - [ - - a - + - b - - ] - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.original.html new file mode 100644 index 0000000..5d8040b --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.original.html @@ -0,0 +1,15 @@ + + + + + + + [ + a + + + b + ] + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.original.xml deleted file mode 100644 index a1edd31..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses1.original.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - [ - a - + - b - ] - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.canonical.html new file mode 100644 index 0000000..a411996 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.canonical.html @@ -0,0 +1,19 @@ + + + + + + x + + + + ( + + y + + + z + + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.canonical.xml deleted file mode 100644 index f98372a..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.canonical.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - x - + - - ( - - y - + - z - - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.original.html new file mode 100644 index 0000000..2a27c85 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.original.html @@ -0,0 +1,17 @@ + + + + + + + x + + + ( + y + + + z + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.original.xml deleted file mode 100644 index 8a74d7a..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses2.original.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - x - + - ( - y - + - z - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.canonical.html new file mode 100644 index 0000000..c8191d5 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.canonical.html @@ -0,0 +1,19 @@ + + + + + + a + - + + ( + + b + + + c + + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.canonical.xml deleted file mode 100644 index 9687ab9..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.canonical.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - a - - - - ( - - b - + - c - - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.original.html new file mode 100644 index 0000000..2ccb1b0 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.original.html @@ -0,0 +1,19 @@ + + + + + + + a + - + ( + + b + + + c + + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.original.xml deleted file mode 100644 index 33f91f1..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses3.original.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - a - - - ( - - b - + - c - - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.canonical.html new file mode 100644 index 0000000..dfaee7d --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.canonical.html @@ -0,0 +1,27 @@ + + + + + + a + - + + ( + + b + + + + ( + + c + + + d + + ) + + + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.canonical.xml deleted file mode 100644 index c7f6d48..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.canonical.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - a - - - - ( - - b - + - - ( - - c - + - d - - ) - - - ) - - \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.original.html new file mode 100644 index 0000000..bdb16dd --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.original.html @@ -0,0 +1,21 @@ + + + + + + + a + - + ( + b + + + ( + c + + + d + ) + ) + + + + diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.original.xml deleted file mode 100644 index dde0194..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses4.original.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - a - - - ( - b - + - ( - c - + - d - ) - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.canonical.html new file mode 100644 index 0000000..7cd179a --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.canonical.html @@ -0,0 +1,15 @@ + + + + + + + [ + + 5 + + ] + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.canonical.xml deleted file mode 100644 index e742e48..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.canonical.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - [ - - 5 - - ] - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.original.html new file mode 100644 index 0000000..afe8129 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.original.html @@ -0,0 +1,15 @@ + + + + + + [ + + + 5 + + + ] + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.original.xml deleted file mode 100644 index 3ae5765..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/parentheses5.original.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - [ - - - 5 - - - ] - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.canonical.html new file mode 100644 index 0000000..704fd46 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.canonical.html @@ -0,0 +1,12 @@ + + + + + + + - + 1 + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.canonical.xml deleted file mode 100644 index 77653c4..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.canonical.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - 1 - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.original.html new file mode 100644 index 0000000..c1a82c1 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.original.html @@ -0,0 +1,14 @@ + + + + + + + + - + 1 + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.original.xml deleted file mode 100644 index 91b3ff8..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/sqrt.original.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - 1 - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.canonical.html new file mode 100644 index 0000000..be01123 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.canonical.html @@ -0,0 +1,17 @@ + + + + + + + ( + + x + , + y + + ) + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.canonical.xml deleted file mode 100644 index 4f37ed6..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.canonical.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - ( - - x - , - y - - ) - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.original.html new file mode 100644 index 0000000..8d8d02d --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.original.html @@ -0,0 +1,15 @@ + + + + + + ( + + x + , + y + + ) + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.original.xml deleted file mode 100644 index 6fc38df..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/MrowNormalizerTest/tuple.original.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - ( - - x - , - y - - ) - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.canonical.html new file mode 100644 index 0000000..32e50c3 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.canonical.html @@ -0,0 +1,22 @@ + + + + + + 1 + ± + + ( + x + / + 3 + - + y + + + 5 + ) + + z + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.canonical.xml deleted file mode 100644 index 2d0a565..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.canonical.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - 1 - ± - - ( - x - / - 3 - - - y - + - 5 - ) - - z - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.original.html new file mode 100644 index 0000000..427925a --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.original.html @@ -0,0 +1,23 @@ + + + + + + 1 + +- + + ( + x + : + 3 + - + y + + + 5 + ) + + * + z + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.original.xml deleted file mode 100644 index 4861522..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/identifier-replacement.original.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - 1 - +- - - ( - x - : - 3 - - - y - + - 5 - ) - - * - z - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.canonical.html new file mode 100644 index 0000000..2b37d50 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.canonical.html @@ -0,0 +1,15 @@ + + + + + + 2 + + a + + b + + c + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.canonical.xml deleted file mode 100644 index 39c62f9..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.canonical.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - 2 - - a - - b - - c - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.original.html new file mode 100644 index 0000000..0cb484e --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.original.html @@ -0,0 +1,16 @@ + + + + + + 2 + + + a + + b + + c + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.original.xml deleted file mode 100644 index cda9f84..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-blank.original.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - 2 - - - a - - b - - c - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.canonical.html new file mode 100644 index 0000000..a0ba329 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.canonical.html @@ -0,0 +1,13 @@ + + + + + + 2 + + a + + b + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.canonical.xml deleted file mode 100644 index 18272cd..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.canonical.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - 2 - - a - - b - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.original.html new file mode 100644 index 0000000..2c973a3 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.original.html @@ -0,0 +1,13 @@ + + + + + + 2 + ⋅ + a + ⋅ + b + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.original.xml deleted file mode 100644 index b06b555..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/multiplication-cdot.original.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - 2 - ⋅ - a - ⋅ - b - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.canonical.html new file mode 100644 index 0000000..e82dfb9 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.canonical.html @@ -0,0 +1,19 @@ + + + + + + 1 + ± + + 2 + / + 3 + - + 4 + + + 5 + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.canonical.xml deleted file mode 100644 index d617832..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.canonical.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - 1 - ± - - 2 - / - 3 - - - 4 - + - 5 - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.original.html new file mode 100644 index 0000000..ca995f9 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.original.html @@ -0,0 +1,19 @@ + + + + + + 1 + +- + + 2 + : + 3 + + 4 + + + 5 + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.original.xml deleted file mode 100644 index d49efc6..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator-unification.original.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - 1 - +- - - 2 - : - 3 - - 4 - + - 5 - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.canonical.html new file mode 100644 index 0000000..82aa3dd --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.canonical.html @@ -0,0 +1,16 @@ + + + + + + sin + x + + 10 + + + log + y + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.canonical.xml deleted file mode 100644 index 702ec03..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.canonical.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - sin - x - - 10 - + - log - y - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.original.html new file mode 100644 index 0000000..ef0b961 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.original.html @@ -0,0 +1,16 @@ + + + + + + sin + x + + 10 + + + log + y + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.original.xml deleted file mode 100644 index 07211af..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/operator2identifier.original.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - sin - x - - 10 - + - log - y - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.canonical.html new file mode 100644 index 0000000..1ad0e95 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.canonical.html @@ -0,0 +1,12 @@ + + + + + + a + b bb + A + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.canonical.xml deleted file mode 100644 index 001c26e..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.canonical.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - a - b - bb - - A - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.original.html new file mode 100644 index 0000000..4fb1455 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.original.html @@ -0,0 +1,12 @@ + + + + + + ᵃ + ⓑ 𝘣𝖻 + A + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.original.xml deleted file mode 100644 index 407b1d4..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/OperatorNormalizerTest/unicode.original.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - ᵃ - ⓑ - 𝘣𝖻 - - A - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.canonical.html new file mode 100644 index 0000000..e8ee195 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.canonical.html @@ -0,0 +1,40 @@ + + + + + + a + * + + ( + + + x + + y + 0.95 + + + 2 + + - + z + ) + + - + + + b + + + a + 1 + + 2 + + + 3 + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.canonical.xml deleted file mode 100644 index e839f02..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.canonical.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - a - * - - ( - - - x - - y - 0.95 - - - 2 - - - - z - ) - - - - - - b - - - a - 1 - - 2 - - - 3 - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.original.html new file mode 100644 index 0000000..06cb859 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.original.html @@ -0,0 +1,34 @@ + + + + + + a + * + + ( + + x + + y + 0.95 + + 2 + + - + z + ) + + - + + b + + a + 1 + 2 + + 3 + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.original.xml deleted file mode 100644 index dc53db6..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/complexsubsup.original.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - a - * - - ( - - x - - y - 0.95 - - 2 - - - - z - ) - - - - - b - - a - 1 - 2 - - 3 - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.canonical.html new file mode 100644 index 0000000..939ffd4 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.canonical.html @@ -0,0 +1,23 @@ + + + + + + + + + + x + + + + 3 + + + + x + 2 + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.canonical.xml deleted file mode 100644 index 8a37f83..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.canonical.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - x - - - - 3 - - - - x - 2 - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.original.html new file mode 100644 index 0000000..939ffd4 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.original.html @@ -0,0 +1,23 @@ + + + + + + + + + + x + + + + 3 + + + + x + 2 + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.original.xml deleted file mode 100644 index 8a37f83..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/invalid-scripts.original.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - x - - - - 3 - - - - x - 2 - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.canonical.html new file mode 100644 index 0000000..6931ed6 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.canonical.html @@ -0,0 +1,39 @@ + + + + + + + + x + 1 + + + + + y + 2 + + 3 + + + + + + x + 3 + + 0 + + + + + z + x + + 4 + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.canonical.xml deleted file mode 100644 index 4c318fa..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.canonical.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - x - 1 - - - - - y - 2 - - 3 - - - - - - x - 3 - - 0 - - - - - z - x - - 4 - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.original.html new file mode 100644 index 0000000..a7f7e5d --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.original.html @@ -0,0 +1,39 @@ + + + + + + + + x + + + + y + 3 + + 2 + + + + 1 + + + + x + 3 + + 0 + + + + + z + 4 + + x + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.original.xml deleted file mode 100644 index 300df37..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/nested-sub-sup.original.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - x - - - - y - 3 - - 2 - - - - 1 - - - - x - 3 - - 0 - - - - - z - 4 - - x - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.canonical.html new file mode 100644 index 0000000..4e2b565 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.canonical.html @@ -0,0 +1,15 @@ + + + + + + + + x + 1 + + 2 + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.canonical.xml deleted file mode 100644 index 3de22e2..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.canonical.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - x - 1 - - 2 - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.original.html new file mode 100644 index 0000000..7c74982 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.original.html @@ -0,0 +1,15 @@ + + + + + + + + x + 2 + + 1 + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.original.xml deleted file mode 100644 index f9c3c52..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/sub-sup.original.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - x - 2 - - 1 - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.canonical.html new file mode 100644 index 0000000..dd4fffc --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.canonical.html @@ -0,0 +1,20 @@ + + + + + + + + x + 1 + + 2 + + + + + 1 + 2 + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.canonical.xml deleted file mode 100644 index 1bc8202..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.canonical.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - x - 1 - - 2 - - - + - 1 - 2 - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.original.html new file mode 100644 index 0000000..3a5f341 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.original.html @@ -0,0 +1,18 @@ + + + + + + + x + 1 + 2 + + + + + 1 + 2 + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.original.xml deleted file mode 100644 index f7a3d8d..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/subsup.original.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - x - 1 - 2 - - - + - 1 - 2 - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.canonical.html new file mode 100644 index 0000000..e75b825 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.canonical.html @@ -0,0 +1,19 @@ + + + + + + + + x + 1 + + 2 + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.canonical.xml deleted file mode 100644 index 815a403..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.canonical.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - x - 1 - - 2 - - - - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.original.html new file mode 100644 index 0000000..4fdf675 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.original.html @@ -0,0 +1,19 @@ + + + + + + + + x + 1 + + 2 + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.original.xml deleted file mode 100644 index a8177ed..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/ScriptNormalizerTest/underover.original.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - x - 1 - - 2 - - - - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.canonical.html new file mode 100644 index 0000000..9ac55ed --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.canonical.html @@ -0,0 +1,13 @@ + + + + + + + + B + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.canonical.xml deleted file mode 100644 index 89803e3..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.canonical.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - B - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.original.html new file mode 100644 index 0000000..4fa26d1 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.original.html @@ -0,0 +1,16 @@ + + + + + + + + B + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.original.xml deleted file mode 100644 index 075558f..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-no-namespace.original.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - B - - - - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.canonical.html new file mode 100644 index 0000000..b681767 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.canonical.html @@ -0,0 +1,13 @@ + + + + + + + + B + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.canonical.xml deleted file mode 100644 index 89a22d2..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.canonical.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - B - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.original.html new file mode 100644 index 0000000..30ad465 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.original.html @@ -0,0 +1,16 @@ + + + + + + + + B + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.original.xml deleted file mode 100644 index 1c53ad2..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-double-operator-with-namespace.original.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - B - - - - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.canonical.html new file mode 100644 index 0000000..261ce08 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.canonical.html @@ -0,0 +1,70 @@ + + + + + + + + 1 + + + + + E + + + + + + + m + + superscript + c + 2 + + + 5 + + 3 + + + + + + + superscript + + subscript + + a + + b + + + + f + x + d + x + + + + + + + F + b + + + + F + a + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.canonical.xml deleted file mode 100644 index 0b98dd7..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.canonical.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - 1 - - - - - E - - - - - - - m - - superscript - c - 2 - - - 5 - - 3 - - - - - - - superscript - - subscript - - a - - b - - - - f - x - d - x - - - - - - - F - b - - - - F - a - - - - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.original.html new file mode 100644 index 0000000..8a550fa --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.original.html @@ -0,0 +1,76 @@ + + + + + + + + + + 1 + + + + + + + E + + + + + + + + m + + superscript + c + 2 + + + 5 + + 3 + + + + + + + superscript + + subscript + + a + + b + + + + f + x + d + x + + + + + + + F + b + + + + F + a + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.original.xml deleted file mode 100644 index e3a9f51..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-no-namespace.original.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - 1 - - - - - - - E - - - - - - - - m - - superscript - c - 2 - - - 5 - - 3 - - - - - - - superscript - - subscript - - a - - b - - - - f - x - d - x - - - - - - - F - b - - - - F - a - - - - - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.canonical.html new file mode 100644 index 0000000..f5d9b3c --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.canonical.html @@ -0,0 +1,70 @@ + + + + + + + + 1 + + + + + E + + + + + + + m + + superscript + c + 2 + + + 5 + + 3 + + + + + + + superscript + + subscript + + a + + b + + + + f + x + d + x + + + + + + + F + b + + + + F + a + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.canonical.xml deleted file mode 100644 index 3caf2a7..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.canonical.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - 1 - - - - - E - - - - - - - m - - superscript - c - 2 - - - 5 - - 3 - - - - - - - superscript - - subscript - - a - - b - - - - f - x - d - x - - - - - - - F - b - - - - F - a - - - - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.original.html new file mode 100644 index 0000000..9c536aa --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.original.html @@ -0,0 +1,76 @@ + + + + + + + + + + 1 + + + + + + + E + + + + + + + + m + + superscript + c + 2 + + + 5 + + 3 + + + + + + + superscript + + subscript + + a + + b + + + + f + x + d + x + + + + + + + F + b + + + + F + a + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.original.xml deleted file mode 100644 index f454bd4..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/cmathml-with-namespace.original.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - 1 - - - - - - - E - - - - - - - - m - - superscript - c - 2 - - - 5 - - 3 - - - - - - - superscript - - subscript - - a - - b - - - - f - x - d - x - - - - - - - F - b - - - - F - a - - - - - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.canonical.html new file mode 100644 index 0000000..982753c --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.canonical.html @@ -0,0 +1,13 @@ + + + + + + + B + < + ∞ + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.canonical.xml deleted file mode 100644 index e334e28..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.canonical.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - B - < - ∞ - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.original.html new file mode 100644 index 0000000..c3de897 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.original.html @@ -0,0 +1,14 @@ + + + + + + + B + < + + + ∞ + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.original.xml deleted file mode 100644 index bc3a31c..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-no-namespace.original.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - B - < - + - ∞ - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.canonical.html new file mode 100644 index 0000000..739c94d --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.canonical.html @@ -0,0 +1,13 @@ + + + + + + + B + < + ∞ + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.canonical.xml deleted file mode 100644 index 825cad0..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.canonical.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - B - < - ∞ - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.original.html new file mode 100644 index 0000000..7982aee --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.original.html @@ -0,0 +1,14 @@ + + + + + + + B + < + + + ∞ + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.original.xml deleted file mode 100644 index 3ee5569..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-double-operator-with-namespace.original.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - B - < - + - ∞ - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.canonical.html new file mode 100644 index 0000000..d1a301f --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.canonical.html @@ -0,0 +1,84 @@ + + + + + + + + 1 + + + + + E + + = + + + m + + + c + 2 + + + + + 5 + - + 3 + + + + + + + ∫ + a + b + + + + f + + + + ( + x + ) + + + + d + + x + + + = + + + F + + + ( + b + ) + + + - + + F + + + ( + a + ) + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.canonical.xml deleted file mode 100644 index 1f80976..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.canonical.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - 1 - - - - - E - - = - - - m - - - c - 2 - - - + - 5 - - - 3 - - - - - - - ∫ - a - b - - - - f - - - - ( - x - ) - - - - d - - x - - - = - - - F - - - ( - b - ) - - - - - - F - - - ( - a - ) - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.original.html new file mode 100644 index 0000000..67305a9 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.original.html @@ -0,0 +1,86 @@ + + + + + + + + + + 1 + + + + + - + E + + = + + + m + + + c + 2 + + + + + 5 + - + 3 + + + + + + + ∫ + a + b + + + + f + + + + ( + x + ) + + + + d + + x + + + = + + + F + + + ( + b + ) + + + - + + F + + + ( + a + ) + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.original.xml deleted file mode 100644 index 2cdadb4..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-no-namespace.original.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - + - - 1 - - - - - - - E - - = - - - m - - - c - 2 - - - + - 5 - - - 3 - - - - - - - ∫ - a - b - - - - f - - - - ( - x - ) - - - - d - - x - - - = - - - F - - - ( - b - ) - - - - - - F - - - ( - a - ) - - - - - - - - diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.canonical.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.canonical.html new file mode 100644 index 0000000..00be2fc --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.canonical.html @@ -0,0 +1,84 @@ + + + + + + + + 1 + + + + + E + + = + + + m + + + c + 2 + + + + + 5 + - + 3 + + + + + + + ∫ + a + b + + + + f + + + + ( + x + ) + + + + d + + x + + + = + + + F + + + ( + b + ) + + + - + + F + + + ( + a + ) + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.canonical.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.canonical.xml deleted file mode 100644 index 3b09139..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.canonical.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - 1 - - - - - E - - = - - - m - - - c - 2 - - - + - 5 - - - 3 - - - - - - - ∫ - a - b - - - - f - - - - ( - x - ) - - - - d - - x - - - = - - - F - - - ( - b - ) - - - - - - F - - - ( - a - ) - - - - - - - - \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.original.html b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.original.html new file mode 100644 index 0000000..4663cd8 --- /dev/null +++ b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.original.html @@ -0,0 +1,86 @@ + + + + + + + + + + 1 + + + + + - + E + + = + + + m + + + c + 2 + + + + + 5 + - + 3 + + + + + + + ∫ + a + b + + + + f + + + + ( + x + ) + + + + d + + x + + + = + + + F + + + ( + b + ) + + + - + + F + + + ( + a + ) + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.original.xml b/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.original.xml deleted file mode 100644 index a65a87e..0000000 --- a/src/test/resources/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemoverTest/pmathml-with-namespace.original.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - + - - 1 - - - - - - - E - - = - - - m - - - c - 2 - - - + - 5 - - - 3 - - - - - - - ∫ - a - b - - - - f - - - - ( - x - ) - - - - d - - x - - - = - - - F - - - ( - b - ) - - - - - - F - - - ( - a - ) - - - - - - - - From 5c9c65d3d6ff22c5c59a1d61e1f086a45de53e63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mari=C3=A1n=20Lal=C3=ADk?= Date: Tue, 3 May 2022 07:51:36 +0200 Subject: [PATCH 3/3] removed leftover test printlines --- .../fi/mir/mathmlcanonicalization/modules/ElementMinimizer.java | 1 - .../mir/mathmlcanonicalization/modules/UnaryOperatorRemover.java | 1 - 2 files changed, 2 deletions(-) diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizer.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizer.java index 896454a..1a19a61 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizer.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/ElementMinimizer.java @@ -132,7 +132,6 @@ private void minimizeAttributes(Element element) { } private Boolean isWhitelisted(Attribute attribute, List whitelist) { - System.out.println(attribute.getKey()); for (String attr : whitelist) { if (attribute.getKey().equals(attr) || attr.contains("=") diff --git a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemover.java b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemover.java index dc64095..f885ed7 100644 --- a/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemover.java +++ b/src/main/java/cz/muni/fi/mir/mathmlcanonicalization/modules/UnaryOperatorRemover.java @@ -109,7 +109,6 @@ private void removeUnaryOperator(final Element rootElem) { for (Element operator : rootElem.getElementsByTag(OPERATOR)) { int index = operator.elementSiblingIndex(); if (index != 0 && operator.previousElementSibling().tagName().equals(OPERATOR)) { - System.out.println(operator.text()); index = 0; } if (index == 0) {