Update web-platform-tests to revision 66dc9c93f2c8ebd7c8fdc28fae20d92713c97806

This commit is contained in:
WPT Sync Bot 2019-06-26 10:22:48 +00:00
parent e488ea750b
commit 12f4ae132e
1651 changed files with 8123 additions and 14152 deletions

View file

@ -0,0 +1,65 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Fraction parameters</title>
<style>
math, mspace {
font-size: 20px;
}
@font-face {
font-family: denominatordisplaystylegapmin5000-rulethickness1000;
src: url("/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff");
}
#reference {
background: green;
}
#frame {
position: absolute;
border-top: 4px solid black;
border-bottom: 4px solid black;
width: 100%;
}
</style>
<script>
function runTests() {
var div = document.getElementById("frame");
var refBox = document.getElementById("reference").getBoundingClientRect();
div.style.top = `${refBox.top-2}px`;
div.style.height = `${refBox.height-4}px`;
document.documentElement.classList.remove('reftest-wait');
}
window.addEventListener("load", function() {
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
});
</script>
</head>
<body>
<p>
This test passes if the blue squares are aligned:
</p>
<p>
<math display="block" style="font-family: denominatordisplaystylegapmin5000-rulethickness1000;">
<mspace height="2em" depth="20em"/>
<mfrac>
<mspace width="3em"/>
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
</mfrac>
<mfrac>
<mspace width="3em"/>
<mspace width="1em" height=".5em" depth=".5em" style="background: blue"/>
</mfrac>
<mfrac>
<mspace width="3em"/>
<mspace width="1em" height="1em" style="background: blue"/>
</mfrac>
<mfrac>
<mspace width="3em"/>
<mspace width="1em" depth="1em" style="background: blue"/>
</mfrac>
</math>
</p>
<div id="frame"></div>
</body>
</html>

View file

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Fraction parameters (display gap between bar and denominator)</title>
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fractions-mfrac">
<link rel="match" href="frac-parameters-gap-001-ref.html"/>
<meta name="assert" content="Element mfrac correctly uses the FractionDenomDisplayStyleGapMin parameter from the MATH table when denominator contains text.">
<style>
math, mspace, mtext {
font-size: 20px;
}
mtext {
font-family: math-text;
color: blue;
}
@font-face {
font-family: denominatordisplaystylegapmin5000-rulethickness1000;
src: url("/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff");
}
@font-face {
/*
math-text has the following properties:
- typo/hhea/win metrics: 2.5em ascent and 2.5em descent.
- glyph A: .5em ascent and .5em descent.
- glyph B: 1em ascent and 0em descent.
- glyph C: 0em ascent and 1em descent.
*/
font-family: math-text;
src: url("/fonts/math/math-text.woff");
}
#reference {
background: green;
}
#frame {
position: absolute;
border-top: 4px solid black;
border-bottom: 4px solid black;
width: 100%;
}
</style>
<script>
function runTests() {
var div = document.getElementById("frame");
var refBox = document.getElementById("reference").getBoundingClientRect();
div.style.top = `${refBox.top-2}px`;
div.style.height = `${refBox.height-4}px`;
document.documentElement.classList.remove('reftest-wait');
}
window.addEventListener("load", function() {
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
});
</script>
</head>
<body>
<p>
This test passes if the blue squares are aligned:
</p>
<p>
<math display="block" style="font-family: denominatordisplaystylegapmin5000-rulethickness1000;">
<!-- This is a dummy mspace element to ensure that the font ascent/descent does not affect the size of the math element. -->
<mspace height="2em" depth="20em"/>
<!--
All the fraction bars must be aligned.
The gap between the denominators and bar must be FractionDenomDisplayStyleGapMin.
The gap should be calculated using the exact bounding box of the glyphs.
Hence glyphs A, B, C should be rendered at the same vertical position, even if they have different ascent/descent.
-->
<mfrac>
<mspace width="3em"/>
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
</mfrac>
<mfrac>
<mspace width="3em"/>
<mtext>A</mtext>
</mfrac>
<mfrac>
<mspace width="3em"/>
<mtext>B</mtext>
</mfrac>
<mfrac>
<mspace width="3em"/>
<mtext>C</mtext>
</mfrac>
</math>
</p>
<div id="frame"></div>
</body>
</html>

View file

