--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8" />
+ <title>Dot | My Project</title>
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,600i%7CSource+Code+Pro:400,400i,600" />
+ <link rel="stylesheet" href="m-dark+documentation.compiled.css" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+ <div class="m-container">
+ <div class="m-row">
+ <a href="index.html" id="m-navbar-brand" class="m-col-t-8 m-col-m-none m-left-m">My Project</a>
+ </div>
+ </div>
+</nav></header>
+<main><article>
+ <div class="m-container m-container-inflatable">
+ <div class="m-row">
+ <div class="m-col-l-10 m-push-l-1">
+ <h1>
+ Dot
+ </h1>
+<p>A red graph:</p><div class="m-graph m-danger"><svg style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
+<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g class="m-node m-flat">
+<title>a</title>
+<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-87.3543">a</text>
+</g>
+<g class="m-node m-flat">
+<title>b</title>
+<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-14.5848">b</text>
+</g>
+<g class="m-edge">
+<title>a--b</title>
+<path d="M27,-72.4144C27,-61.4654 27,-47.7036 27,-36.8093"/>
+</g>
+</g>
+</svg>
+</div><p>A blue graph, from a file:</p><div class="m-graph m-info"><svg style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
+<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g class="m-node m-flat">
+<title>a</title>
+<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-87.3543">a</text>
+</g>
+<g class="m-node m-flat">
+<title>b</title>
+<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-14.5848">b</text>
+</g>
+<g class="m-edge">
+<title>a--b</title>
+<path d="M27,-72.4144C27,-61.4654 27,-47.7036 27,-36.8093"/>
+</g>
+</g>
+</svg>
+</div>
+ </div>
+ </div>
+ </div>
+</article></main>
+</body>
+</html>
Dot
</h1>
<p>A red graph:</p><div class="m-graph m-danger"><svg style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
-<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g transform="scale(1 1) rotate(0) translate(4 113.54)">
<g class="m-node m-flat">
<title>a</title>
-<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-87.3543">a</text>
+<ellipse cx="27" cy="-91.15" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-87.35">a</text>
</g>
<g class="m-node m-flat">
<title>b</title>
-<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-14.5848">b</text>
+<ellipse cx="27" cy="-18.38" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-14.58">b</text>
</g>
<g class="m-edge">
<title>a--b</title>
-<path d="M27,-72.4144C27,-61.4654 27,-47.7036 27,-36.8093"/>
+<path d="M27,-72.66C27,-61.85 27,-48.03 27,-37.17"/>
</g>
</g>
</svg>
</div><p>A blue graph, from a file:</p><div class="m-graph m-info"><svg style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
-<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g transform="scale(1 1) rotate(0) translate(4 113.54)">
<g class="m-node m-flat">
<title>a</title>
-<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-87.3543">a</text>
+<ellipse cx="27" cy="-91.15" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-87.35">a</text>
</g>
<g class="m-node m-flat">
<title>b</title>
-<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-14.5848">b</text>
+<ellipse cx="27" cy="-18.38" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-14.58">b</text>
</g>
<g class="m-edge">
<title>a--b</title>
-<path d="M27,-72.4144C27,-61.4654 27,-47.7036 27,-36.8093"/>
+<path d="M27,-72.66C27,-61.85 27,-48.03 27,-37.17"/>
</g>
</g>
</svg>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8" />
+ <title>My Project</title>
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,600i%7CSource+Code+Pro:400,400i,600" />
+ <link rel="stylesheet" href="m-dark+documentation.compiled.css" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+ <div class="m-container">
+ <div class="m-row">
+ <a href="index.html" id="m-navbar-brand" class="m-col-t-8 m-col-m-none m-left-m">My Project</a>
+ </div>
+ </div>
+</nav></header>
+<main><article>
+ <div class="m-container m-container-inflatable">
+ <div class="m-row">
+ <div class="m-col-l-10 m-push-l-1">
+ <h1>
+ My Project
+ </h1>
+<p>Note: the test uses DejaVu Sans instead of Source Sans Pro in order to have predictable rendering on the CIs.</p><div class="m-graph"><svg style="width: 16.250rem; height: 5.312rem;" viewBox="0.00 0.00 259.77 84.77">
+<g transform="scale(1 1) rotate(0) translate(4 80.7696)">
+<title>Basics</title>
+<g class="m-node">
+<title>a</title>
+<polygon points="54,-40.3848 0,-40.3848 0,-4.3848 54,-4.3848 54,-40.3848"/>
+<text text-anchor="middle" x="27" y="-18.5848">a</text>
+</g>
+<g class="m-node m-flat">
+<title>b</title>
+<ellipse cx="113.3848" cy="-22.3848" rx="18.2906" ry="18.2906"/>
+<ellipse cx="113.3848" cy="-22.3848" rx="22.2701" ry="22.2701"/>
+<text text-anchor="middle" x="113.3848" y="-18.5848">b</text>
+</g>
+<g class="m-edge">
+<title>a->b</title>
+<path d="M54.3327,-22.3848C62.6964,-22.3848 71.9814,-22.3848 80.6653,-22.3848"/>
+<polygon points="80.8574,-25.8849 90.8574,-22.3848 80.8574,-18.8849 80.8574,-25.8849"/>
+</g>
+<g class="m-node m-flat">
+<title>c</title>
+<ellipse cx="224.7696" cy="-22.3848" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="224.7696" y="-18.5848">c</text>
+</g>
+<g class="m-edge">
+<title>b->c</title>
+<path d="M135.9251,-22.3848C150.665,-22.3848 170.2762,-22.3848 187.3232,-22.3848"/>
+<polygon points="187.5396,-25.8849 197.5396,-22.3848 187.5396,-18.8849 187.5396,-25.8849"/>
+<text text-anchor="middle" x="166.7696" y="-34.3848" style="font-size: 40.0px;">0</text>
+</g>
+<g class="m-edge">
+<title>c->c</title>
+<path d="M214.4919,-39.6042C212.3945,-49.5298 215.8203,-58.7696 224.7696,-58.7696 230.5026,-58.7696 233.969,-54.9775 235.1685,-49.6425"/>
+<polygon points="238.6679,-49.5611 235.0472,-39.6042 231.6684,-49.6458 238.6679,-49.5611"/>
+<text text-anchor="middle" x="224.7696" y="-63.9696">1</text>
+</g>
+</g>
+</svg>
+</div><div class="m-graph"><svg style="width: 5.688rem; height: 8.500rem;" viewBox="0.00 0.00 91.38 135.54">
+<g transform="scale(1 1) rotate(0) translate(4 131.5391)">
+<title>Colors</title>
+<g class="m-node m-success m-flat">
+<title>a</title>
+<ellipse cx="27" cy="-109.1543" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-105.3543">a</text>
+</g>
+<g class="m-node m-dim">
+<title>b</title>
+<ellipse cx="27" cy="-18.3848" rx="18.2703" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-14.5848">b</text>
+</g>
+<g class="m-edge m-warning">
+<title>a->b</title>
+<path d="M27,-90.3468C27,-77.8501 27,-61.2025 27,-47.0671"/>
+<polygon points="30.5001,-46.8576 27,-36.8576 23.5001,-46.8577 30.5001,-46.8576"/>
+<text text-anchor="middle" x="41" y="-59.9696">yes</text>
+</g>
+<g class="m-edge m-primary">
+<title>b->b</title>
+<path d="M43.8422,-26.1192C53.9096,-27.8379 63.3848,-25.2598 63.3848,-18.3848 63.3848,-13.9805 59.4961,-11.3396 54.0544,-10.4622"/>
+<polygon points="53.776,-6.9666 43.8422,-10.6504 53.905,-13.9655 53.776,-6.9666"/>
+<text text-anchor="middle" x="73.3848" y="-14.5848">no</text>
+</g>
+</g>
+</svg>
+</div><figure class="m-figure"><svg class="m-graph" style="width: 5rem;" viewBox="0.00 0.00 62.00 117.54">
+<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g class="m-node m-flat">
+<title>a</title>
+<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-87.3543">a</text>
+</g>
+<g class="m-node m-flat">
+<title>b</title>
+<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-14.5848">b</text>
+</g>
+<g class="m-edge">
+<title>a--b</title>
+<path d="M27,-72.4144C27,-61.4654 27,-47.7036 27,-36.8093"/>
+</g>
+</g>
+</svg>
+<figcaption>A graph</figcaption></figure><figure class="m-figure"><svg class="m-graph" style="height: 5rem;" viewBox="0.00 0.00 62.00 117.54">
+<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g class="m-node m-flat">
+<title>a</title>
+<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-87.3543">a</text>
+</g>
+<g class="m-node m-flat">
+<title>b</title>
+<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-14.5848">b</text>
+</g>
+<g class="m-edge">
+<title>a--b</title>
+<path d="M27,-72.4144C27,-61.4654 27,-47.7036 27,-36.8093"/>
+</g>
+</g>
+</svg>
+<figcaption>A graph</figcaption></figure>
+ </div>
+ </div>
+ </div>
+</article></main>
+</body>
+</html>
<h1>
My Project
</h1>
-<p>Note: the test uses DejaVu Sans instead of Source Sans Pro in order to have predictable rendering on the CIs.</p><div class="m-graph"><svg style="width: 16.250rem; height: 5.312rem;" viewBox="0.00 0.00 259.77 84.77">
-<g transform="scale(1 1) rotate(0) translate(4 80.7696)">
+<p>Note: the test uses DejaVu Sans instead of Source Sans Pro in order to have predictable rendering on the CIs.</p><div class="m-graph"><svg style="width: 16.312rem; height: 5.312rem;" viewBox="0.00 0.00 261.18 85.48">
+<g transform="scale(1 1) rotate(0) translate(4 81.48)">
<title>Basics</title>
<g class="m-node">
<title>a</title>
-<polygon points="54,-40.3848 0,-40.3848 0,-4.3848 54,-4.3848 54,-40.3848"/>
-<text text-anchor="middle" x="27" y="-18.5848">a</text>
+<polygon points="54,-41.09 0,-41.09 0,-5.09 54,-5.09 54,-41.09"/>
+<text text-anchor="middle" x="27" y="-19.29">a</text>
</g>
<g class="m-node m-flat">
<title>b</title>
-<ellipse cx="113.3848" cy="-22.3848" rx="18.2906" ry="18.2906"/>
-<ellipse cx="113.3848" cy="-22.3848" rx="22.2701" ry="22.2701"/>
-<text text-anchor="middle" x="113.3848" y="-18.5848">b</text>
+<ellipse cx="114.09" cy="-23.09" rx="19.17" ry="19.17"/>
+<ellipse cx="114.09" cy="-23.09" rx="23.18" ry="23.18"/>
+<text text-anchor="middle" x="114.09" y="-19.29">b</text>
</g>
<g class="m-edge">
<title>a->b</title>
-<path d="M54.3327,-22.3848C62.6964,-22.3848 71.9814,-22.3848 80.6653,-22.3848"/>
-<polygon points="80.8574,-25.8849 90.8574,-22.3848 80.8574,-18.8849 80.8574,-25.8849"/>
+<path d="M54.46,-23.09C62.78,-23.09 72.07,-23.09 80.75,-23.09"/>
+<polygon points="80.94,-26.59 90.94,-23.09 80.94,-19.59 80.94,-26.59"/>
</g>
<g class="m-node m-flat">
<title>c</title>
-<ellipse cx="224.7696" cy="-22.3848" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="224.7696" y="-18.5848">c</text>
+<ellipse cx="226.18" cy="-23.09" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="226.18" y="-19.29">c</text>
</g>
<g class="m-edge">
<title>b->c</title>
-<path d="M135.9251,-22.3848C150.665,-22.3848 170.2762,-22.3848 187.3232,-22.3848"/>
-<polygon points="187.5396,-25.8849 197.5396,-22.3848 187.5396,-18.8849 187.5396,-25.8849"/>
-<text text-anchor="middle" x="166.7696" y="-34.3848" style="font-size: 40.0px;">0</text>
+<path d="M137.37,-23.09C152.15,-23.09 171.88,-23.09 188.89,-23.09"/>
+<polygon points="189.07,-26.59 199.07,-23.09 189.07,-19.59 189.07,-26.59"/>
+<text text-anchor="middle" x="168.18" y="-35.09" style="font-size: 40.0px;">0</text>
</g>
<g class="m-edge">
<title>c->c</title>
-<path d="M214.4919,-39.6042C212.3945,-49.5298 215.8203,-58.7696 224.7696,-58.7696 230.5026,-58.7696 233.969,-54.9775 235.1685,-49.6425"/>
-<polygon points="238.6679,-49.5611 235.0472,-39.6042 231.6684,-49.6458 238.6679,-49.5611"/>
-<text text-anchor="middle" x="224.7696" y="-63.9696">1</text>
+<path d="M215.91,-40.31C213.81,-50.24 217.23,-59.48 226.18,-59.48 231.92,-59.48 235.38,-55.68 236.58,-50.35"/>
+<polygon points="240.08,-50.27 236.46,-40.31 233.08,-50.35 240.08,-50.27"/>
+<text text-anchor="middle" x="226.18" y="-64.68">1</text>
</g>
</g>
</svg>
-</div><div class="m-graph"><svg style="width: 5.688rem; height: 8.500rem;" viewBox="0.00 0.00 91.38 135.54">
-<g transform="scale(1 1) rotate(0) translate(4 131.5391)">
+</div><div class="m-graph"><svg style="width: 5.812rem; height: 8.562rem;" viewBox="0.00 0.00 93.09 136.95">
+<g transform="scale(1 1) rotate(0) translate(4 132.95)">
<title>Colors</title>
<g class="m-node m-success m-flat">
<title>a</title>
-<ellipse cx="27" cy="-109.1543" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-105.3543">a</text>
+<ellipse cx="27" cy="-110.57" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-106.77">a</text>
</g>
<g class="m-node m-dim">
<title>b</title>
-<ellipse cx="27" cy="-18.3848" rx="18.2703" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-14.5848">b</text>
+<ellipse cx="27" cy="-19.09" rx="19.18" ry="19.18"/>
+<text text-anchor="middle" x="27" y="-15.29">b</text>
</g>
<g class="m-edge m-warning">
<title>a->b</title>
-<path d="M27,-90.3468C27,-77.8501 27,-61.2025 27,-47.0671"/>
-<polygon points="30.5001,-46.8576 27,-36.8576 23.5001,-46.8577 30.5001,-46.8576"/>
-<text text-anchor="middle" x="41" y="-59.9696">yes</text>
+<path d="M27,-91.89C27,-79.55 27,-62.82 27,-48.61"/>
+<polygon points="30.5,-48.35 27,-38.35 23.5,-48.35 30.5,-48.35"/>
+<text text-anchor="middle" x="41" y="-61.38">yes</text>
</g>
<g class="m-edge m-primary">
<title>b->b</title>
-<path d="M43.8422,-26.1192C53.9096,-27.8379 63.3848,-25.2598 63.3848,-18.3848 63.3848,-13.9805 59.4961,-11.3396 54.0544,-10.4622"/>
-<polygon points="53.776,-6.9666 43.8422,-10.6504 53.905,-13.9655 53.776,-6.9666"/>
-<text text-anchor="middle" x="73.3848" y="-14.5848">no</text>
+<path d="M44.55,-27.24C54.67,-28.91 64.09,-26.19 64.09,-19.09 64.09,-14.54 60.23,-11.8 54.79,-10.84"/>
+<polygon points="54.52,-7.35 44.55,-10.94 54.59,-14.35 54.52,-7.35"/>
+<text text-anchor="middle" x="74.59" y="-15.29">no</text>
</g>
</g>
</svg>
</div><figure class="m-figure"><svg class="m-graph" style="width: 5rem;" viewBox="0.00 0.00 62.00 117.54">
-<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g transform="scale(1 1) rotate(0) translate(4 113.54)">
<g class="m-node m-flat">
<title>a</title>
-<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-87.3543">a</text>
+<ellipse cx="27" cy="-91.15" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-87.35">a</text>
</g>
<g class="m-node m-flat">
<title>b</title>
-<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-14.5848">b</text>
+<ellipse cx="27" cy="-18.38" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-14.58">b</text>
</g>
<g class="m-edge">
<title>a--b</title>
-<path d="M27,-72.4144C27,-61.4654 27,-47.7036 27,-36.8093"/>
+<path d="M27,-72.66C27,-61.85 27,-48.03 27,-37.17"/>
</g>
</g>
</svg>
<figcaption>A graph</figcaption></figure><figure class="m-figure"><svg class="m-graph" style="height: 5rem;" viewBox="0.00 0.00 62.00 117.54">
-<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g transform="scale(1 1) rotate(0) translate(4 113.54)">
<g class="m-node m-flat">
<title>a</title>
-<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-87.3543">a</text>
+<ellipse cx="27" cy="-91.15" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-87.35">a</text>
</g>
<g class="m-node m-flat">
<title>b</title>
-<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-14.5848">b</text>
+<ellipse cx="27" cy="-18.38" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-14.58">b</text>
</g>
<g class="m-edge">
<title>a--b</title>
-<path d="M27,-72.4144C27,-61.4654 27,-47.7036 27,-36.8093"/>
+<path d="M27,-72.66C27,-61.85 27,-48.03 27,-37.17"/>
</g>
</g>
</svg>
self.run_doxygen(wildcard='math.xml')
self.assertEqual(*self.actual_expected_contents('math.html'))
- @unittest.skipUnless(LooseVersion(dot_version()) >= LooseVersion("2.40.1"),
- "Dot < 2.40.1 has a completely different output.")
def test_dot(self):
self.run_doxygen(wildcard='dot.xml')
- self.assertEqual(*self.actual_expected_contents('dot.html'))
- @unittest.skipUnless(LooseVersion(dot_version()) < LooseVersion("2.40.1") and
- LooseVersion(dot_version()) >= LooseVersion("2.38.0"),
- "Dot < 2.38 and dot > 2.38 has a completely different output.")
- def test_dot238(self):
- self.run_doxygen(wildcard='dot.xml')
- self.assertEqual(*self.actual_expected_contents('dot.html', 'dot-238.html'))
+ if LooseVersion(dot_version()) >= LooseVersion("2.44.0"):
+ file = 'dot.html'
+ elif LooseVersion(dot_version()) > LooseVersion("2.40.0"):
+ file = 'dot-240.html'
+ elif LooseVersion(dot_version()) >= LooseVersion("2.38.0"):
+ file = 'dot-238.html'
+ else:
+ file = 'dot-236.html'
- @unittest.skipUnless(LooseVersion(dot_version()) < LooseVersion("2.38.0"),
- "Dot > 2.36 has a completely different output.")
- def test_dot236(self):
- self.run_doxygen(wildcard='dot.xml')
- self.assertEqual(*self.actual_expected_contents('dot.html', 'dot-236.html'))
+ self.assertEqual(*self.actual_expected_contents('dot.html', file))
class ParseError(BaseTestCase):
def __init__(self, *args, **kwargs):
def __init__(self, *args, **kwargs):
super().__init__(__file__, 'dot', *args, **kwargs)
- @unittest.skipUnless(LooseVersion(dot_version()) >= LooseVersion("2.40.1"),
- "Dot < 2.40.1 has a completely different output.")
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
- self.assertEqual(*self.actual_expected_contents('index.html'))
- @unittest.skipUnless(LooseVersion(dot_version()) < LooseVersion("2.40.1"),
- "Dot < 2.40.1 has a completely different output.")
- def test_238(self):
- self.run_doxygen(wildcard='indexpage.xml')
- self.assertEqual(*self.actual_expected_contents('index.html', 'index-238.html'))
+ if LooseVersion(dot_version()) >= LooseVersion("2.44.0"):
+ file = 'index.html'
+ elif LooseVersion(dot_version()) > LooseVersion("2.40.0"):
+ file = 'index-240.html'
+ elif LooseVersion(dot_version()) >= LooseVersion("2.38.0"):
+ file = 'index-238.html'
+
+ self.assertEqual(*self.actual_expected_contents('index.html', file))
def test_warnings(self):
self.run_doxygen(wildcard='warnings.xml')
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8" />
+ <title>Dot | My Python Project</title>
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,600i%7CSource+Code+Pro:400,400i,600" />
+ <link rel="stylesheet" href="m-dark+documentation.compiled.css" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+ <div class="m-container">
+ <div class="m-row">
+ <a href="index.html" id="m-navbar-brand" class="m-col-t-8 m-col-m-none m-left-m">My Python Project</a>
+ </div>
+ </div>
+</nav></header>
+<main><article>
+ <div class="m-container m-container-inflatable">
+ <div class="m-row">
+ <div class="m-col-l-10 m-push-l-1">
+ <h1>
+ Dot
+ </h1>
+<div class="m-graph m-warning">
+<svg style="width: 3.875rem; height: 11.875rem;" viewBox="0.00 0.00 62.00 190.31">
+<g transform="scale(1 1) rotate(0) translate(4 186.3087)">
+<g class="m-node m-flat">
+<title>a</title>
+<ellipse cx="27" cy="-163.9239" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-160.1239">a</text>
+</g>
+<g class="m-node m-flat">
+<title>b</title>
+<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-87.3543">b</text>
+</g>
+<g class="m-edge">
+<title>a->b</title>
+<path d="M27,-145.1839C27,-137.3999 27,-128.1942 27,-119.6079"/>
+<polygon points="30.5001,-119.5788 27,-109.5789 23.5001,-119.5789 30.5001,-119.5788"/>
+</g>
+<g class="m-node m-flat">
+<title>c</title>
+<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-14.5848">c</text>
+</g>
+<g class="m-edge">
+<title>b->c</title>
+<path d="M27,-72.4144C27,-64.6303 27,-55.4246 27,-46.8383"/>
+<polygon points="30.5001,-46.8093 27,-36.8093 23.5001,-46.8094 30.5001,-46.8093"/>
+</g>
+</g>
+</svg>
+</div>
+ </div>
+ </div>
+ </div>
+</article></main>
+</body>
+</html>
</h1>
<div class="m-graph m-warning">
<svg style="width: 3.875rem; height: 11.875rem;" viewBox="0.00 0.00 62.00 190.31">
-<g transform="scale(1 1) rotate(0) translate(4 186.3087)">
+<g transform="scale(1 1) rotate(0) translate(4 186.31)">
<g class="m-node m-flat">
<title>a</title>
-<ellipse cx="27" cy="-163.9239" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-160.1239">a</text>
+<ellipse cx="27" cy="-163.92" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-160.12">a</text>
</g>
<g class="m-node m-flat">
<title>b</title>
-<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-87.3543">b</text>
+<ellipse cx="27" cy="-91.15" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-87.35">b</text>
</g>
<g class="m-edge">
<title>a->b</title>
-<path d="M27,-145.1839C27,-137.3999 27,-128.1942 27,-119.6079"/>
-<polygon points="30.5001,-119.5788 27,-109.5789 23.5001,-119.5789 30.5001,-119.5788"/>
+<path d="M27,-145.43C27,-137.75 27,-128.54 27,-119.95"/>
+<polygon points="30.5,-119.94 27,-109.94 23.5,-119.94 30.5,-119.94"/>
</g>
<g class="m-node m-flat">
<title>c</title>
-<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-14.5848">c</text>
+<ellipse cx="27" cy="-18.38" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-14.58">c</text>
</g>
<g class="m-edge">
<title>b->c</title>
-<path d="M27,-72.4144C27,-64.6303 27,-55.4246 27,-46.8383"/>
-<polygon points="30.5001,-46.8093 27,-36.8093 23.5001,-46.8094 30.5001,-46.8093"/>
+<path d="M27,-72.66C27,-64.98 27,-55.77 27,-47.19"/>
+<polygon points="30.5,-47.17 27,-37.17 23.5,-47.17 30.5,-47.17"/>
</g>
</g>
</svg>
]
})
self.assertEqual(*self.actual_expected_contents('index.html'))
- # The output is different for older Graphviz
- self.assertEqual(*self.actual_expected_contents('dot.html', 'dot.html' if LooseVersion(dot_version()) >= LooseVersion("2.40.1") else 'dot-238.html'))
+
+ # The output is different for every other Graphviz
+ if LooseVersion(dot_version()) >= LooseVersion("2.44.0"):
+ file = 'dot.html'
+ elif LooseVersion(dot_version()) > LooseVersion("2.40.0"):
+ file = 'dot-240.html'
+ elif LooseVersion(dot_version()) >= LooseVersion("2.38.0"):
+ file = 'dot-238.html'
+ self.assertEqual(*self.actual_expected_contents('dot.html', file))
+
# I assume this will be a MASSIVE ANNOYANCE at some point as well so
# keeping it separate
self.assertEqual(*self.actual_expected_contents('plots.html'))
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8" />
+ <title>m.dot | A Pelican Blog</title>
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,600i" />
+ <link rel="stylesheet" href="static/m-dark.css" />
+ <link rel="canonical" href="page.html" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+ <div class="m-container">
+ <div class="m-row">
+ <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+ </div>
+ </div>
+</nav></header>
+<main>
+<article>
+ <div class="m-container m-container-inflatable">
+ <div class="m-row">
+ <div class="m-col-l-10 m-push-l-1">
+ <h1>m.dot</h1>
+<!-- content -->
+<p>Note: the test uses DejaVu Sans instead of Source Sans Pro in order to have
+predictable rendering on the CIs.</p>
+<p>Different shapes, fills etc. All default colors, filled only the first node
+and the arrowheads, nothing else. Non-default font size should be preserved.</p>
+<div class="m-graph">
+<svg style="width: 16.250rem; height: 5.312rem;" viewBox="0.00 0.00 259.77 84.77">
+<g transform="scale(1 1) rotate(0) translate(4 80.7696)">
+<title>Basics</title>
+<g class="m-node">
+<title>a</title>
+<polygon points="54,-40.3848 0,-40.3848 0,-4.3848 54,-4.3848 54,-40.3848"/>
+<text text-anchor="middle" x="27" y="-18.5848">a</text>
+</g>
+<g class="m-node m-flat">
+<title>b</title>
+<ellipse cx="113.3848" cy="-22.3848" rx="18.2906" ry="18.2906"/>
+<ellipse cx="113.3848" cy="-22.3848" rx="22.2701" ry="22.2701"/>
+<text text-anchor="middle" x="113.3848" y="-18.5848">b</text>
+</g>
+<g class="m-edge">
+<title>a->b</title>
+<path d="M54.3327,-22.3848C62.6964,-22.3848 71.9814,-22.3848 80.6653,-22.3848"/>
+<polygon points="80.8574,-25.8849 90.8574,-22.3848 80.8574,-18.8849 80.8574,-25.8849"/>
+</g>
+<g class="m-node m-flat">
+<title>c</title>
+<ellipse cx="224.7696" cy="-22.3848" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="224.7696" y="-18.5848">c</text>
+</g>
+<g class="m-edge">
+<title>b->c</title>
+<path d="M135.9251,-22.3848C150.665,-22.3848 170.2762,-22.3848 187.3232,-22.3848"/>
+<polygon points="187.5396,-25.8849 197.5396,-22.3848 187.5396,-18.8849 187.5396,-25.8849"/>
+<text text-anchor="middle" x="166.7696" y="-34.3848" style="font-size: 40.0px;">0</text>
+</g>
+<g class="m-edge">
+<title>c->c</title>
+<path d="M214.4919,-39.6042C212.3945,-49.5298 215.8203,-58.7696 224.7696,-58.7696 230.5026,-58.7696 233.969,-54.9775 235.1685,-49.6425"/>
+<polygon points="238.6679,-49.5611 235.0472,-39.6042 231.6684,-49.6458 238.6679,-49.5611"/>
+<text text-anchor="middle" x="224.7696" y="-63.9696">1</text>
+</g>
+</g>
+</svg>
+</div>
+<div class="m-graph">
+<svg style="width: 5.562rem; height: 2.750rem;" viewBox="0.00 0.00 89.00 44.00">
+<g transform="scale(1 1) rotate(0) translate(4 40)">
+<title>More shapes</title>
+<g class="m-node m-flat">
+<title>d</title>
+<text text-anchor="middle" x="40.5" y="-14.2">outsider</text>
+</g>
+</g>
+</svg>
+</div>
+<p>Colors:</p>
+<div class="m-graph">
+<svg style="width: 5.688rem; height: 8.500rem;" viewBox="0.00 0.00 91.38 135.54">
+<g transform="scale(1 1) rotate(0) translate(4 131.5391)">
+<title>Colors</title>
+<g class="m-node m-success m-flat">
+<title>a</title>
+<ellipse cx="27" cy="-109.1543" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-105.3543">a</text>
+</g>
+<g class="m-node m-dim">
+<title>b</title>
+<ellipse cx="27" cy="-18.3848" rx="18.2703" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-14.5848">b</text>
+</g>
+<g class="m-edge m-warning">
+<title>a->b</title>
+<path d="M27,-90.3468C27,-77.8501 27,-61.2025 27,-47.0671"/>
+<polygon points="30.5001,-46.8576 27,-36.8576 23.5001,-46.8577 30.5001,-46.8576"/>
+<text text-anchor="middle" x="41" y="-59.9696">yes</text>
+</g>
+<g class="m-edge m-primary">
+<title>b->b</title>
+<path d="M43.8422,-26.1192C53.9096,-27.8379 63.3848,-25.2598 63.3848,-18.3848 63.3848,-13.9805 59.4961,-11.3396 54.0544,-10.4622"/>
+<polygon points="53.776,-6.9666 43.8422,-10.6504 53.905,-13.9655 53.776,-6.9666"/>
+<text text-anchor="middle" x="73.3848" y="-14.5848">no</text>
+</g>
+</g>
+</svg>
+</div>
+<p>Unoriented graph without a title:</p>
+<div class="m-graph m-success">
+<svg style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
+<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g class="m-node m-flat">
+<title>a</title>
+<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-87.3543">a</text>
+</g>
+<g class="m-node m-flat">
+<title>b</title>
+<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-14.5848">b</text>
+</g>
+<g class="m-edge">
+<title>a--b</title>
+<path d="M21.0843,-73.1663C19.9734,-61.9709 19.9719,-47.622 21.0798,-36.418"/>
+</g>
+<g class="m-edge">
+<title>a--b</title>
+<path d="M32.9157,-73.1663C34.0266,-61.9709 34.0281,-47.622 32.9202,-36.418"/>
+</g>
+</g>
+</svg>
+</div>
+<p>Strict graphs:</p>
+<div class="m-graph">
+<svg style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
+<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<title>A to B</title>
+<g class="m-node m-flat">
+<title>a</title>
+<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-87.3543">a</text>
+</g>
+<g class="m-node m-flat">
+<title>b</title>
+<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-14.5848">b</text>
+</g>
+<g class="m-edge">
+<title>a->b</title>
+<path d="M27,-72.4144C27,-64.6303 27,-55.4246 27,-46.8383"/>
+<polygon points="30.5001,-46.8093 27,-36.8093 23.5001,-46.8094 30.5001,-46.8093"/>
+</g>
+</g>
+</svg>
+</div>
+<div class="m-graph">
+<svg style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
+<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<title>A to B</title>
+<g class="m-node m-flat">
+<title>a</title>
+<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-87.3543">a</text>
+</g>
+<g class="m-node m-flat">
+<title>b</title>
+<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-14.5848">b</text>
+</g>
+<g class="m-edge">
+<title>a--b</title>
+<path d="M27,-72.4144C27,-61.4654 27,-47.7036 27,-36.8093"/>
+</g>
+</g>
+</svg>
+</div>
+<p>Structs:</p>
+<div class="m-graph">
+<svg style="width: 13.000rem; height: 5.438rem;" viewBox="0.00 0.00 208.00 87.00">
+<g transform="scale(1 1) rotate(0) translate(4 83)">
+<title>Structs</title>
+<g class="m-node m-info m-flat">
+<title>struct</title>
+<polygon points="0,-.5 0,-78.5 78,-78.5 78,-.5 0,-.5"/>
+<text text-anchor="middle" x="39" y="-61.7">a</text>
+<polyline points="0,-52.5 78,-52.5 "/>
+<text text-anchor="middle" x="39" y="-35.7">b</text>
+<polyline points="0,-26.5 78,-26.5 "/>
+<text text-anchor="middle" x="13" y="-9.7">c</text>
+<polyline points="26,-.5 26,-26.5 "/>
+<text text-anchor="middle" x="39" y="-9.7">d</text>
+<polyline points="52,-.5 52,-26.5 "/>
+<text text-anchor="middle" x="65" y="-9.7">e</text>
+</g>
+<g class="m-node m-flat">
+<title>another</title>
+<polygon points="96,-13.5 96,-65.5 200,-65.5 200,-13.5 96,-13.5"/>
+<text text-anchor="middle" x="109" y="-35.7">a</text>
+<polyline points="122,-13.5 122,-65.5 "/>
+<text text-anchor="middle" x="135" y="-48.7">b</text>
+<polyline points="122,-39.5 148,-39.5 "/>
+<text text-anchor="middle" x="135" y="-22.7">c</text>
+<polyline points="148,-13.5 148,-65.5 "/>
+<text text-anchor="middle" x="161" y="-35.7">d</text>
+<polyline points="174,-13.5 174,-65.5 "/>
+<text text-anchor="middle" x="187" y="-35.7">e</text>
+</g>
+</g>
+</svg>
+</div>
+<figure class="m-figure">
+<svg class="m-graph m-info" style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
+<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<title>A to B</title>
+<g class="m-node m-flat">
+<title>a</title>
+<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-87.3543">a</text>
+</g>
+<g class="m-node m-flat">
+<title>b</title>
+<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-14.5848">b</text>
+</g>
+<g class="m-edge">
+<title>a->b</title>
+<path d="M27,-72.4144C27,-64.6303 27,-55.4246 27,-46.8383"/>
+<polygon points="30.5001,-46.8093 27,-36.8093 23.5001,-46.8094 30.5001,-46.8093"/>
+</g>
+</g>
+</svg>
+<figcaption>This is a title.</figcaption>
+<p>This is a description.</p>
+</figure>
+<figure class="m-figure">
+<svg class="m-graph" style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
+<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g class="m-node m-flat">
+<title>a</title>
+<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-87.3543">a</text>
+</g>
+<g class="m-node m-flat">
+<title>b</title>
+<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-14.5848">b</text>
+</g>
+<g class="m-edge">
+<title>a->b</title>
+<path d="M27,-72.4144C27,-64.6303 27,-55.4246 27,-46.8383"/>
+<polygon points="30.5001,-46.8093 27,-36.8093 23.5001,-46.8094 30.5001,-46.8093"/>
+</g>
+</g>
+</svg>
+<p>The graph below should not be styled as a part of the figure:</p>
+<div class="m-graph m-danger">
+<svg style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
+<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<title>A to B</title>
+<g class="m-node m-flat">
+<title>a</title>
+<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-87.3543">a</text>
+</g>
+<g class="m-node m-flat">
+<title>b</title>
+<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
+<text text-anchor="middle" x="27" y="-14.5848">b</text>
+</g>
+<g class="m-edge">
+<title>a->b</title>
+<path d="M27,-72.4144C27,-64.6303 27,-55.4246 27,-46.8383"/>
+<polygon points="30.5001,-46.8093 27,-36.8093 23.5001,-46.8094 30.5001,-46.8093"/>
+</g>
+</g>
+</svg>
+</div>
+</figure>
+<!-- /content -->
+ </div>
+ </div>
+ </div>
+</article>
+</main>
+</body>
+</html>
<p>Different shapes, fills etc. All default colors, filled only the first node
and the arrowheads, nothing else. Non-default font size should be preserved.</p>
<div class="m-graph">
-<svg style="width: 16.250rem; height: 5.312rem;" viewBox="0.00 0.00 259.77 84.77">
-<g transform="scale(1 1) rotate(0) translate(4 80.7696)">
+<svg style="width: 16.312rem; height: 5.312rem;" viewBox="0.00 0.00 261.18 85.48">
+<g transform="scale(1 1) rotate(0) translate(4 81.48)">
<title>Basics</title>
<g class="m-node">
<title>a</title>
-<polygon points="54,-40.3848 0,-40.3848 0,-4.3848 54,-4.3848 54,-40.3848"/>
-<text text-anchor="middle" x="27" y="-18.5848">a</text>
+<polygon points="54,-41.09 0,-41.09 0,-5.09 54,-5.09 54,-41.09"/>
+<text text-anchor="middle" x="27" y="-19.29">a</text>
</g>
<g class="m-node m-flat">
<title>b</title>
-<ellipse cx="113.3848" cy="-22.3848" rx="18.2906" ry="18.2906"/>
-<ellipse cx="113.3848" cy="-22.3848" rx="22.2701" ry="22.2701"/>
-<text text-anchor="middle" x="113.3848" y="-18.5848">b</text>
+<ellipse cx="114.09" cy="-23.09" rx="19.17" ry="19.17"/>
+<ellipse cx="114.09" cy="-23.09" rx="23.18" ry="23.18"/>
+<text text-anchor="middle" x="114.09" y="-19.29">b</text>
</g>
<g class="m-edge">
<title>a->b</title>
-<path d="M54.3327,-22.3848C62.6964,-22.3848 71.9814,-22.3848 80.6653,-22.3848"/>
-<polygon points="80.8574,-25.8849 90.8574,-22.3848 80.8574,-18.8849 80.8574,-25.8849"/>
+<path d="M54.46,-23.09C62.78,-23.09 72.07,-23.09 80.75,-23.09"/>
+<polygon points="80.94,-26.59 90.94,-23.09 80.94,-19.59 80.94,-26.59"/>
</g>
<g class="m-node m-flat">
<title>c</title>
-<ellipse cx="224.7696" cy="-22.3848" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="224.7696" y="-18.5848">c</text>
+<ellipse cx="226.18" cy="-23.09" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="226.18" y="-19.29">c</text>
</g>
<g class="m-edge">
<title>b->c</title>
-<path d="M135.9251,-22.3848C150.665,-22.3848 170.2762,-22.3848 187.3232,-22.3848"/>
-<polygon points="187.5396,-25.8849 197.5396,-22.3848 187.5396,-18.8849 187.5396,-25.8849"/>
-<text text-anchor="middle" x="166.7696" y="-34.3848" style="font-size: 40.0px;">0</text>
+<path d="M137.37,-23.09C152.15,-23.09 171.88,-23.09 188.89,-23.09"/>
+<polygon points="189.07,-26.59 199.07,-23.09 189.07,-19.59 189.07,-26.59"/>
+<text text-anchor="middle" x="168.18" y="-35.09" style="font-size: 40.0px;">0</text>
</g>
<g class="m-edge">
<title>c->c</title>
-<path d="M214.4919,-39.6042C212.3945,-49.5298 215.8203,-58.7696 224.7696,-58.7696 230.5026,-58.7696 233.969,-54.9775 235.1685,-49.6425"/>
-<polygon points="238.6679,-49.5611 235.0472,-39.6042 231.6684,-49.6458 238.6679,-49.5611"/>
-<text text-anchor="middle" x="224.7696" y="-63.9696">1</text>
+<path d="M215.91,-40.31C213.81,-50.24 217.23,-59.48 226.18,-59.48 231.92,-59.48 235.38,-55.68 236.58,-50.35"/>
+<polygon points="240.08,-50.27 236.46,-40.31 233.08,-50.35 240.08,-50.27"/>
+<text text-anchor="middle" x="226.18" y="-64.68">1</text>
</g>
</g>
</svg>
</div>
<div class="m-graph">
-<svg style="width: 5.562rem; height: 2.750rem;" viewBox="0.00 0.00 89.00 44.00">
+<svg style="width: 5.688rem; height: 2.750rem;" viewBox="0.00 0.00 91.00 44.00">
<g transform="scale(1 1) rotate(0) translate(4 40)">
<title>More shapes</title>
<g class="m-node m-flat">
<title>d</title>
-<text text-anchor="middle" x="40.5" y="-14.2">outsider</text>
+<text text-anchor="middle" x="41.5" y="-14.2">outsider</text>
</g>
</g>
</svg>
</div>
<p>Colors:</p>
<div class="m-graph">
-<svg style="width: 5.688rem; height: 8.500rem;" viewBox="0.00 0.00 91.38 135.54">
-<g transform="scale(1 1) rotate(0) translate(4 131.5391)">
+<svg style="width: 5.812rem; height: 8.562rem;" viewBox="0.00 0.00 93.09 136.95">
+<g transform="scale(1 1) rotate(0) translate(4 132.95)">
<title>Colors</title>
<g class="m-node m-success m-flat">
<title>a</title>
-<ellipse cx="27" cy="-109.1543" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-105.3543">a</text>
+<ellipse cx="27" cy="-110.57" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-106.77">a</text>
</g>
<g class="m-node m-dim">
<title>b</title>
-<ellipse cx="27" cy="-18.3848" rx="18.2703" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-14.5848">b</text>
+<ellipse cx="27" cy="-19.09" rx="19.18" ry="19.18"/>
+<text text-anchor="middle" x="27" y="-15.29">b</text>
</g>
<g class="m-edge m-warning">
<title>a->b</title>
-<path d="M27,-90.3468C27,-77.8501 27,-61.2025 27,-47.0671"/>
-<polygon points="30.5001,-46.8576 27,-36.8576 23.5001,-46.8577 30.5001,-46.8576"/>
-<text text-anchor="middle" x="41" y="-59.9696">yes</text>
+<path d="M27,-91.89C27,-79.55 27,-62.82 27,-48.61"/>
+<polygon points="30.5,-48.35 27,-38.35 23.5,-48.35 30.5,-48.35"/>
+<text text-anchor="middle" x="41" y="-61.38">yes</text>
</g>
<g class="m-edge m-primary">
<title>b->b</title>
-<path d="M43.8422,-26.1192C53.9096,-27.8379 63.3848,-25.2598 63.3848,-18.3848 63.3848,-13.9805 59.4961,-11.3396 54.0544,-10.4622"/>
-<polygon points="53.776,-6.9666 43.8422,-10.6504 53.905,-13.9655 53.776,-6.9666"/>
-<text text-anchor="middle" x="73.3848" y="-14.5848">no</text>
+<path d="M44.55,-27.24C54.67,-28.91 64.09,-26.19 64.09,-19.09 64.09,-14.54 60.23,-11.8 54.79,-10.84"/>
+<polygon points="54.52,-7.35 44.55,-10.94 54.59,-14.35 54.52,-7.35"/>
+<text text-anchor="middle" x="74.59" y="-15.29">no</text>
</g>
</g>
</svg>
<p>Unoriented graph without a title:</p>
<div class="m-graph m-success">
<svg style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
-<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g transform="scale(1 1) rotate(0) translate(4 113.54)">
<g class="m-node m-flat">
<title>a</title>
-<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-87.3543">a</text>
+<ellipse cx="27" cy="-91.15" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-87.35">a</text>
</g>
<g class="m-node m-flat">
<title>b</title>
-<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-14.5848">b</text>
+<ellipse cx="27" cy="-18.38" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-14.58">b</text>
</g>
<g class="m-edge">
<title>a--b</title>
-<path d="M21.0843,-73.1663C19.9734,-61.9709 19.9719,-47.622 21.0798,-36.418"/>
+<path d="M21.12,-73.02C19.95,-61.9 19.96,-47.45 21.14,-36.36"/>
</g>
<g class="m-edge">
<title>a--b</title>
-<path d="M32.9157,-73.1663C34.0266,-61.9709 34.0281,-47.622 32.9202,-36.418"/>
+<path d="M32.88,-73.02C34.05,-61.9 34.04,-47.45 32.86,-36.36"/>
</g>
</g>
</svg>
<p>Strict graphs:</p>
<div class="m-graph">
<svg style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
-<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g transform="scale(1 1) rotate(0) translate(4 113.54)">
<title>A to B</title>
<g class="m-node m-flat">
<title>a</title>
-<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-87.3543">a</text>
+<ellipse cx="27" cy="-91.15" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-87.35">a</text>
</g>
<g class="m-node m-flat">
<title>b</title>
-<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-14.5848">b</text>
+<ellipse cx="27" cy="-18.38" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-14.58">b</text>
</g>
<g class="m-edge">
<title>a->b</title>
-<path d="M27,-72.4144C27,-64.6303 27,-55.4246 27,-46.8383"/>
-<polygon points="30.5001,-46.8093 27,-36.8093 23.5001,-46.8094 30.5001,-46.8093"/>
+<path d="M27,-72.66C27,-64.98 27,-55.77 27,-47.19"/>
+<polygon points="30.5,-47.17 27,-37.17 23.5,-47.17 30.5,-47.17"/>
</g>
</g>
</svg>
</div>
<div class="m-graph">
<svg style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
-<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g transform="scale(1 1) rotate(0) translate(4 113.54)">
<title>A to B</title>
<g class="m-node m-flat">
<title>a</title>
-<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-87.3543">a</text>
+<ellipse cx="27" cy="-91.15" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-87.35">a</text>
</g>
<g class="m-node m-flat">
<title>b</title>
-<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-14.5848">b</text>
+<ellipse cx="27" cy="-18.38" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-14.58">b</text>
</g>
<g class="m-edge">
<title>a--b</title>
-<path d="M27,-72.4144C27,-61.4654 27,-47.7036 27,-36.8093"/>
+<path d="M27,-72.66C27,-61.85 27,-48.03 27,-37.17"/>
</g>
</g>
</svg>
</div>
<p>Structs:</p>
<div class="m-graph">
-<svg style="width: 13.000rem; height: 5.438rem;" viewBox="0.00 0.00 208.00 87.00">
+<svg style="width: 13.188rem; height: 5.438rem;" viewBox="0.00 0.00 210.50 87.00">
<g transform="scale(1 1) rotate(0) translate(4 83)">
<title>Structs</title>
<g class="m-node m-info m-flat">
<title>struct</title>
-<polygon points="0,-.5 0,-78.5 78,-78.5 78,-.5 0,-.5"/>
-<text text-anchor="middle" x="39" y="-61.7">a</text>
-<polyline points="0,-52.5 78,-52.5 "/>
-<text text-anchor="middle" x="39" y="-35.7">b</text>
-<polyline points="0,-26.5 78,-26.5 "/>
+<polygon points="0,-0.5 0,-78.5 79,-78.5 79,-0.5 0,-0.5"/>
+<text text-anchor="middle" x="39.5" y="-61.7">a</text>
+<polyline points="0,-52.5 79,-52.5 "/>
+<text text-anchor="middle" x="39.5" y="-35.7">b</text>
+<polyline points="0,-26.5 79,-26.5 "/>
<text text-anchor="middle" x="13" y="-9.7">c</text>
-<polyline points="26,-.5 26,-26.5 "/>
-<text text-anchor="middle" x="39" y="-9.7">d</text>
-<polyline points="52,-.5 52,-26.5 "/>
-<text text-anchor="middle" x="65" y="-9.7">e</text>
+<polyline points="26,-0.5 26,-26.5 "/>
+<text text-anchor="middle" x="39.5" y="-9.7">d</text>
+<polyline points="53,-0.5 53,-26.5 "/>
+<text text-anchor="middle" x="66" y="-9.7">e</text>
</g>
<g class="m-node m-flat">
<title>another</title>
-<polygon points="96,-13.5 96,-65.5 200,-65.5 200,-13.5 96,-13.5"/>
-<text text-anchor="middle" x="109" y="-35.7">a</text>
-<polyline points="122,-13.5 122,-65.5 "/>
-<text text-anchor="middle" x="135" y="-48.7">b</text>
-<polyline points="122,-39.5 148,-39.5 "/>
-<text text-anchor="middle" x="135" y="-22.7">c</text>
-<polyline points="148,-13.5 148,-65.5 "/>
-<text text-anchor="middle" x="161" y="-35.7">d</text>
-<polyline points="174,-13.5 174,-65.5 "/>
-<text text-anchor="middle" x="187" y="-35.7">e</text>
+<polygon points="96.5,-13.5 96.5,-65.5 202.5,-65.5 202.5,-13.5 96.5,-13.5"/>
+<text text-anchor="middle" x="109.5" y="-35.7">a</text>
+<polyline points="122.5,-13.5 122.5,-65.5 "/>
+<text text-anchor="middle" x="136" y="-48.7">b</text>
+<polyline points="122.5,-39.5 149.5,-39.5 "/>
+<text text-anchor="middle" x="136" y="-22.7">c</text>
+<polyline points="149.5,-13.5 149.5,-65.5 "/>
+<text text-anchor="middle" x="163" y="-35.7">d</text>
+<polyline points="176.5,-13.5 176.5,-65.5 "/>
+<text text-anchor="middle" x="189.5" y="-35.7">e</text>
</g>
</g>
</svg>
</div>
<figure class="m-figure">
<svg class="m-graph m-info" style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
-<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g transform="scale(1 1) rotate(0) translate(4 113.54)">
<title>A to B</title>
<g class="m-node m-flat">
<title>a</title>
-<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-87.3543">a</text>
+<ellipse cx="27" cy="-91.15" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-87.35">a</text>
</g>
<g class="m-node m-flat">
<title>b</title>
-<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-14.5848">b</text>
+<ellipse cx="27" cy="-18.38" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-14.58">b</text>
</g>
<g class="m-edge">
<title>a->b</title>
-<path d="M27,-72.4144C27,-64.6303 27,-55.4246 27,-46.8383"/>
-<polygon points="30.5001,-46.8093 27,-36.8093 23.5001,-46.8094 30.5001,-46.8093"/>
+<path d="M27,-72.66C27,-64.98 27,-55.77 27,-47.19"/>
+<polygon points="30.5,-47.17 27,-37.17 23.5,-47.17 30.5,-47.17"/>
</g>
</g>
</svg>
</figure>
<figure class="m-figure">
<svg class="m-graph" style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
-<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g transform="scale(1 1) rotate(0) translate(4 113.54)">
<g class="m-node m-flat">
<title>a</title>
-<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-87.3543">a</text>
+<ellipse cx="27" cy="-91.15" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-87.35">a</text>
</g>
<g class="m-node m-flat">
<title>b</title>
-<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-14.5848">b</text>
+<ellipse cx="27" cy="-18.38" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-14.58">b</text>
</g>
<g class="m-edge">
<title>a->b</title>
-<path d="M27,-72.4144C27,-64.6303 27,-55.4246 27,-46.8383"/>
-<polygon points="30.5001,-46.8093 27,-36.8093 23.5001,-46.8094 30.5001,-46.8093"/>
+<path d="M27,-72.66C27,-64.98 27,-55.77 27,-47.19"/>
+<polygon points="30.5,-47.17 27,-37.17 23.5,-47.17 30.5,-47.17"/>
</g>
</g>
</svg>
<p>The graph below should not be styled as a part of the figure:</p>
<div class="m-graph m-danger">
<svg style="width: 3.875rem; height: 7.375rem;" viewBox="0.00 0.00 62.00 117.54">
-<g transform="scale(1 1) rotate(0) translate(4 113.5391)">
+<g transform="scale(1 1) rotate(0) translate(4 113.54)">
<title>A to B</title>
<g class="m-node m-flat">
<title>a</title>
-<ellipse cx="27" cy="-91.1543" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-87.3543">a</text>
+<ellipse cx="27" cy="-91.15" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-87.35">a</text>
</g>
<g class="m-node m-flat">
<title>b</title>
-<ellipse cx="27" cy="-18.3848" rx="27" ry="18.2703"/>
-<text text-anchor="middle" x="27" y="-14.5848">b</text>
+<ellipse cx="27" cy="-18.38" rx="27" ry="18.27"/>
+<text text-anchor="middle" x="27" y="-14.58">b</text>
</g>
<g class="m-edge">
<title>a->b</title>
-<path d="M27,-72.4144C27,-64.6303 27,-55.4246 27,-46.8383"/>
-<polygon points="30.5001,-46.8093 27,-36.8093 23.5001,-46.8094 30.5001,-46.8093"/>
+<path d="M27,-72.66C27,-64.98 27,-55.77 27,-47.19"/>
+<polygon points="30.5,-47.17 27,-37.17 23.5,-47.17 30.5,-47.17"/>
</g>
</g>
</svg>
def __init__(self, *args, **kwargs):
super().__init__(__file__, '', *args, **kwargs)
- @unittest.skipUnless(LooseVersion(dot_version()) >= LooseVersion("2.40.1"),
- "Dot < 2.40.1 has a completely different output.")
def test(self):
self.run_pelican({
'PLUGINS': ['m.htmlsanity', 'm.components', 'm.dot'],
'M_DOT_FONT': 'DejaVu Sans'
})
- self.assertEqual(*self.actual_expected_contents('page.html'))
+ if LooseVersion(dot_version()) >= LooseVersion("2.44.0"):
+ file = 'page.html'
+ elif LooseVersion(dot_version()) > LooseVersion("2.40.0"):
+ file = 'page-240.html'
+ elif LooseVersion(dot_version()) >= LooseVersion("2.38.0"):
+ file = 'page-238.html'
- @unittest.skipUnless(LooseVersion(dot_version()) < LooseVersion("2.40.1"),
- "Dot < 2.40.1 has a completely different output.")
- def test_238(self):
- self.run_pelican({
- 'PLUGINS': ['m.htmlsanity', 'm.components', 'm.dot'],
- 'M_DOT_FONT': 'DejaVu Sans'
- })
-
- self.assertEqual(*self.actual_expected_contents('page.html', 'page-238.html'))
+ self.assertEqual(*self.actual_expected_contents('page.html', file))