diff options
Diffstat (limited to 'layout/mathml/imptests/test_fraction-parameters.html')
-rw-r--r-- | layout/mathml/imptests/test_fraction-parameters.html | 244 |
1 files changed, 244 insertions, 0 deletions
diff --git a/layout/mathml/imptests/test_fraction-parameters.html b/layout/mathml/imptests/test_fraction-parameters.html new file mode 100644 index 000000000..d067d0184 --- /dev/null +++ b/layout/mathml/imptests/test_fraction-parameters.html @@ -0,0 +1,244 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Fraction parameters</title> +<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2"> +<meta name="assert" content="Element mfrac correctly uses the fraction parameters from the MATH table."> +<!-- Copyright 2016 MathML Association + Licensed under 3-Clause BSD-License --> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + math, mspace { + font-size: 10px; + } + @font-face { + font-family: axisheight7000-rulethickness1000; + src: url("fonts/fraction-axisheight7000-rulethickness1000.woff"); + } + @font-face { + font-family: denominatordisplaystylegapmin5000-rulethickness1000; + src: url("fonts/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff"); + } + @font-face { + font-family: denominatordisplaystyleshiftdown6000-rulethickness1000; + src: url("fonts/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff"); + } + @font-face { + font-family: denominatorgapmin4000-rulethickness1000; + src: url("fonts/fraction-denominatorgapmin4000-rulethickness1000.woff"); + } + @font-face { + font-family: denominatorshiftdown3000-rulethickness1000; + src: url("fonts/fraction-denominatorshiftdown3000-rulethickness1000.woff"); + } + @font-face { + font-family: numeratordisplaystylegapmin8000-rulethickness1000; + src: url("fonts/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff"); + } + @font-face { + font-family: numeratordisplaystyleshiftup2000-rulethickness1000; + src: url("fonts/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff"); + } + @font-face { + font-family: numeratorgapmin9000-rulethickness1000; + src: url("fonts/fraction-numeratorgapmin9000-rulethickness1000.woff"); + } + @font-face { + font-family: numeratorshiftup11000-rulethickness1000; + src: url("fonts/fraction-numeratorshiftup11000-rulethickness1000.woff"); + } + @font-face { + font-family: rulethickness10000; + src: url("fonts/fraction-rulethickness10000.woff"); + } +</style> +<script> + var emToPx = 10 / 1000; // font-size: 10px, font.em = 1000 + var epsilon = 1; + + function getBox(aId) { + return document.getElementById(aId).getBoundingClientRect(); + } + + var test_loaded = async_test("Page Loaded"); + window.addEventListener("load", function() { + // FIXME: Use an API to wait for the Web fonts to arrive. + window.setTimeout(runTests, 250); + }); + + function runTests() { + test(function() { + var v1 = 7000 * emToPx; + var v2 = 1000 * emToPx; + assert_approx_equals(getBox("ref0001").top - getBox("num0001").bottom, + v1 + v2 / 2, epsilon, "mfrac: axis height"); + }, "AxisHeight"); + + test(function() { + var v1 = 5000 * emToPx; + assert_approx_equals(getBox("den0002").top - getBox("ref0002").bottom, + v1, epsilon, "mfrac: denominator gap"); + }, "DenominatorDisplayStyleGapMin"); + + test(function() { + var v1 = 6000 * emToPx; + assert_approx_equals(getBox("den0003").top - getBox("ref0003").bottom, + v1, epsilon, "mfrac: denominator shift"); + }, "DenominatorDisplayStyleShiftDown"); + + test(function() { + var v1 = 4000 * emToPx; + assert_approx_equals(getBox("den0004").top - getBox("ref0004").bottom, + v1, epsilon, "mfrac: denominator gap"); + }, "DenominatorGapMin"); + + test(function() { + var v1 = 3000 * emToPx; + assert_approx_equals(getBox("den0005").top - getBox("ref0005").bottom, + v1, epsilon, "mfrac: denominator shift"); + }, "DenominatorShiftDown"); + + test(function() { + var v1 = 8000 * emToPx; + assert_approx_equals(getBox("ref0006").top - getBox("num0006").bottom, + v1, epsilon, "mfrac: numerator gap"); + }, "NumeratorDisplayStyleGapMin"); + + test(function() { + var v1 = 2000 * emToPx; + assert_approx_equals(getBox("ref0007").top - getBox("num0007").bottom, + v1, epsilon, "mfrac: numerator shift"); + }, "NumeratorDisplayStyleShiftDown"); + + test(function() { + var v1 = 9000 * emToPx; + assert_approx_equals(getBox("ref0008").top - getBox("num0008").bottom, + v1, epsilon, "mfrac: numerator gap"); + }, "NumeratorGapMin"); + + test(function() { + var v1 = 11000 * emToPx; + assert_approx_equals(getBox("ref0009").top - getBox("num0009").bottom, + v1, epsilon, "mfrac: numerator shift"); + }, "NumeratorShiftDown"); + + test(function() { + var v1 = 10000 * emToPx; + assert_approx_equals(getBox("den0010").top - getBox("num0010").bottom, + v1, epsilon, "mfrac: rule thickness"); + }, "FractionRuleThickness"); + + test_loaded.done(); + } +</script> +</head> +<body> + <p> + <math style="font-family: axisheight7000-rulethickness1000;"> + <mspace id="ref0001" depth="1em" width="3em" mathbackground="green"/> + <mfrac> + <mspace width="3em" height="1em" id="num0001" mathbackground="blue"/> + <mspace width="3em"/> + </mfrac> + </math> + </p> + <hr/> + <p> + <math display="block" style="font-family: denominatordisplaystylegapmin5000-rulethickness1000;"> + <mspace id="ref0002" width="3em" + height=".5em" depth=".5em" mathbackground="green"/> + <mfrac> + <mspace width="3em"/> + <mspace width="3em" height="1em" id="den0002" mathbackground="blue"/> + </mfrac> + </math> + </p> + <hr/> + <p> + <math display="block" style="font-family: denominatordisplaystyleshiftdown6000-rulethickness1000;"> + <mspace id="ref0003" width="3em" height="1em" mathbackground="green"/> + <mfrac> + <mspace width="3em"/> + <mspace width="3em" depth="1em" id="den0003" mathbackground="blue"/> + </mfrac> + </math> + </p> + <hr/> + <p> + <math style="font-family: denominatorgapmin4000-rulethickness1000;"> + <mspace id="ref0004" width="3em" + height=".5em" depth=".5em" mathbackground="green"/> + <mfrac> + <mspace width="3em"/> + <mspace width="3em" height="1em" id="den0004" mathbackground="blue"/> + </mfrac> + </math> + </p> + <hr/> + <p> + <math style="font-family: denominatorshiftdown3000-rulethickness1000;"> + <mspace id="ref0005" width="3em" height="1em" mathbackground="green"/> + <mfrac> + <mspace width="3em"/> + <mspace width="3em" depth="1em" id="den0005" mathbackground="blue"/> + </mfrac> + </math> + </p> + <hr/> + <p> + <math display="block" style="font-family: numeratordisplaystylegapmin8000-rulethickness1000;"> + <mspace id="ref0006" width="3em" + height=".5em" depth=".5em" mathbackground="green"/> + <mfrac> + <mspace width="3em" depth="1em" id="num0006" mathbackground="blue"/> + <mspace width="3em"/> + </mfrac> + </math> + </p> + <hr/> + <p> + <math display="block" style="font-family: numeratordisplaystyleshiftup2000-rulethickness1000;"> + <mspace id="ref0007" width="3em" + depth="1em" mathbackground="green"/> + <mfrac> + <mspace width="3em" height="1em" id="num0007" mathbackground="blue"/> + <mspace width="3em"/> + </mfrac> + </math> + </p> + <hr/> + <p> + <math style="font-family: numeratorgapmin9000-rulethickness1000;"> + <mspace id="ref0008" width="3em" + height=".5em" depth=".5em" mathbackground="green"/> + <mfrac> + <mspace width="3em" depth="1em" id="num0008" mathbackground="blue"/> + <mspace width="3em"/> + </mfrac> + </math> + </p> + <hr/> + <p> + <math style="font-family: numeratorshiftup11000-rulethickness1000;"> + <mspace id="ref0009" width="3em" + depth="1em" mathbackground="green"/> + <mfrac> + <mspace width="3em" height="1em" id="num0009" mathbackground="blue"/> + <mspace width="3em"/> + </mfrac> + </math> + </p> + <hr/> + <p> + <math style="font-family: rulethickness10000"> + <mfrac> + <mspace width="3em" height="1em" id="num0010" mathbackground="blue"/> + <mspace width="3em" depth="1em" id="den0010" mathbackground="green"/> + </mfrac> + </math> + </p> + <hr/> +</body> +</html> |