@ -0,0 +1,65 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Fraction parameters</title>
<style>
math, mspace {
font-size: 20px;
}
@font-face {
font-family: denominatorgapmin4000-rulethickness1000;
src: url("/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff");
}
#reference {
background: green;
}
#frame {
position: absolute;
border-top: 4px solid black;
border-bottom: 4px solid black;
width: 100%;
}
</style>
<script>
function runTests() {
var div = document.getElementById("frame");
var refBox = document.getElementById("reference").getBoundingClientRect();
div.style.top = `${refBox.top-2}px`;
div.style.height = `${refBox.height-4}px`;
document.documentElement.classList.remove('reftest-wait');
}
window.addEventListener("load", function() {
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
});
</script>
</head>
<body>
<p>
This test passes if the blue squares are aligned:
</p>
<p>
<math style="font-family: denominatorgapmin4000-rulethickness1000;">
<mspace height="2em" depth="20em"/>
<mfrac>
<mspace width="3em"/>
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
</mfrac>
<mfrac>
<mspace width="3em"/>
<mspace width="1em" height=".5em" depth=".5em" style="background: blue"/>
</mfrac>
<mfrac>
<mspace width="3em"/>
<mspace width="1em" height="1em" style="background: blue"/>
</mfrac>
<mfrac>
<mspace width="3em"/>
<mspace width="1em" depth="1em" style="background: blue"/>
</mfrac>
</math>
</p>
<div id="frame"></div>
</body>
</html>

View file

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Fraction parameters (inline gap between bar and denominator)</title>
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fractions-mfrac">
<link rel="match" href="frac-parameters-gap-002-ref.html"/>
<meta name="assert" content="Element mfrac correctly uses the FractionDenominatorGapMin parameter from the MATH table when denominator contains text.">
<style>
math, mspace, mtext {
font-size: 20px;
}
mtext {
font-family: math-text;
color: blue;
}
@font-face {
font-family: denominatorgapmin4000-rulethickness1000;
src: url("/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff");
}
@font-face {
/*
math-text has the following properties:
- typo/hhea/win metrics: 2.5em ascent and 2.5em descent.
- glyph A: .5em ascent and .5em descent.
- glyph B: 1em ascent and 0em descent.
- glyph C: 0em ascent and 1em descent.
*/
font-family: math-text;
src: url("/fonts/math/math-text.woff");
}
#reference {
background: green;
}
#frame {
position: absolute;
border-top: 4px solid black;
border-bottom: 4px solid black;
width: 100%;
}
</style>
<script>
function runTests() {
var div = document.getElementById("frame");
var refBox = document.getElementById("reference").getBoundingClientRect();
div.style.top = `${refBox.top-2}px`;
div.style.height = `${refBox.height-4}px`;
document.documentElement.classList.remove('reftest-wait');
}
window.addEventListener("load", function() {
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
});
</script>
</head>
<body>
<p>
This test passes if the blue squares are aligned:
</p>
<p>
<math style="font-family: denominatorgapmin4000-rulethickness1000;">
<!-- This is a dummy mspace element to ensure that the font ascent/descent does not affect the size of the math element. -->
<mspace height="2em" depth="20em"/>
<!--
All the fraction bars must be aligned.
The gap between the denominators and bar must be FractionDenominatorGapMin.
The gap should be calculated using the exact bounding box of the glyphs.
Hence glyphs A, B, C should be rendered at the same vertical position, even if they have different ascent/descent.
-->
<mfrac>
<mspace width="3em"/>
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
</mfrac>
<mfrac>
<mspace width="3em"/>
<mtext>A</mtext>
</mfrac>
<mfrac>
<mspace width="3em"/>
<mtext>B</mtext>
</mfrac>
<mfrac>
<mspace width="3em"/>
<mtext>C</mtext>
</mfrac>
</math>
</p>
<div id="frame"></div>
</body>
</html>

View file

