From ed6c4acbd1ba71c59cd10d3ee4dc489ec9b2f2c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sat, 1 Feb 2025 20:42:22 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D1=8B=D0=B5=20=D1=82=D0=B5?= =?UTF-8?q?=D0=B3=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .phpunit.result.cache | 2 +- src/Tag/MathML/Mmultiscripts.php | 77 +++++++++++++++++++++ src/Tag/MathML/Mover.php | 24 +++++++ src/Tag/MathML/Mprescripts.php | 15 ++++ src/Tag/MathML/Ms.php | 21 ++++++ src/Tag/MathML/Msqrt.php | 16 +++++ src/Tag/MathML/Msub.php | 16 +++++ src/Tag/MathML/Msubsup.php | 16 +++++ src/Tag/MathML/Msup.php | 3 - src/Tag/MathML/Munder.php | 24 +++++++ tests/Tag/MathML/MmultiscriptsTest.php | 94 ++++++++++++++++++++++++++ tests/Tag/MathML/MoverTest.php | 56 +++++++++++++++ tests/Tag/MathML/MunderTest.php | 56 +++++++++++++++ 13 files changed, 416 insertions(+), 4 deletions(-) create mode 100644 src/Tag/MathML/Mmultiscripts.php create mode 100644 src/Tag/MathML/Mover.php create mode 100644 src/Tag/MathML/Mprescripts.php create mode 100644 src/Tag/MathML/Ms.php create mode 100644 src/Tag/MathML/Msqrt.php create mode 100644 src/Tag/MathML/Msub.php create mode 100644 src/Tag/MathML/Msubsup.php create mode 100644 src/Tag/MathML/Munder.php create mode 100644 tests/Tag/MathML/MmultiscriptsTest.php create mode 100644 tests/Tag/MathML/MoverTest.php create mode 100644 tests/Tag/MathML/MunderTest.php diff --git a/.phpunit.result.cache b/.phpunit.result.cache index 806c301..0981ac6 100644 --- a/.phpunit.result.cache +++ b/.phpunit.result.cache @@ -1 +1 @@ -{"version":1,"defects":{"Yiisoft\\Html\\Tests\\Tag\\BaseMathML\\MathTest::testInline":5,"Yiisoft\\Html\\Tests\\Tag\\BaseMathML\\MathTest::testBlock":3,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testImmutability":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelNull":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testLabelWithId":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelWithAttributes":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabel":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValueDisabled":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelId":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testLabel":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testLabelNoWrap":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValue":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testChecked":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValueWithLabel":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelWithId":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValueForm":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testWithoutLabelEncode":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelEmpty":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testDisabled":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testRequired":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testForm":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testImmutability":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testName":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testValue":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testReadonly":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\NormalTagTest::testClose":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\NormalTagTest::testBase":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\NormalTagTest::testOpen":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar with data set #2":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar with data set #0":3,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar with data set #1":3,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #1":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #0":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #3":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #2":5,"Error":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #0":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #1":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #3":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #2":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testFence with data set #0":3,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testFence with data set #1":3,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #0":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #1":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #2":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #3":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testImmutable":4},"times":{"Yiisoft\\Html\\Tests\\Tag\\BaseMathML\\MathTest::testInline":0.003,"Yiisoft\\Html\\Tests\\Tag\\BaseMathML\\MathTest::testBlock":0,"Yiisoft\\Html\\Tests\\Widget\\RadioListTest::testIndividualInputAttributesMerge":0.004,"Yiisoft\\Html\\Tests\\Widget\\RadioListTest::testIndividualUncheckInputAttributes":0,"Yiisoft\\Html\\Tests\\Widget\\RadioListTest::testIndividualInputAttributes":0,"Yiisoft\\Html\\Tests\\Widget\\RadioListTest::testIndividualInputAttributesReplace":0,"Yiisoft\\Html\\Tests\\Tag\\DivTest::testBase":0,"Yiisoft\\Html\\Tests\\HtmlTest::testDiv":0,"Yiisoft\\Html\\Tests\\Widget\\CheckboxListTest::testIndividualInputAttributesReplace":0.001,"Yiisoft\\Html\\Tests\\Widget\\CheckboxListTest::testIndividualUncheckInputAttributes":0,"Yiisoft\\Html\\Tests\\Widget\\CheckboxListTest::testAddIndividualInputAttributes":0,"Yiisoft\\Html\\Tests\\Widget\\CheckboxListTest::testIndividualInputAttributesMerge":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testImmutability":0.001,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelNull":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testLabelWithId":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelWithAttributes":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabel":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValueDisabled":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelId":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testLabel":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testLabelNoWrap":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValue":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testChecked":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValueWithLabel":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelWithId":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValueForm":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testWithoutLabelEncode":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelEmpty":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testDisabled":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testRequired":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testForm":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testImmutability":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testName":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testValue":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testReadonly":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\NormalTagTest::testClose":0.002,"Yiisoft\\Html\\Tests\\Tag\\Base\\NormalTagTest::testBase":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\NormalTagTest::testOpen":0,"Yiisoft\\Html\\Tests\\HtmlTest::testNormalTag":0.002,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MathTest::testBlock":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MathTest::testInline":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar":0.002,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar with data set #1":0.003,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MiTest::testIdentifier with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MiTest::testIdentifier with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MiTest::testIdentifier with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MiTest::testNormal with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MiTest::testNormal with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testOperator with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testOperator with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testOperator with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testOperator with data set #1":0,"Error":0.001,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MunderoverTest::testAccent with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MunderoverTest::testAccent with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MunderoverTest::testAccentunder with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MunderoverTest::testAccentunder with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MathTest::testImmutable":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testFence with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testFence with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testFence with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLargeop with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLargeop with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLargeop with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLspace with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLspace with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLspace with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLspace with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMinSize with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMinSize with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMinSize with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMinSize with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMovablelimits with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMovablelimits with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMovablelimits with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testRspace with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testRspace with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testRspace with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testRspace with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testSeparator with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testSeparator with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testSeparator with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testStretchy with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testStretchy with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testStretchy with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testSymmetric with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testSymmetric with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testSymmetric with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testImmutable":0}} \ No newline at end of file +{"version":1,"defects":{"Yiisoft\\Html\\Tests\\Tag\\BaseMathML\\MathTest::testInline":5,"Yiisoft\\Html\\Tests\\Tag\\BaseMathML\\MathTest::testBlock":3,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testImmutability":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelNull":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testLabelWithId":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelWithAttributes":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabel":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValueDisabled":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelId":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testLabel":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testLabelNoWrap":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValue":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testChecked":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValueWithLabel":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelWithId":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValueForm":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testWithoutLabelEncode":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelEmpty":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testDisabled":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testRequired":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testForm":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testImmutability":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testName":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testValue":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testReadonly":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\NormalTagTest::testClose":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\NormalTagTest::testBase":4,"Yiisoft\\Html\\Tests\\Tag\\Base\\NormalTagTest::testOpen":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar with data set #2":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar with data set #0":3,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar with data set #1":3,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #1":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #0":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #3":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #2":5,"Error":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #0":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #1":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #3":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #2":5,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testFence with data set #0":3,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testFence with data set #1":3,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #0":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #1":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #2":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #3":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testImmutable":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MmultiscriptsTest::testAbcd":3,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MmultiscriptsTest::testCustomMprescripts":3,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoverTest::testMover with data set #2":3,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoverTest::testMover with data set #0":4,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoverTest::testMover with data set #1":3},"times":{"Yiisoft\\Html\\Tests\\Tag\\BaseMathML\\MathTest::testInline":0.003,"Yiisoft\\Html\\Tests\\Tag\\BaseMathML\\MathTest::testBlock":0,"Yiisoft\\Html\\Tests\\Widget\\RadioListTest::testIndividualInputAttributesMerge":0.004,"Yiisoft\\Html\\Tests\\Widget\\RadioListTest::testIndividualUncheckInputAttributes":0,"Yiisoft\\Html\\Tests\\Widget\\RadioListTest::testIndividualInputAttributes":0,"Yiisoft\\Html\\Tests\\Widget\\RadioListTest::testIndividualInputAttributesReplace":0,"Yiisoft\\Html\\Tests\\Tag\\DivTest::testBase":0,"Yiisoft\\Html\\Tests\\HtmlTest::testDiv":0,"Yiisoft\\Html\\Tests\\Widget\\CheckboxListTest::testIndividualInputAttributesReplace":0.001,"Yiisoft\\Html\\Tests\\Widget\\CheckboxListTest::testIndividualUncheckInputAttributes":0,"Yiisoft\\Html\\Tests\\Widget\\CheckboxListTest::testAddIndividualInputAttributes":0,"Yiisoft\\Html\\Tests\\Widget\\CheckboxListTest::testIndividualInputAttributesMerge":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testImmutability":0.001,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelNull":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testLabelWithId":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelWithAttributes":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabel":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValueDisabled":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelId":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testLabel":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testLabelNoWrap":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValue":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testChecked":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValueWithLabel":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelWithId":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testUncheckValueForm":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testWithoutLabelEncode":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\BooleanInputTagTest::testSideLabelEmpty":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testDisabled":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testRequired":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testForm":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testImmutability":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testName":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testValue":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\InputTagTest::testReadonly":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\NormalTagTest::testClose":0.002,"Yiisoft\\Html\\Tests\\Tag\\Base\\NormalTagTest::testBase":0,"Yiisoft\\Html\\Tests\\Tag\\Base\\NormalTagTest::testOpen":0,"Yiisoft\\Html\\Tests\\HtmlTest::testNormalTag":0.002,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MathTest::testBlock":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MathTest::testInline":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar":0.002,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MfracTest::testBar with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MnTest::testValue with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MiTest::testIdentifier with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MiTest::testIdentifier with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MiTest::testIdentifier with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MiTest::testNormal with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MiTest::testNormal with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testOperator with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testOperator with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testOperator with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testOperator with data set #1":0,"Error":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testForm with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MunderoverTest::testAccent with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MunderoverTest::testAccent with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MunderoverTest::testAccentunder with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MunderoverTest::testAccentunder with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MathTest::testImmutable":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testFence with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testFence with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testFence with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLargeop with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLargeop with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLargeop with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLspace with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLspace with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLspace with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testLspace with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMaxSize with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMinSize with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMinSize with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMinSize with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMinSize with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMovablelimits with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMovablelimits with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testMovablelimits with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testRspace with data set #3":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testRspace with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testRspace with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testRspace with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testSeparator with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testSeparator with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testSeparator with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testStretchy with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testStretchy with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testStretchy with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testSymmetric with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testSymmetric with data set #1":0.003,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testSymmetric with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoTest::testImmutable":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MmultiscriptsTest::testAbcd":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MmultiscriptsTest::testSimple":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MmultiscriptsTest::testWithoutPre":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MmultiscriptsTest::testCustomMprescripts":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoverTest::testMover with data set #2":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoverTest::testMover with data set #0":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MoverTest::testMover with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MunderTest::testMunder with data set #1":0,"Yiisoft\\Html\\Tests\\Tag\\MathML\\MunderTest::testMunder with data set #0":0}} \ No newline at end of file diff --git a/src/Tag/MathML/Mmultiscripts.php b/src/Tag/MathML/Mmultiscripts.php new file mode 100644 index 0000000..5a64b75 --- /dev/null +++ b/src/Tag/MathML/Mmultiscripts.php @@ -0,0 +1,77 @@ +base . "\n" . implode("\n", $this->post) . "\n"; + + if ($this->pre) { + $mprescripts = $this->mprescripts ?? Mprescripts::tag(); + $content .= $mprescripts . "\n" . implode("\n", $this->pre) . "\n"; + } + + return $content; + } + + public function base(MathItemInterface $base): self + { + $new = clone $this; + $new->base = $base; + + return $new; + } + + public function post(MathItemInterface $item, MathItemInterface ...$items): self + { + $new = clone $this; + + if ($items) { + $new->post = [...[$item], ...$items]; + } else { + $new->post = [$item]; + } + + return $new; + } + + public function pre(MathItemInterface ...$items): self + { + $new = clone $this; + $new->pre = $items; + + return $new; + } + + public function mprescripts(Mprescripts|null $mprescripts): self + { + $new = clone $this; + $new->mprescripts = $mprescripts; + + return $new; + } +} diff --git a/src/Tag/MathML/Mover.php b/src/Tag/MathML/Mover.php new file mode 100644 index 0000000..8bb188e --- /dev/null +++ b/src/Tag/MathML/Mover.php @@ -0,0 +1,24 @@ +attributes['accent'] = $accent ? 'true' : 'false'; + + return $new; + } +} diff --git a/src/Tag/MathML/Mprescripts.php b/src/Tag/MathML/Mprescripts.php new file mode 100644 index 0000000..b6a4a71 --- /dev/null +++ b/src/Tag/MathML/Mprescripts.php @@ -0,0 +1,15 @@ +attributes['accentunder'] = $accentunder ? 'true' : 'false'; + + return $new; + } +} diff --git a/tests/Tag/MathML/MmultiscriptsTest.php b/tests/Tag/MathML/MmultiscriptsTest.php new file mode 100644 index 0000000..068cffc --- /dev/null +++ b/tests/Tag/MathML/MmultiscriptsTest.php @@ -0,0 +1,94 @@ +base(Mi::tag()->identifier('X')) + ->post( + Mi::tag()->identifier('a'), + Mi::tag()->identifier('b'), + ) + ->pre( + Mi::tag()->identifier('c'), + Mi::tag()->identifier('d'), + ); + + $this->assertSame( + '' . "\n" . + 'X' . "\n" . + 'a' . "\n" . + 'b' . "\n" . + '' . "\n" . + 'c' . "\n" . + 'd' . "\n" . + '', + (string) $mmultiscripts + ); + } + + public function testWithoutPre(): void + { + $mmultiscripts = Mmultiscripts::tag() + ->base(Mi::tag()->identifier('X')) + ->post( + Mi::tag()->identifier('a'), + Mi::tag()->identifier('b'), + ); + + $this->assertSame( + '' . "\n" . + 'X' . "\n" . + 'a' . "\n" . + 'b' . "\n" . + '', + (string) $mmultiscripts + ); + } + + public function testCustomMprescripts(): void + { + $mmultiscripts = Mmultiscripts::tag() + ->base(Mi::tag()->identifier('X')) + ->mprescripts(Mprescripts::tag()->id('test-id')) + ->post( + Mn::tag()->value(1), + Mn::tag()->value(2), + Mn::tag()->value(3), + Mn::tag()->value(4), + ) + ->pre( + Mn::tag()->value(5), + Mn::tag()->value(6), + Mn::tag()->value(7), + Mn::tag()->value(8), + ); + + $this->assertSame( + '' . "\n" . + 'X' . "\n" . + '1' . "\n" . + '2' . "\n" . + '3' . "\n" . + '4' . "\n" . + '' . "\n" . + '5' . "\n" . + '6' . "\n" . + '7' . "\n" . + '8' . "\n" . + '', + (string) $mmultiscripts + ); + } +} diff --git a/tests/Tag/MathML/MoverTest.php b/tests/Tag/MathML/MoverTest.php new file mode 100644 index 0000000..d30fea8 --- /dev/null +++ b/tests/Tag/MathML/MoverTest.php @@ -0,0 +1,56 @@ +accent($accent) + ->items( + Mrow::tag() + ->items( + Mi::tag()->identifier('x'), + Mo::tag()->operator('+'), + Mi::tag()->identifier('y'), + Mo::tag()->operator('+'), + Mi::tag()->identifier('z'), + ), + Mo::tag()->operator('⏞'), + ); + + $this->assertSame( + '' . "\n" . + '' . "\n" . + 'x' . "\n" . + '+' . "\n" . + 'y' . "\n" . + '+' . "\n" . + 'z' . "\n" . + '' . "\n" . + '' . "\n" . + '', + (string) $mover + ); + } +} diff --git a/tests/Tag/MathML/MunderTest.php b/tests/Tag/MathML/MunderTest.php new file mode 100644 index 0000000..96d1a63 --- /dev/null +++ b/tests/Tag/MathML/MunderTest.php @@ -0,0 +1,56 @@ +accentunder($accentunder) + ->items( + Mrow::tag() + ->items( + Mi::tag()->identifier('x'), + Mo::tag()->operator('+'), + Mi::tag()->identifier('y'), + Mo::tag()->operator('+'), + Mi::tag()->identifier('z'), + ), + Mo::tag()->operator('⏞'), + ); + + $this->assertSame( + '' . "\n" . + '' . "\n" . + 'x' . "\n" . + '+' . "\n" . + 'y' . "\n" . + '+' . "\n" . + 'z' . "\n" . + '' . "\n" . + '' . "\n" . + '', + (string) $mover + ); + } +}