@ -0,0 +1,65 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Fraction parameters</title>
<style>
math, mspace {
font-size: 20px;
}
@font-face {
font-family: numeratordisplaystylegapmin8000-rulethickness1000;
src: url("/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff");
}
#reference {
background: green;
}
#frame {
position: absolute;
border-top: 4px solid black;
border-bottom: 4px solid black;
width: 100%;
}
</style>
<script>
function runTests() {
var div = document.getElementById("frame");
var refBox = document.getElementById("reference").getBoundingClientRect();
div.style.top = `${refBox.top-2}px`;
div.style.height = `${refBox.height-4}px`;
document.documentElement.classList.remove('reftest-wait');
}
window.addEventListener("load", function() {
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
});
</script>
</head>
<body>
<p>
This test passes if the blue squares are aligned:
</p>
<p>
<math display="block" style="font-family: numeratordisplaystylegapmin8000-rulethickness1000;">
<mspace height="20em" depth="2em"/>
<mfrac>
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
<mspace width="3em"/>
</mfrac>
<mfrac>
<mspace width="1em" depth=".5em" height=".5em" style="background: blue"/>
<mspace width="3em"/>
</mfrac>
<mfrac>
<mspace width="1em" height="1em" style="background: blue"/>
<mspace width="3em"/>
</mfrac>
<mfrac>
<mspace width="1em" depth="1em" style="background: blue"/>
<mspace width="3em"/>
</mfrac>
</math>
</p>
<div id="frame"></div>
</body>
</html>

View file

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Fraction parameters (display gap between bar and numerator)</title>
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fractions-mfrac">
<link rel="match" href="frac-parameters-gap-003-ref.html"/>
<meta name="assert" content="Element mfrac correctly uses the FractionNumDisplayStyleGapMin parameter from the MATH table when numerator contains text.">
<style>
math, mspace, mtext {
font-size: 20px;
}
mtext {
font-family: math-text;
color: blue;
}
@font-face {
font-family: numeratordisplaystylegapmin8000-rulethickness1000;
src: url("/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff");
}
@font-face {
/*
math-text has the following properties:
- typo/hhea/win metrics: 2.5em ascent and 2.5em descent.
- glyph A: .5em ascent and .5em descent.
- glyph B: 1em ascent and 0em descent.
- glyph C: 0em ascent and 1em descent.
*/
font-family: math-text;
src: url("/fonts/math/math-text.woff");
}
#reference {
background: green;
}
#frame {
position: absolute;
border-top: 4px solid black;
border-bottom: 4px solid black;
width: 100%;
}
</style>
<script>
function runTests() {
var div = document.getElementById("frame");
var refBox = document.getElementById("reference").getBoundingClientRect();
div.style.top = `${refBox.top-2}px`;
div.style.height = `${refBox.height-4}px`;
document.documentElement.classList.remove('reftest-wait');
}
window.addEventListener("load", function() {
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
});
</script>
</head>
<body>
<p>
This test passes if the blue squares are aligned:
</p>
<p>
<math display="block" style="font-family: numeratordisplaystylegapmin8000-rulethickness1000;">
<!-- This is a dummy mspace element to ensure that the font ascent/descent does not affect the size of the math element. -->
<mspace height="20em" depth="2em"/>
<!--
All the fraction bars must be aligned.
The gap between the numerators and bar must be FractionNumDisplayStyleGapMin.
The gap should be calculated using the exact bounding box of the glyphs.
Hence glyphs A, B, C should be rendered at the same vertical position, even if they have different ascent/descent.
-->
<mfrac>
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
<mspace width="3em"/>
</mfrac>
<mfrac>
<mtext>A</mtext>
<mspace width="3em"/>
</mfrac>
<mfrac>
<mtext>B</mtext>
<mspace width="3em"/>
</mfrac>
<mfrac>
<mtext>C</mtext>
<mspace width="3em"/>
</mfrac>
</math>
</p>
<div id="frame"></div>
</body>
</html>

View file

@ -0,0 +1,65 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Fraction parameters</title>
<style>
math, mspace {
font-size: 20px;
}
@font-face {
font-family: numeratorgapmin9000-rulethickness1000;
src: url("/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff");
}
#reference {
background: green;
}
#frame {
position: absolute;
border-top: 4px solid black;
border-bottom: 4px solid black;
width: 100%;
}
</style>
<script>
function runTests() {
var div = document.getElementById("frame");
var refBox = document.getElementById("reference").getBoundingClientRect();
div.style.top = `${refBox.top-2}px`;
div.style.height = `${refBox.height-4}px`;
document.documentElement.classList.remove('reftest-wait');
}
window.addEventListener("load", function() {
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
});
</script>
</head>
<body>
<p>
This test passes if the blue squares are aligned:
</p>
<p>
<math style="font-family: numeratorgapmin9000-rulethickness1000;">
<mspace height="20em" depth="2em"/>
<mfrac>
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
<mspace width="3em"/>
</mfrac>
<mfrac>
<mspace width="1em" height=".5em" depth=".5em" style="background: blue"/>
<mspace width="3em"/>
</mfrac>
<mfrac>
<mspace width="1em" height="1em" style="background: blue"/>
<mspace width="3em"/>
</mfrac>
<mfrac>
<mspace width="1em" depth="1em" style="background: blue"/>
<mspace width="3em"/>
</mfrac>
</math>
</p>
<div id="frame"></div>
</body>
</html>

View file

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Fraction parameters (inline gap between bar and numerator)</title>
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fractions-mfrac">
<link rel="match" href="frac-parameters-gap-004-ref.html"/>
<meta name="assert" content="Element mfrac correctly uses the FractionNumeratorGapMin parameter from the MATH table when numerator contains text.">
<style>
math, mspace, mtext {
font-size: 20px;
}
mtext {
font-family: math-text;
color: blue;
}
@font-face {
font-family: numeratorgapmin9000-rulethickness1000;
src: url("/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff");
}
@font-face {
/*
math-text has the following properties:
- typo/hhea/win metrics: 2.5em ascent and 2.5em descent.
- glyph A: .5em ascent and .5em descent.
- glyph B: 1em ascent and 0em descent.
- glyph C: 0em ascent and 1em descent.
*/
font-family: math-text;
src: url("/fonts/math/math-text.woff");
}
#reference {
background: green;
}
#frame {
position: absolute;
border-top: 4px solid black;
border-bottom: 4px solid black;
width: 100%;
}
</style>
<script>
function runTests() {
var div = document.getElementById("frame");
var refBox = document.getElementById("reference").getBoundingClientRect();
div.style.top = `${refBox.top-2}px`;
div.style.height = `${refBox.height-4}px`;
document.documentElement.classList.remove('reftest-wait');
}
window.addEventListener("load", function() {
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
});
</script>
</head>
<body>
<p>
This test passes if the blue squares are aligned:
</p>
<p>
<math style="font-family: numeratorgapmin9000-rulethickness1000;">
<!-- This is a dummy mspace element to ensure that the font ascent/descent does not affect the size of the math element. -->
<mspace height="20em" depth="2em"/>
<!--
All the fraction bars must be aligned.
The gap between the numerators and bar must be FractionNumeratorGapMin.
The gap should be calculated using the exact bounding box of the glyphs.
Hence glyphs A, B, C should be rendered at the same vertical position, even if they have different ascent/descent.
-->
<mfrac>
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
<mspace width="3em"/>
</mfrac>
<mfrac>
<mtext>A</mtext>
<mspace width="3em"/>
</mfrac>
<mfrac>
<mtext>B</mtext>
<mspace width="3em"/>
</mfrac>
<mfrac>
<mtext>C</mtext>
<mspace width="3em"/>
</mfrac>
</math>
</p>
<div id="frame"></div>
</body>
</html>

View file

@ -0,0 +1,65 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Fraction parameters</title>
<style>
math, mspace {
font-size: 20px;
}
@font-face {
font-family: displaystylegapmin4000;
src: url("/fonts/math/stack-displaystylegapmin4000.woff");
}
#reference {
background: green;
}
#frame {
position: absolute;
border-top: 4px solid black;
border-bottom: 4px solid black;
width: 100%;
}
</style>
<script>
function runTests() {
var div = document.getElementById("frame");
var refBox = document.getElementById("reference").getBoundingClientRect();
div.style.top = `${refBox.top-2}px`;
div.style.height = `${refBox.height-4}px`;
document.documentElement.classList.remove('reftest-wait');
}
window.addEventListener("load", function() {
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
});
</script>
</head>
<body>
<p>
This test passes if the blue squares are aligned:
</p>
<p>
<math display="block" style="font-family: displaystylegapmin4000">
<mspace height="10em" depth="10em"/>
<mfrac linethickness="0px">
<mspace width="3em" depth="1em"/>
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
</mfrac>
<mfrac linethickness="0px">
<mspace width="3em" depth="1em"/>
<mspace width="1em" height=".5em" depth=".5em" style="background: blue"/>
</mfrac>
<mfrac linethickness="0px">
<mspace width="3em" depth="1.5em"/>
<mspace width="1em" height="1em" style="background: blue"/>
</mfrac>
<mfrac linethickness="0px">
<mspace width="3em" depth=".5em"/>
<mspace width="1em" depth="1em" style="background: blue"/>
</mfrac>
</math>
</p>
<div id="frame"></div>
</body>
</html>

View file

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Stack parameters (display gap between numerator and denominator)</title>
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fractions-mfrac">
<link rel="match" href="frac-parameters-gap-005-ref.html"/>
<meta name="assert" content="Element mfrac with zero linethickness correctly uses the StackDisplayStyleGapMin parameter from the MATH table when denominator contains text.">
<style>
math, mspace, mtext {
font-size: 20px;
}
mtext {
font-family: math-text;
color: blue;
}
@font-face {
font-family: displaystylegapmin4000;
src: url("/fonts/math/stack-displaystylegapmin4000.woff");
}
@font-face {
/*
math-text has the following properties:
- typo/hhea/win metrics: 2.5em ascent and 2.5em descent.
- glyph A: .5em ascent and .5em descent.
- glyph B: 1em ascent and 0em descent.
- glyph C: 0em ascent and 1em descent.
*/
font-family: math-text;
src: url("/fonts/math/math-text.woff");
}
#reference {
background: green;
}
#frame {
position: absolute;
border-top: 4px solid black;
border-bottom: 4px solid black;
width: 100%;
}
</style>
<script>
function runTests() {
var div = document.getElementById("frame");
var refBox = document.getElementById("reference").getBoundingClientRect();
div.style.top = `${refBox.top-2}px`;
div.style.height = `${refBox.height-4}px`;
document.documentElement.classList.remove('reftest-wait');
}
window.addEventListener("load", function() {
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
});
</script>
</head>
<body>
<p>
This test passes if the blue squares are aligned:
</p>
<p>
<math display="block" style="font-family: displaystylegapmin4000">
<!-- This is a dummy mspace element to ensure that the font ascent/descent does not affect the size of the math element. -->
<mspace height="10em" depth="10em"/>
<!--
The gap between the numerators/denominators and the math axis must StackDisplayStyleGapMin / 2.
The gap should be calculated using the exact bounding box of the glyphs.
The numerator descent is .5em + the denominator ascent.
Hence glyphs A, B, C should be rendered at the same vertical position, even if they have different ascent/descent.
-->
<mfrac linethickness="0px">
<mspace width="3em" depth="1em"/>
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
</mfrac>
<mfrac linethickness="0px">
<mspace width="3em" depth="1em"/>
<mtext>A</mtext>
</mfrac>
<mfrac linethickness="0px">
<mspace width="3em" depth="1.5em"/>
<mtext>B</mtext>
</mfrac>
<mfrac linethickness="0px">
<mspace width="3em" depth=".5em"/>
<mtext>C</mtext>
</mfrac>
</math>
</p>
<div id="frame"></div>
</body>
</html>

View file

@ -0,0 +1,65 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Fraction parameters</title>
<style>
math, mspace {
font-size: 20px;
}
@font-face {
font-family: gapmin8000;
src: url("/fonts/math/stack-gapmin8000.woff");
}
#reference {
background: green;
}
#frame {
position: absolute;
border-top: 4px solid black;
border-bottom: 4px solid black;
width: 100%;
}
</style>
<script>
function runTests() {
var div = document.getElementById("frame");
var refBox = document.getElementById("reference").getBoundingClientRect();
div.style.top = `${refBox.top-2}px`;
div.style.height = `${refBox.height-4}px`;
document.documentElement.classList.remove('reftest-wait');
}
window.addEventListener("load", function() {
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
});
</script>
</head>
<body>
<p>
This test passes if the blue squares are aligned:
</p>
<p>
<math style="font-family: gapmin8000">
<mspace height="10em" depth="10em"/>
<mfrac linethickness="0px">
<mspace width="3em" depth="1em"/>
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
</mfrac>
<mfrac linethickness="0px">
<mspace width="3em" depth="1em"/>
<mspace width="1em" height=".5em" depth=".5em" style="background: blue"/>
</mfrac>
<mfrac linethickness="0px">
<mspace width="3em" depth="1.5em"/>
<mspace width="1em" height="1em" style="background: blue"/>
</mfrac>
<mfrac linethickness="0px">
<mspace width="3em" depth=".5em"/>
<mspace width="1em" depth="1em" style="background: blue"/>
</mfrac>
</math>
</p>
<div id="frame"></div>
</body>
</html>

View file

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Stack parameters (display gap between numerator and denominator)</title>
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fractions-mfrac">
<link rel="match" href="frac-parameters-gap-006-ref.html"/>
<meta name="assert" content="Element mfrac with zero linethickness correctly uses the StackGapMin parameter from the MATH table when denominator contains text.">
<style>
math, mspace, mtext {
font-size: 20px;
}
mtext {
font-family: math-text;
color: blue;
}
@font-face {
font-family: gapmin8000;
src: url("/fonts/math/stack-gapmin8000.woff");
}
@font-face {
/*
math-text has the following properties:
- typo/hhea/win metrics: 2.5em ascent and 2.5em descent.
- glyph A: .5em ascent and .5em descent.
- glyph B: 1em ascent and 0em descent.
- glyph C: 0em ascent and 1em descent.
*/
font-family: math-text;
src: url("/fonts/math/math-text.woff");
}
#reference {
background: green;
}
#frame {
position: absolute;
border-top: 4px solid black;
border-bottom: 4px solid black;
width: 100%;
}
</style>
<script>
function runTests() {
var div = document.getElementById("frame");
var refBox = document.getElementById("reference").getBoundingClientRect();
div.style.top = `${refBox.top-2}px`;
div.style.height = `${refBox.height-4}px`;
document.documentElement.classList.remove('reftest-wait');
}
window.addEventListener("load", function() {
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
});
</script>
</head>
<body>
<p>
This test passes if the blue squares are aligned:
</p>
<p>
<math style="font-family: gapmin8000">
<!-- This is a dummy mspace element to ensure that the font ascent/descent does not affect the size of the math element. -->
<mspace height="10em" depth="10em"/>
<!--
The gap between the numerators/denominators and the math axis must StackGapMin / 2.
The gap should be calculated using the exact bounding box of the glyphs.
The numerator descent is .5em + the denominator ascent.
Hence glyphs A, B, C should be rendered at the same vertical position, even if they have different ascent/descent.
-->
<mfrac linethickness="0px">
<mspace width="3em" depth="1em"/>
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
</mfrac>
<mfrac linethickness="0px">
<mspace width="3em" depth="1em"/>
<mtext>A</mtext>
</mfrac>
<mfrac linethickness="0px">
<mspace width="3em" depth="1.5em"/>
<mtext>B</mtext>
</mfrac>
<mfrac linethickness="0px">
<mspace width="3em" depth=".5em"/>
<mtext>C</mtext>
</mfrac>
</math>
</p>
<div id="frame"></div>
</body>
</html>

View file

@ -0,0 +1,65 @@
#!/usr/bin/python
from __future__ import print_function
import fontforge
font = fontforge.font()
font.em = 1000
lineHeight = 5000
name = "math-text"
font.fontname = name
font.familyname = name
font.fullname = name
font.copyright = "Copyright (c) 2019 Igalia"
glyph = font.createChar(ord(" "), "space")
glyph.width = 1000
glyph = font.createChar(ord("A"))
pen = glyph.glyphPen()
pen.moveTo(0, -500)
pen.lineTo(0, 500)
pen.lineTo(1000, 500)
pen.lineTo(1000, -500)
pen.closePath();
glyph = font.createChar(ord("B"))
pen = glyph.glyphPen()
pen.moveTo(0, 0)
pen.lineTo(0, 1000)
pen.lineTo(1000, 1000)
pen.lineTo(1000, 0)
pen.closePath();
glyph = font.createChar(ord("C"))
pen = glyph.glyphPen()
pen.moveTo(0, -1000)
pen.lineTo(0, 0)
pen.lineTo(1000, 0)
pen.lineTo(1000, -1000)
pen.closePath();
font.os2_typoascent_add = False
font.os2_typoascent = lineHeight / 2
font.os2_typodescent_add = False
font.os2_typodescent = -lineHeight / 2
font.os2_typolinegap = 0
font.hhea_ascent = lineHeight / 2
font.hhea_ascent_add = False
font.hhea_descent = -lineHeight / 2
font.hhea_descent_add = False
font.hhea_linegap = 0
font.os2_winascent = lineHeight / 2
font.os2_winascent_add = False
font.os2_windescent = lineHeight / 2
font.os2_windescent_add = False
font.os2_use_typo_metrics = True
path = "../../fonts/math/math-text.woff"
print("Generating %s..." % path, end="")
font.generate(path)
if font.validate() == 0:
print(" done.")
else:
print(" validation error!")
exit(1)