diff options
| -rw-r--r-- | DESCRIPTION | 5 | ||||
| -rw-r--r-- | _pkgdown.yml | 1 | ||||
| -rw-r--r-- | docs/articles/FOCUS_D.html | 8 | ||||
| -rw-r--r-- | docs/articles/FOCUS_L.html | 44 | ||||
| -rw-r--r-- | docs/articles/mkin.html | 2 | ||||
| -rw-r--r-- | docs/articles/twa.html | 2 | ||||
| -rw-r--r-- | docs/articles/web_only/FOCUS_Z.html | 2 | ||||
| -rw-r--r-- | docs/articles/web_only/compiled_models.html | 12 | ||||
| -rw-r--r-- | docs/reference/Extract.mmkin.html | 12 | ||||
| -rw-r--r-- | docs/reference/index.html | 6 | ||||
| -rw-r--r-- | docs/reference/mccall81_245T.html | 12 | ||||
| -rw-r--r-- | docs/reference/mkinfit.html | 46 | ||||
| -rw-r--r-- | docs/reference/mkinmod.html | 2 | ||||
| -rw-r--r-- | docs/reference/mkinpredict.html | 4 | ||||
| -rw-r--r-- | docs/reference/mmkin.html | 4 | ||||
| -rw-r--r-- | docs/reference/summary.mkinfit.html | 6 | ||||
| -rw-r--r-- | docs/reference/transform_odeparms.html | 24 | ||||
| -rw-r--r-- | test.log | 20 | ||||
| -rw-r--r-- | tests/figs/deps.txt | 3 | ||||
| -rw-r--r-- | tests/figs/plotting/mmkin-plot-for-focus-c.svg | 569 | ||||
| -rw-r--r-- | tests/figs/plotting/mmkin-plot-for-sfo-focus-c-and-d.svg | 300 | ||||
| -rw-r--r-- | tests/testthat/test_plots_twa.R (renamed from tests/testthat/test_twa.R) | 26 | 
22 files changed, 1002 insertions, 108 deletions
| diff --git a/DESCRIPTION b/DESCRIPTION index 138440fc..87823866 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,7 +2,7 @@ Package: mkin  Type: Package  Title: Kinetic Evaluation of Chemical Degradation Data  Version: 0.9.48.1 -Date: 2019-02-21 +Date: 2019-02-22  Authors@R: c(person("Johannes", "Ranke", role = c("aut", "cre", "cph"),                      email = "jranke@uni-bremen.de",                      comment = c(ORCID = "0000-0003-4371-6538")), @@ -19,7 +19,8 @@ Description: Calculation routines based on the FOCUS Kinetics Report (2006,    purpose.  Imports: stats, graphics, methods, FME, deSolve, R6, minpack.lm, rootSolve,    inline, parallel, plyr -Suggests: knitr, rbenchmark, tikzDevice, testthat, rmarkdown, covr +Suggests: knitr, rbenchmark, tikzDevice, testthat, rmarkdown, covr, vdiffr +Remotes: r-lib/vdiffr  License: GPL  LazyLoad: yes  LazyData: yes diff --git a/_pkgdown.yml b/_pkgdown.yml index 20854d5b..03305d9a 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -10,6 +10,7 @@ reference:        - mkinmod        - mkinfit        - mmkin +      - nafta    - title: Show results      desc: Functions working with mkinfit objects      contents: diff --git a/docs/articles/FOCUS_D.html b/docs/articles/FOCUS_D.html index ad8413dc..a470cdb6 100644 --- a/docs/articles/FOCUS_D.html +++ b/docs/articles/FOCUS_D.html @@ -85,7 +85,7 @@        <h1>Example evaluation of FOCUS Example Dataset D</h1>                          <h4 class="author">Johannes Ranke</h4> -            <h4 class="date">2019-02-22</h4> +            <h4 class="date">2019-02-25</h4>        <div class="hidden name"><code>FOCUS_D.Rmd</code></div> @@ -163,8 +163,8 @@  <div class="sourceCode" id="cb10"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb10-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(fit)</a></code></pre></div>  <pre><code>## mkin version used for fitting:    0.9.48.1   ## R version used for fitting:       3.5.2  -## Date of fit:     Fri Feb 22 20:48:30 2019  -## Date of summary: Fri Feb 22 20:48:31 2019  +## Date of fit:     Mon Feb 25 14:54:38 2019  +## Date of summary: Mon Feb 25 14:54:38 2019   ##   ## Equations:  ## d_parent/dt = - k_parent_sink * parent - k_parent_m1 * parent @@ -172,7 +172,7 @@  ##   ## Model predictions using solution type deSolve   ##  -## Fitted with method Port using 153 model solutions performed in 0.731 s +## Fitted with method Port using 153 model solutions performed in 0.712 s  ##   ## Weighting: none  ##  diff --git a/docs/articles/FOCUS_L.html b/docs/articles/FOCUS_L.html index 17c7bf59..e8a81075 100644 --- a/docs/articles/FOCUS_L.html +++ b/docs/articles/FOCUS_L.html @@ -85,7 +85,7 @@        <h1>Example evaluation of FOCUS Laboratory Data L1 to L3</h1>                          <h4 class="author">Johannes Ranke</h4> -            <h4 class="date">2019-02-22</h4> +            <h4 class="date">2019-02-25</h4>        <div class="hidden name"><code>FOCUS_L.Rmd</code></div> @@ -111,15 +111,15 @@  <a class="sourceLine" id="cb2-2" data-line-number="2"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(m.L1.SFO)</a></code></pre></div>  <pre><code>## mkin version used for fitting:    0.9.48.1   ## R version used for fitting:       3.5.2  -## Date of fit:     Fri Feb 22 20:48:32 2019  -## Date of summary: Fri Feb 22 20:48:32 2019  +## Date of fit:     Mon Feb 25 14:54:40 2019  +## Date of summary: Mon Feb 25 14:54:40 2019   ##   ## Equations:  ## d_parent/dt = - k_parent_sink * parent  ##   ## Model predictions using solution type analytical   ##  -## Fitted with method Port using 37 model solutions performed in 0.105 s +## Fitted with method Port using 37 model solutions performed in 0.096 s  ##   ## Weighting: none  ##  @@ -202,15 +202,15 @@  <div class="sourceCode" id="cb7"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb7-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(m.L1.FOMC, <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>  <pre><code>## mkin version used for fitting:    0.9.48.1   ## R version used for fitting:       3.5.2  -## Date of fit:     Fri Feb 22 20:48:34 2019  -## Date of summary: Fri Feb 22 20:48:34 2019  +## Date of fit:     Mon Feb 25 14:54:42 2019  +## Date of summary: Mon Feb 25 14:54:42 2019   ##   ## Equations:  ## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent  ##   ## Model predictions using solution type analytical   ##  -## Fitted with method Port using 611 model solutions performed in 1.604 s +## Fitted with method Port using 611 model solutions performed in 1.529 s  ##   ## Weighting: none  ##  @@ -297,15 +297,15 @@  <div class="sourceCode" id="cb12"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb12-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(m.L2.FOMC, <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>  <pre><code>## mkin version used for fitting:    0.9.48.1   ## R version used for fitting:       3.5.2  -## Date of fit:     Fri Feb 22 20:48:35 2019  -## Date of summary: Fri Feb 22 20:48:35 2019  +## Date of fit:     Mon Feb 25 14:54:42 2019  +## Date of summary: Mon Feb 25 14:54:42 2019   ##   ## Equations:  ## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent  ##   ## Model predictions using solution type analytical   ##  -## Fitted with method Port using 81 model solutions performed in 0.216 s +## Fitted with method Port using 81 model solutions performed in 0.199 s  ##   ## Weighting: none  ##  @@ -368,8 +368,8 @@  <div class="sourceCode" id="cb15"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb15-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(m.L2.DFOP, <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>  <pre><code>## mkin version used for fitting:    0.9.48.1   ## R version used for fitting:       3.5.2  -## Date of fit:     Fri Feb 22 20:48:36 2019  -## Date of summary: Fri Feb 22 20:48:36 2019  +## Date of fit:     Mon Feb 25 14:54:44 2019  +## Date of summary: Mon Feb 25 14:54:44 2019   ##   ## Equations:  ## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * @@ -378,7 +378,7 @@  ##   ## Model predictions using solution type analytical   ##  -## Fitted with method Port using 336 model solutions performed in 0.864 s +## Fitted with method Port using 336 model solutions performed in 0.853 s  ##   ## Weighting: none  ##  @@ -460,8 +460,8 @@  <div class="sourceCode" id="cb21"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb21-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(mm.L3[[<span class="st">"DFOP"</span>, <span class="dv">1</span>]])</a></code></pre></div>  <pre><code>## mkin version used for fitting:    0.9.48.1   ## R version used for fitting:       3.5.2  -## Date of fit:     Fri Feb 22 20:48:37 2019  -## Date of summary: Fri Feb 22 20:48:38 2019  +## Date of fit:     Mon Feb 25 14:54:45 2019  +## Date of summary: Mon Feb 25 14:54:45 2019   ##   ## Equations:  ## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * @@ -470,7 +470,7 @@  ##   ## Model predictions using solution type analytical   ##  -## Fitted with method Port using 137 model solutions performed in 0.362 s +## Fitted with method Port using 137 model solutions performed in 0.348 s  ##   ## Weighting: none  ##  @@ -561,15 +561,15 @@  <div class="sourceCode" id="cb26"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb26-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(mm.L4[[<span class="st">"SFO"</span>, <span class="dv">1</span>]], <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>  <pre><code>## mkin version used for fitting:    0.9.48.1   ## R version used for fitting:       3.5.2  -## Date of fit:     Fri Feb 22 20:48:38 2019  -## Date of summary: Fri Feb 22 20:48:38 2019  +## Date of fit:     Mon Feb 25 14:54:45 2019  +## Date of summary: Mon Feb 25 14:54:45 2019   ##   ## Equations:  ## d_parent/dt = - k_parent_sink * parent  ##   ## Model predictions using solution type analytical   ##  -## Fitted with method Port using 46 model solutions performed in 0.123 s +## Fitted with method Port using 46 model solutions performed in 0.112 s  ##   ## Weighting: none  ##  @@ -621,15 +621,15 @@  <div class="sourceCode" id="cb28"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb28-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(mm.L4[[<span class="st">"FOMC"</span>, <span class="dv">1</span>]], <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>  <pre><code>## mkin version used for fitting:    0.9.48.1   ## R version used for fitting:       3.5.2  -## Date of fit:     Fri Feb 22 20:48:38 2019  -## Date of summary: Fri Feb 22 20:48:38 2019  +## Date of fit:     Mon Feb 25 14:54:45 2019  +## Date of summary: Mon Feb 25 14:54:45 2019   ##   ## Equations:  ## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent  ##   ## Model predictions using solution type analytical   ##  -## Fitted with method Port using 66 model solutions performed in 0.184 s +## Fitted with method Port using 66 model solutions performed in 0.165 s  ##   ## Weighting: none  ##  diff --git a/docs/articles/mkin.html b/docs/articles/mkin.html index 9baa44e4..bffd19dd 100644 --- a/docs/articles/mkin.html +++ b/docs/articles/mkin.html @@ -85,7 +85,7 @@        <h1>Introduction to mkin</h1>                          <h4 class="author">Johannes Ranke</h4> -            <h4 class="date">2019-02-22</h4> +            <h4 class="date">2019-02-25</h4>        <div class="hidden name"><code>mkin.Rmd</code></div> diff --git a/docs/articles/twa.html b/docs/articles/twa.html index 8c340557..83b05989 100644 --- a/docs/articles/twa.html +++ b/docs/articles/twa.html @@ -85,7 +85,7 @@        <h1>Calculation of time weighted average concentrations with mkin</h1>                          <h4 class="author">Johannes Ranke</h4> -            <h4 class="date">2019-02-22</h4> +            <h4 class="date">2019-02-25</h4>        <div class="hidden name"><code>twa.Rmd</code></div> diff --git a/docs/articles/web_only/FOCUS_Z.html b/docs/articles/web_only/FOCUS_Z.html index b1e2811c..c3ee7415 100644 --- a/docs/articles/web_only/FOCUS_Z.html +++ b/docs/articles/web_only/FOCUS_Z.html @@ -85,7 +85,7 @@        <h1>Example evaluation of FOCUS dataset Z</h1>                          <h4 class="author">Johannes Ranke</h4> -            <h4 class="date">2019-02-22</h4> +            <h4 class="date">2019-02-25</h4>        <div class="hidden name"><code>FOCUS_Z.Rmd</code></div> diff --git a/docs/articles/web_only/compiled_models.html b/docs/articles/web_only/compiled_models.html index fbf2de33..4209d2bc 100644 --- a/docs/articles/web_only/compiled_models.html +++ b/docs/articles/web_only/compiled_models.html @@ -85,7 +85,7 @@        <h1>Performance benefit by using compiled model definitions in mkin</h1>                          <h4 class="author">Johannes Ranke</h4> -            <h4 class="date">2019-02-22</h4> +            <h4 class="date">2019-02-25</h4>        <div class="hidden name"><code>compiled_models.Rmd</code></div> @@ -126,9 +126,9 @@  <a class="sourceLine" id="cb5-16" data-line-number="16">}</a></code></pre></div>  <pre><code>## Lade nötiges Paket: rbenchmark</code></pre>  <pre><code>##                    test replications elapsed relative user.self sys.self -## 3     deSolve, compiled            3   2.484    1.000     2.483        0 -## 1 deSolve, not compiled            3  17.963    7.231    17.951        0 -## 2      Eigenvalue based            3   3.146    1.267     3.144        0 +## 3     deSolve, compiled            3   2.394    1.000     2.388    0.004 +## 1 deSolve, not compiled            3  17.923    7.487    17.910    0.000 +## 2      Eigenvalue based            3   3.021    1.262     3.018    0.000  ##   user.child sys.child  ## 3          0         0  ## 1          0         0 @@ -157,8 +157,8 @@  <a class="sourceLine" id="cb8-16" data-line-number="16">}</a></code></pre></div>  <pre><code>## Successfully compiled differential equation model from auto-generated C code.</code></pre>  <pre><code>##                    test replications elapsed relative user.self sys.self -## 2     deSolve, compiled            3   4.232    1.000     4.226    0.004 -## 1 deSolve, not compiled            3  37.946    8.966    37.924    0.000 +## 2     deSolve, compiled            3   4.162    1.000     4.158        0 +## 1 deSolve, not compiled            3  37.536    9.019    37.517        0  ##   user.child sys.child  ## 2          0         0  ## 1          0         0</code></pre> diff --git a/docs/reference/Extract.mmkin.html b/docs/reference/Extract.mmkin.html index e3285ed3..95b1558e 100644 --- a/docs/reference/Extract.mmkin.html +++ b/docs/reference/Extract.mmkin.html @@ -280,7 +280,7 @@  #>   #> $time  #>        User      System verstrichen  -#>       0.201       0.000       0.200  +#>       0.196       0.000       0.196   #>   #> $mkinmod  #> <mkinmod> model generated with @@ -469,8 +469,8 @@  #>     }  #>     return(mC)  #> } -#> <bytecode: 0x555559103bf0> -#> <environment: 0x55555a51ba10> +#> <bytecode: 0x555559255c78> +#> <environment: 0x55555add1128>  #>   #> $cost_notrans  #> function (P)  @@ -492,8 +492,8 @@  #>         scaleVar = scaleVar)  #>     return(mC)  #> } -#> <bytecode: 0x55555a537b00> -#> <environment: 0x55555a51ba10> +#> <bytecode: 0x55555a1e9540> +#> <environment: 0x55555add1128>  #>   #> $hessian_notrans  #>                   parent_0 k_parent_sink @@ -560,7 +560,7 @@  #> 99.17407   #>   #> $date -#> [1] "Fri Feb 22 20:46:31 2019" +#> [1] "Mon Feb 25 14:52:43 2019"  #>   #> $version  #> [1] "0.9.48.1" diff --git a/docs/reference/index.html b/docs/reference/index.html index f31a72fe..24f3df0c 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -151,6 +151,12 @@            <p><code><a href="mmkin.html">mmkin()</a></code> </p>          </td>          <td><p>Fit one or more kinetic models with one or more state variables to one or more datasets</p></td> +      </tr><tr> +         +        <td> +          <p><code><a href="nafta.html">nafta()</a></code> </p> +        </td> +        <td><p>Evaluate parent kinetics using the NAFTA guidance</p></td>        </tr>      </tbody><tbody>        <tr> diff --git a/docs/reference/mccall81_245T.html b/docs/reference/mccall81_245T.html index 7b3418de..bcc871d8 100644 --- a/docs/reference/mccall81_245T.html +++ b/docs/reference/mccall81_245T.html @@ -160,8 +160,8 @@                           <span class='kw'>anisole</span> <span class='kw'>=</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/list'>list</a></span>(<span class='kw'>type</span> <span class='kw'>=</span> <span class='st'>"SFO"</span>))</div><div class='output co'>#> <span class='message'>Successfully compiled differential equation model from auto-generated C code.</span></div><div class='input'>  </div><div class='input'>    <span class='no'>fit.1</span> <span class='kw'><-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO_SFO</span>, <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/subset'>subset</a></span>(<span class='no'>mccall81_245T</span>, <span class='no'>soil</span> <span class='kw'>==</span> <span class='st'>"Commerce"</span>), <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)      <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit.1</span>, <span class='kw'>data</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>)</div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:46:54 2019  -#> Date of summary: Fri Feb 22 20:46:54 2019  +#> Date of fit:     Mon Feb 25 14:53:05 2019  +#> Date of summary: Mon Feb 25 14:53:05 2019   #>   #> Equations:  #> d_T245/dt = - k_T245_sink * T245 - k_T245_phenol * T245 @@ -171,7 +171,7 @@  #>   #> Model predictions using solution type deSolve   #>  -#> Fitted with method Port using 574 model solutions performed in 4.461 s +#> Fitted with method Port using 574 model solutions performed in 3.873 s  #>   #> Weighting: none  #>  @@ -249,8 +249,8 @@                     <span class='kw'>fixed_parms</span> <span class='kw'>=</span> <span class='st'>"k_phenol_sink"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)      <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit.2</span>, <span class='kw'>data</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>)</div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:46:56 2019  -#> Date of summary: Fri Feb 22 20:46:56 2019  +#> Date of fit:     Mon Feb 25 14:53:07 2019  +#> Date of summary: Mon Feb 25 14:53:07 2019   #>   #> Equations:  #> d_T245/dt = - k_T245_sink * T245 - k_T245_phenol * T245 @@ -260,7 +260,7 @@  #>   #> Model predictions using solution type deSolve   #>  -#> Fitted with method Port using 246 model solutions performed in 1.709 s +#> Fitted with method Port using 246 model solutions performed in 1.623 s  #>   #> Weighting: none  #>  diff --git a/docs/reference/mkinfit.html b/docs/reference/mkinfit.html index dfdddb25..80278890 100644 --- a/docs/reference/mkinfit.html +++ b/docs/reference/mkinfit.html @@ -438,15 +438,15 @@  <span class='no'>fit</span> <span class='kw'><-</span> <span class='fu'>mkinfit</span>(<span class='st'>"FOMC"</span>, <span class='no'>FOCUS_2006_C</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit</span>)</div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:46:59 2019  -#> Date of summary: Fri Feb 22 20:46:59 2019  +#> Date of fit:     Mon Feb 25 14:53:09 2019  +#> Date of summary: Mon Feb 25 14:53:09 2019   #>   #> Equations:  #> d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent  #>   #> Model predictions using solution type analytical   #>  -#> Fitted with method Port using 64 model solutions performed in 0.185 s +#> Fitted with method Port using 64 model solutions performed in 0.168 s  #>   #> Weighting: none  #>  @@ -515,7 +515,7 @@    <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>))</div><div class='output co'>#> <span class='message'>Successfully compiled differential equation model from auto-generated C code.</span></div><div class='input'><span class='co'># Fit the model to the FOCUS example dataset D using defaults</span>  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/print'>print</a></span>(<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>(<span class='no'>fit</span> <span class='kw'><-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO</span>, <span class='no'>FOCUS_2006_D</span>,                             <span class='kw'>solution_type</span> <span class='kw'>=</span> <span class='st'>"eigen"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)))</div><div class='output co'>#>        User      System verstrichen  -#>       1.071       0.000       1.072 </div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/stats/topics/coef'>coef</a></span>(<span class='no'>fit</span>)</div><div class='output co'>#>          parent_0 log_k_parent_sink   log_k_parent_m1     log_k_m1_sink  +#>       1.038       0.000       1.039 </div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/stats/topics/coef'>coef</a></span>(<span class='no'>fit</span>)</div><div class='output co'>#>          parent_0 log_k_parent_sink   log_k_parent_m1     log_k_m1_sink   #>          99.59848          -3.03822          -2.98030          -5.24750 </div><div class='input'><span class='fu'><a href='endpoints.html'>endpoints</a></span>(<span class='no'>fit</span>)</div><div class='output co'>#> $ff  #> parent_sink   parent_m1     m1_sink   #>    0.485524    0.514476    1.000000  @@ -590,7 +590,7 @@  #> Model cost at call  146 :  371.2134   #> Optimisation by method Port successfully terminated.  #>        User      System verstrichen  -#>       0.852       0.000       0.852 </div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/stats/topics/coef'>coef</a></span>(<span class='no'>fit.deSolve</span>)</div><div class='output co'>#>          parent_0 log_k_parent_sink   log_k_parent_m1     log_k_m1_sink  +#>       0.827       0.000       0.827 </div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/stats/topics/coef'>coef</a></span>(<span class='no'>fit.deSolve</span>)</div><div class='output co'>#>          parent_0 log_k_parent_sink   log_k_parent_m1     log_k_m1_sink   #>          99.59848          -3.03822          -2.98030          -5.24750 </div><div class='input'><span class='fu'><a href='endpoints.html'>endpoints</a></span>(<span class='no'>fit.deSolve</span>)</div><div class='output co'>#> $ff  #> parent_sink   parent_m1     m1_sink   #>    0.485524    0.514476    1.000000  @@ -628,8 +628,8 @@                        <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>), <span class='kw'>use_of_ff</span> <span class='kw'>=</span> <span class='st'>"max"</span>)</div><div class='output co'>#> <span class='message'>Successfully compiled differential equation model from auto-generated C code.</span></div><div class='input'><span class='no'>f.noweight</span> <span class='kw'><-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO.ff</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.noweight</span>)</div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:47:11 2019  -#> Date of summary: Fri Feb 22 20:47:11 2019  +#> Date of fit:     Mon Feb 25 14:53:22 2019  +#> Date of summary: Mon Feb 25 14:53:22 2019   #>   #> Equations:  #> d_parent/dt = - k_parent * parent @@ -637,7 +637,7 @@  #>   #> Model predictions using solution type deSolve   #>  -#> Fitted with method Port using 186 model solutions performed in 0.864 s +#> Fitted with method Port using 186 model solutions performed in 0.898 s  #>   #> Weighting: none  #>  @@ -745,8 +745,8 @@  #>   120       m1    33.31  28.78984  4.520e+00</div><div class='input'><span class='no'>f.irls</span> <span class='kw'><-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO.ff</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>reweight.method</span> <span class='kw'>=</span> <span class='st'>"obs"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.irls</span>)</div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:47:14 2019  -#> Date of summary: Fri Feb 22 20:47:14 2019  +#> Date of fit:     Mon Feb 25 14:53:24 2019  +#> Date of summary: Mon Feb 25 14:53:24 2019   #>   #> Equations:  #> d_parent/dt = - k_parent * parent @@ -754,7 +754,7 @@  #>   #> Model predictions using solution type deSolve   #>  -#> Fitted with method Port using 551 model solutions performed in 2.584 s +#> Fitted with method Port using 551 model solutions performed in 2.572 s  #>   #> Weighting: none  #>  @@ -867,8 +867,8 @@  #>   120       m1    33.31  28.80898  4.501e+00 2.722</div><div class='input'><span class='no'>f.w.mean</span> <span class='kw'><-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO.ff</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>weight</span> <span class='kw'>=</span> <span class='st'>"mean"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.w.mean</span>)</div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:47:15 2019  -#> Date of summary: Fri Feb 22 20:47:15 2019  +#> Date of fit:     Mon Feb 25 14:53:25 2019  +#> Date of summary: Mon Feb 25 14:53:25 2019   #>   #> Equations:  #> d_parent/dt = - k_parent * parent @@ -876,7 +876,7 @@  #>   #> Model predictions using solution type deSolve   #>  -#> Fitted with method Port using 155 model solutions performed in 0.716 s +#> Fitted with method Port using 155 model solutions performed in 0.709 s  #>   #> Weighting: mean  #>  @@ -985,8 +985,8 @@                       <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.w.value</span>)</div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:47:16 2019  -#> Date of summary: Fri Feb 22 20:47:16 2019  +#> Date of fit:     Mon Feb 25 14:53:26 2019  +#> Date of summary: Mon Feb 25 14:53:26 2019   #>   #> Equations:  #> d_parent/dt = - k_parent * parent @@ -994,7 +994,7 @@  #>   #> Model predictions using solution type deSolve   #>  -#> Fitted with method Port using 174 model solutions performed in 0.83 s +#> Fitted with method Port using 174 model solutions performed in 0.81 s  #>   #> Weighting: manual  #>  @@ -1105,8 +1105,8 @@  <span class='no'>f.w.man</span> <span class='kw'><-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO.ff</span>, <span class='no'>dw</span>, <span class='kw'>err</span> <span class='kw'>=</span> <span class='st'>"err.man"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.w.man</span>)</div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:47:17 2019  -#> Date of summary: Fri Feb 22 20:47:17 2019  +#> Date of fit:     Mon Feb 25 14:53:28 2019  +#> Date of summary: Mon Feb 25 14:53:28 2019   #>   #> Equations:  #> d_parent/dt = - k_parent * parent @@ -1114,7 +1114,7 @@  #>   #> Model predictions using solution type deSolve   #>  -#> Fitted with method Port using 270 model solutions performed in 1.286 s +#> Fitted with method Port using 270 model solutions performed in 1.25 s  #>   #> Weighting: manual  #>  @@ -1223,8 +1223,8 @@                         <span class='kw'>reweight.method</span> <span class='kw'>=</span> <span class='st'>"obs"</span>)  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.w.man.irls</span>)</div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:47:21 2019  -#> Date of summary: Fri Feb 22 20:47:21 2019  +#> Date of fit:     Mon Feb 25 14:53:31 2019  +#> Date of summary: Mon Feb 25 14:53:31 2019   #>   #> Equations:  #> d_parent/dt = - k_parent * parent @@ -1232,7 +1232,7 @@  #>   #> Model predictions using solution type deSolve   #>  -#> Fitted with method Port using 692 model solutions performed in 3.38 s +#> Fitted with method Port using 692 model solutions performed in 3.302 s  #>   #> Weighting: manual  #>  diff --git a/docs/reference/mkinmod.html b/docs/reference/mkinmod.html index 64fba5e5..ba26c686 100644 --- a/docs/reference/mkinmod.html +++ b/docs/reference/mkinmod.html @@ -231,7 +231,7 @@ For the definition of model types and their parameters, the equations given  <span class='no'>SFO_SFO</span> <span class='kw'><-</span> <span class='fu'>mkinmod</span>(    <span class='kw'>parent</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>, <span class='st'>"m1"</span>),    <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>), <span class='kw'>verbose</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='output co'>#> Compilation argument: -#>  /usr/lib/R/bin/R CMD SHLIB file622753352edd.c 2> file622753352edd.c.err.txt  +#>  /usr/lib/R/bin/R CMD SHLIB file481263217c00.c 2> file481263217c00.c.err.txt   #> Program source:  #>   1: #include <R.h>  #>   2:  diff --git a/docs/reference/mkinpredict.html b/docs/reference/mkinpredict.html index 2b4c33aa..738eeb9d 100644 --- a/docs/reference/mkinpredict.html +++ b/docs/reference/mkinpredict.html @@ -325,7 +325,7 @@                  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fl'>100</span>, <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fl'>0</span>), <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/seq'>seq</a></span>(<span class='fl'>0</span>, <span class='fl'>20</span>, <span class='kw'>by</span> <span class='kw'>=</span> <span class='fl'>0.1</span>),                  <span class='kw'>solution_type</span> <span class='kw'>=</span> <span class='st'>"eigen"</span>)[<span class='fl'>201</span>,]))</div><div class='output co'>#>     time   parent       m1  #> 201   20 4.978707 27.46227</div><div class='output co'>#>        User      System verstrichen  -#>       0.004       0.000       0.003 </div><div class='input'>  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>( +#>       0.003       0.000       0.003 </div><div class='input'>  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>(      <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/print'>print</a></span>(<span class='fu'>mkinpredict</span>(<span class='no'>SFO_SFO</span>, <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='kw'>k_parent_m1</span> <span class='kw'>=</span> <span class='fl'>0.05</span>, <span class='kw'>k_parent_sink</span> <span class='kw'>=</span> <span class='fl'>0.1</span>, <span class='kw'>k_m1_sink</span> <span class='kw'>=</span> <span class='fl'>0.01</span>),                  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fl'>100</span>, <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fl'>0</span>), <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/seq'>seq</a></span>(<span class='fl'>0</span>, <span class='fl'>20</span>, <span class='kw'>by</span> <span class='kw'>=</span> <span class='fl'>0.1</span>),                  <span class='kw'>solution_type</span> <span class='kw'>=</span> <span class='st'>"deSolve"</span>)[<span class='fl'>201</span>,]))</div><div class='output co'>#>     time   parent       m1 @@ -335,7 +335,7 @@                  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fl'>100</span>, <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fl'>0</span>), <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/seq'>seq</a></span>(<span class='fl'>0</span>, <span class='fl'>20</span>, <span class='kw'>by</span> <span class='kw'>=</span> <span class='fl'>0.1</span>),                  <span class='kw'>solution_type</span> <span class='kw'>=</span> <span class='st'>"deSolve"</span>, <span class='kw'>use_compiled</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>)[<span class='fl'>201</span>,]))</div><div class='output co'>#>     time   parent       m1  #> 201   20 4.978707 27.46227</div><div class='output co'>#>        User      System verstrichen  -#>       0.039       0.000       0.040 </div><div class='input'> +#>       0.047       0.000       0.047 </div><div class='input'>    </div><div class='input'>    <span class='co'># Predict from a fitted model</span>      <span class='no'>f</span> <span class='kw'><-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO</span>, <span class='no'>FOCUS_2006_C</span>)</div><div class='output co'>#> Model cost at call  1 :  552.5739   #> Model cost at call  3 :  552.5739  diff --git a/docs/reference/mmkin.html b/docs/reference/mmkin.html index 71ec89e8..1a60e3ea 100644 --- a/docs/reference/mmkin.html +++ b/docs/reference/mmkin.html @@ -191,8 +191,8 @@  <span class='no'>time_1</span> <span class='kw'><-</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>(<span class='no'>fits.4</span> <span class='kw'><-</span> <span class='fu'>mmkin</span>(<span class='no'>models</span>, <span class='no'>datasets</span>, <span class='kw'>cores</span> <span class='kw'>=</span> <span class='fl'>1</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>))  <span class='no'>time_default</span></div><div class='output co'>#>        User      System verstrichen  -#>       0.052       0.044       7.383 </div><div class='input'><span class='no'>time_1</span></div><div class='output co'>#>        User      System verstrichen  -#>      23.652       0.004      23.672 </div><div class='input'> +#>       0.036       0.039       7.196 </div><div class='input'><span class='no'>time_1</span></div><div class='output co'>#>        User      System verstrichen  +#>      22.818       0.000      22.834 </div><div class='input'>  <span class='fu'><a href='endpoints.html'>endpoints</a></span>(<span class='no'>fits.0</span><span class='kw'>[[</span><span class='st'>"SFO_lin"</span>, <span class='fl'>2</span>]])</div><div class='output co'>#> $ff  #>   parent_M1 parent_sink       M1_M2     M1_sink   #>   0.7340480   0.2659520   0.7505686   0.2494314  diff --git a/docs/reference/summary.mkinfit.html b/docs/reference/summary.mkinfit.html index 39ef962c..f0d4a060 100644 --- a/docs/reference/summary.mkinfit.html +++ b/docs/reference/summary.mkinfit.html @@ -208,15 +208,15 @@      <h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>      <pre class="examples"><div class='input'>  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='fu'><a href='mkinmod.html'>mkinmod</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>)), <span class='no'>FOCUS_2006_A</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>))</div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:48:16 2019  -#> Date of summary: Fri Feb 22 20:48:16 2019  +#> Date of fit:     Mon Feb 25 14:54:24 2019  +#> Date of summary: Mon Feb 25 14:54:24 2019   #>   #> Equations:  #> d_parent/dt = - k_parent_sink * parent  #>   #> Model predictions using solution type analytical   #>  -#> Fitted with method Port using 35 model solutions performed in 0.088 s +#> Fitted with method Port using 35 model solutions performed in 0.085 s  #>   #> Weighting: none  #>  diff --git a/docs/reference/transform_odeparms.html b/docs/reference/transform_odeparms.html index 9d18fbb2..1071a932 100644 --- a/docs/reference/transform_odeparms.html +++ b/docs/reference/transform_odeparms.html @@ -202,8 +202,8 @@ The transformation of sets of formation fractions is fragile, as it supposes  <span class='no'>fit</span> <span class='kw'><-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit</span>, <span class='kw'>data</span><span class='kw'>=</span><span class='fl'>FALSE</span>) <span class='co'># See transformed and backtransformed parameters</span></div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:48:24 2019  -#> Date of summary: Fri Feb 22 20:48:24 2019  +#> Date of fit:     Mon Feb 25 14:54:32 2019  +#> Date of summary: Mon Feb 25 14:54:32 2019   #>   #> Equations:  #> d_parent/dt = - k_parent_sink * parent - k_parent_m1 * parent @@ -211,7 +211,7 @@ The transformation of sets of formation fractions is fragile, as it supposes  #>   #> Model predictions using solution type deSolve   #>  -#> Fitted with method Port using 153 model solutions performed in 0.717 s +#> Fitted with method Port using 153 model solutions performed in 0.704 s  #>   #> Weighting: none  #>  @@ -278,8 +278,8 @@ The transformation of sets of formation fractions is fragile, as it supposes  </div><div class='input'><span class='no'>fit.2</span> <span class='kw'><-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>transform_rates</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit.2</span>, <span class='kw'>data</span><span class='kw'>=</span><span class='fl'>FALSE</span>)</div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:48:26 2019  -#> Date of summary: Fri Feb 22 20:48:26 2019  +#> Date of fit:     Mon Feb 25 14:54:34 2019  +#> Date of summary: Mon Feb 25 14:54:34 2019   #>   #> Equations:  #> d_parent/dt = - k_parent_sink * parent - k_parent_m1 * parent @@ -287,7 +287,7 @@ The transformation of sets of formation fractions is fragile, as it supposes  #>   #> Model predictions using solution type deSolve   #>  -#> Fitted with method Port using 350 model solutions performed in 1.661 s +#> Fitted with method Port using 350 model solutions performed in 1.62 s  #>   #> Weighting: none  #>  @@ -366,8 +366,8 @@ The transformation of sets of formation fractions is fragile, as it supposes  <span class='no'>fit.ff</span> <span class='kw'><-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO.ff</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit.ff</span>, <span class='kw'>data</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>)</div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:48:27 2019  -#> Date of summary: Fri Feb 22 20:48:27 2019  +#> Date of fit:     Mon Feb 25 14:54:35 2019  +#> Date of summary: Mon Feb 25 14:54:35 2019   #>   #> Equations:  #> d_parent/dt = - k_parent * parent @@ -375,7 +375,7 @@ The transformation of sets of formation fractions is fragile, as it supposes  #>   #> Model predictions using solution type deSolve   #>  -#> Fitted with method Port using 186 model solutions performed in 0.871 s +#> Fitted with method Port using 186 model solutions performed in 0.856 s  #>   #> Weighting: none  #>  @@ -450,8 +450,8 @@ The transformation of sets of formation fractions is fragile, as it supposes  <span class='no'>fit.ff.2</span> <span class='kw'><-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO.ff.2</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)  <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit.ff.2</span>, <span class='kw'>data</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>)</div><div class='output co'>#> mkin version used for fitting:    0.9.48.1   #> R version used for fitting:       3.5.2  -#> Date of fit:     Fri Feb 22 20:48:28 2019  -#> Date of summary: Fri Feb 22 20:48:28 2019  +#> Date of fit:     Mon Feb 25 14:54:36 2019  +#> Date of summary: Mon Feb 25 14:54:36 2019   #>   #> Equations:  #> d_parent/dt = - k_parent * parent @@ -459,7 +459,7 @@ The transformation of sets of formation fractions is fragile, as it supposes  #>   #> Model predictions using solution type deSolve   #>  -#> Fitted with method Port using 104 model solutions performed in 0.484 s +#> Fitted with method Port using 104 model solutions performed in 0.482 s  #>   #> Weighting: none  #>  @@ -1,28 +1,30 @@  Loading mkin  Testing mkin  ✔ | OK F W S | Context -
⠏ |  0       | Calculation of FOCUS chi2 error levels
⠋ |  1       | Calculation of FOCUS chi2 error levels
⠙ |  2       | Calculation of FOCUS chi2 error levels
✔ |  2       | Calculation of FOCUS chi2 error levels [2.5 s] -
⠏ |  0       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠋ |  1       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠙ |  2       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠹ |  3       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠸ |  4       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠼ |  5       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠴ |  6       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠦ |  7       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠧ |  8       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
✔ |  8       | Results for FOCUS D established in expertise for UBA (Ranke 2014) [7.2 s] -
⠏ |  0       | Iteratively reweighted least squares (IRLS) fitting
⠋ |  1       | Iteratively reweighted least squares (IRLS) fitting
⠙ |  1     1 | Iteratively reweighted least squares (IRLS) fitting
✔ |  1     1 | Iteratively reweighted least squares (IRLS) fitting [9.0 s] +
⠏ |  0       | Calculation of FOCUS chi2 error levels
⠋ |  1       | Calculation of FOCUS chi2 error levels
⠙ |  2       | Calculation of FOCUS chi2 error levels
✔ |  2       | Calculation of FOCUS chi2 error levels [2.4 s] +
⠏ |  0       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠋ |  1       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠙ |  2       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠹ |  3       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠸ |  4       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠼ |  5       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠴ |  6       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠦ |  7       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠧ |  8       | Results for FOCUS D established in expertise for UBA (Ranke 2014)
✔ |  8       | Results for FOCUS D established in expertise for UBA (Ranke 2014) [7.1 s] +
⠏ |  0       | Iteratively reweighted least squares (IRLS) fitting
⠋ |  1       | Iteratively reweighted least squares (IRLS) fitting
⠙ |  1     1 | Iteratively reweighted least squares (IRLS) fitting
✔ |  1     1 | Iteratively reweighted least squares (IRLS) fitting [8.8 s]  ────────────────────────────────────────────────────────────────────────────────  test_irls.R:44: skip: Reweighting method 'tc' works  Too much trouble with datasets that are randomly generated  ────────────────────────────────────────────────────────────────────────────────  
⠏ |  0       | Fitting the logistic model
⠋ |  1       | Fitting the logistic model
⠙ |  1     1 | Fitting the logistic model
✔ |  1     1 | Fitting the logistic model [0.5 s]  ──────────────────────────────────────────────────────────────────────────────── -test_logistic.R:42: skip: The logistic fit can be done via differential equation +test_logistic.R:41: skip: The logistic fit can be done via differential equation  Skip slow fit of logistic model using deSolve without compilation  ────────────────────────────────────────────────────────────────────────────────  
⠏ |  0       | Model predictions with mkinpredict
⠋ |  1       | Model predictions with mkinpredict
⠙ |  2       | Model predictions with mkinpredict
⠹ |  3       | Model predictions with mkinpredict
✔ |  3       | Model predictions with mkinpredict [0.3 s] -
⠏ |  0       | Fitting of parent only models
⠋ |  1       | Fitting of parent only models
⠙ |  2       | Fitting of parent only models
⠹ |  3       | Fitting of parent only models
⠸ |  4       | Fitting of parent only models
⠼ |  5       | Fitting of parent only models
⠴ |  6       | Fitting of parent only models
⠦ |  7       | Fitting of parent only models
⠧ |  8       | Fitting of parent only models
⠇ |  9       | Fitting of parent only models
⠏ | 10       | Fitting of parent only models
⠋ | 11       | Fitting of parent only models
⠙ | 12       | Fitting of parent only models
⠹ | 13       | Fitting of parent only models
⠸ | 14       | Fitting of parent only models
⠼ | 15       | Fitting of parent only models
⠴ | 16       | Fitting of parent only models
⠦ | 17       | Fitting of parent only models
⠧ | 18       | Fitting of parent only models
⠇ | 19       | Fitting of parent only models
⠏ | 20       | Fitting of parent only models
⠋ | 21       | Fitting of parent only models
✔ | 21       | Fitting of parent only models [23.9 s] -
⠏ |  0       | Complex test case from Schaefer et al. (2007) Piacenza paper
⠋ |  1       | Complex test case from Schaefer et al. (2007) Piacenza paper
⠙ |  2       | Complex test case from Schaefer et al. (2007) Piacenza paper
✔ |  2       | Complex test case from Schaefer et al. (2007) Piacenza paper [6.0 s] +
⠏ |  0       | Evaluations according to the NAFTA guidance from 2015
⠋ |  1       | Evaluations according to the NAFTA guidance from 2015
⠙ |  1   1   | Evaluations according to the NAFTA guidance from 2015
⠙ |  2       | Evaluations according to the NAFTA guidance from 2015
⠹ |  3       | Evaluations according to the NAFTA guidance from 2015
⠸ |  4       | Evaluations according to the NAFTA guidance from 2015
⠼ |  5       | Evaluations according to the NAFTA guidance from 2015
⠴ |  6       | Evaluations according to the NAFTA guidance from 2015
⠦ |  7       | Evaluations according to the NAFTA guidance from 2015
✔ |  7       | Evaluations according to the NAFTA guidance from 2015 [0.7 s] +
⠏ |  0       | Fitting of parent only models
⠋ |  1       | Fitting of parent only models
⠙ |  2       | Fitting of parent only models
⠹ |  3       | Fitting of parent only models
⠸ |  4       | Fitting of parent only models
⠼ |  5       | Fitting of parent only models
⠴ |  6       | Fitting of parent only models
⠦ |  7       | Fitting of parent only models
⠧ |  8       | Fitting of parent only models
⠇ |  9       | Fitting of parent only models
⠏ | 10       | Fitting of parent only models
⠋ | 11       | Fitting of parent only models
⠙ | 12       | Fitting of parent only models
⠹ | 13       | Fitting of parent only models
⠸ | 14       | Fitting of parent only models
⠼ | 15       | Fitting of parent only models
⠴ | 16       | Fitting of parent only models
⠦ | 17       | Fitting of parent only models
⠧ | 18       | Fitting of parent only models
⠇ | 19       | Fitting of parent only models
⠏ | 20       | Fitting of parent only models
⠋ | 21       | Fitting of parent only models
✔ | 21       | Fitting of parent only models [23.8 s] +
⠏ |  0       | Calculation of maximum time weighted average concentrations (TWAs)
⠋ |  1       | Calculation of maximum time weighted average concentrations (TWAs)
⠙ |  2       | Calculation of maximum time weighted average concentrations (TWAs)
⠹ |  3       | Calculation of maximum time weighted average concentrations (TWAs)
⠸ |  4       | Calculation of maximum time weighted average concentrations (TWAs)
⠼ |  5       | Calculation of maximum time weighted average concentrations (TWAs)
⠴ |  6       | Calculation of maximum time weighted average concentrations (TWAs)
⠦ |  7       | Calculation of maximum time weighted average concentrations (TWAs)
⠧ |  8       | Calculation of maximum time weighted average concentrations (TWAs)
✔ |  8       | Calculation of maximum time weighted average concentrations (TWAs) [7.2 s] +
⠏ |  0       | Plotting
⠋ |  1       | Plotting
⠙ |  2       | Plotting
✔ |  2       | Plotting [0.4 s] +
⠏ |  0       | Complex test case from Schaefer et al. (2007) Piacenza paper
⠋ |  1       | Complex test case from Schaefer et al. (2007) Piacenza paper
⠙ |  2       | Complex test case from Schaefer et al. (2007) Piacenza paper
✔ |  2       | Complex test case from Schaefer et al. (2007) Piacenza paper [5.9 s]  
⠏ |  0       | Results for synthetic data established in expertise for UBA (Ranke 2014)
⠋ |  1       | Results for synthetic data established in expertise for UBA (Ranke 2014)
⠙ |  2       | Results for synthetic data established in expertise for UBA (Ranke 2014)
⠹ |  3       | Results for synthetic data established in expertise for UBA (Ranke 2014)
⠸ |  4       | Results for synthetic data established in expertise for UBA (Ranke 2014)
✔ |  4       | Results for synthetic data established in expertise for UBA (Ranke 2014) [7.5 s] -
⠏ |  0       | Calculation of maximum time weighted average concentrations (TWAs)
⠋ |  1       | Calculation of maximum time weighted average concentrations (TWAs)
⠙ |  2       | Calculation of maximum time weighted average concentrations (TWAs)
⠹ |  3       | Calculation of maximum time weighted average concentrations (TWAs)
⠸ |  4       | Calculation of maximum time weighted average concentrations (TWAs)
⠼ |  5       | Calculation of maximum time weighted average concentrations (TWAs)
⠴ |  6       | Calculation of maximum time weighted average concentrations (TWAs)
⠦ |  7       | Calculation of maximum time weighted average concentrations (TWAs)
⠧ |  8       | Calculation of maximum time weighted average concentrations (TWAs)
✔ |  8       | Calculation of maximum time weighted average concentrations (TWAs) [8.4 s]  ══ Results ═════════════════════════════════════════════════════════════════════ -Duration: 65.5 s +Duration: 65.9 s -OK:       50 +OK:       59  Failed:   0  Warnings: 0  Skipped:  2 diff --git a/tests/figs/deps.txt b/tests/figs/deps.txt new file mode 100644 index 00000000..0f6c3754 --- /dev/null +++ b/tests/figs/deps.txt @@ -0,0 +1,3 @@ +- vdiffr-svg-engine: 1.0 +- vdiffr: 0.3.0.9000 +- freetypeharfbuzz: 0.2.5 diff --git a/tests/figs/plotting/mmkin-plot-for-focus-c.svg b/tests/figs/plotting/mmkin-plot-for-focus-c.svg new file mode 100644 index 00000000..1c697328 --- /dev/null +++ b/tests/figs/plotting/mmkin-plot-for-focus-c.svg @@ -0,0 +1,569 @@ +<?xml version='1.0' encoding='UTF-8' ?> +<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 720.00 576.00'> +<defs> +  <style type='text/css'><![CDATA[ +    line, polyline, polygon, path, rect, circle { +      fill: none; +      stroke: #000000; +      stroke-linecap: round; +      stroke-linejoin: round; +      stroke-miterlimit: 10.00; +    } +  ]]></style> +</defs> +<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/> +<line x1='52.35' y1='121.34' x2='330.13' y2='121.34' style='stroke-width: 0.75;' /> +<line x1='52.35' y1='121.34' x2='52.35' y2='126.38' style='stroke-width: 0.75;' /> +<line x1='98.64' y1='121.34' x2='98.64' y2='126.38' style='stroke-width: 0.75;' /> +<line x1='144.94' y1='121.34' x2='144.94' y2='126.38' style='stroke-width: 0.75;' /> +<line x1='191.24' y1='121.34' x2='191.24' y2='126.38' style='stroke-width: 0.75;' /> +<line x1='237.53' y1='121.34' x2='237.53' y2='126.38' style='stroke-width: 0.75;' /> +<line x1='283.83' y1='121.34' x2='283.83' y2='126.38' style='stroke-width: 0.75;' /> +<line x1='330.13' y1='121.34' x2='330.13' y2='126.38' style='stroke-width: 0.75;' /> +<text x='50.01' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text> +<text x='93.97' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text> +<text x='140.27' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text> +<text x='186.57' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text> +<text x='232.86' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text> +<text x='276.82' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text> +<text x='323.12' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text> +<line x1='41.33' y1='118.38' x2='41.33' y2='48.73' style='stroke-width: 0.75;' /> +<line x1='41.33' y1='118.38' x2='36.29' y2='118.38' style='stroke-width: 0.75;' /> +<line x1='41.33' y1='100.96' x2='36.29' y2='100.96' style='stroke-width: 0.75;' /> +<line x1='41.33' y1='83.55' x2='36.29' y2='83.55' style='stroke-width: 0.75;' /> +<line x1='41.33' y1='66.14' x2='36.29' y2='66.14' style='stroke-width: 0.75;' /> +<line x1='41.33' y1='48.73' x2='36.29' y2='48.73' style='stroke-width: 0.75;' /> +<text transform='translate(29.23,120.71) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text> +<text transform='translate(29.23,105.64) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text> +<text transform='translate(29.23,88.23) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text> +<text transform='translate(29.23,70.81) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text> +<text transform='translate(29.23,53.40) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text> +<polyline points='41.33,121.34 338.83,121.34 338.83,41.33 41.33,41.33 41.33,121.34 ' style='stroke-width: 0.75;' /> +<defs> +  <clipPath id='cpMC4wMHwzNjAuMDB8MTUxLjU4fDAuMDA='> +    <rect x='0.00' y='0.00' width='360.00' height='151.58' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHwzNjAuMDB8MTUxLjU4fDAuMDA=)'><text x='180.92' y='159.64' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g> +<g clip-path='url(#cpMC4wMHwzNjAuMDB8MTUxLjU4fDAuMDA=)'><text transform='translate(9.07,99.54) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='36.42px' lengthAdjust='spacingAndGlyphs'>Observed</text></g> +<defs> +  <clipPath id='cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw=='> +    <rect x='41.33' y='41.33' width='297.50' height='80.01' /> +  </clipPath> +</defs> +<circle cx='52.35' cy='44.29' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' /> +<circle cx='54.66' cy='67.97' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' /> +<circle cx='59.29' cy='92.35' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' /> +<circle cx='68.55' cy='105.67' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' /> +<circle cx='84.75' cy='109.93' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' /> +<circle cx='117.16' cy='112.63' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' /> +<circle cx='198.18' cy='114.89' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' /> +<circle cx='263.00' cy='114.98' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' /> +<circle cx='327.81' cy='117.85' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' /> +<polyline points='52.35,46.56 55.13,68.67 57.91,83.97 60.69,94.56 63.48,101.89 66.26,106.96 69.04,110.48 71.82,112.91 74.61,114.59 77.39,115.76 80.17,116.56 82.95,117.12 85.74,117.51 88.52,117.77 91.30,117.96 94.08,118.09 96.87,118.18 99.65,118.24 102.43,118.28 105.21,118.31 108.00,118.33 110.78,118.34 113.56,118.35 116.34,118.36 119.13,118.37 121.91,118.37 124.69,118.37 127.47,118.37 130.26,118.37 133.04,118.37 135.82,118.37 138.60,118.37 141.39,118.38 144.17,118.38 146.95,118.38 149.73,118.38 152.52,118.38 155.30,118.38 158.08,118.38 160.86,118.38 163.65,118.38 166.43,118.38 169.21,118.38 171.99,118.38 174.78,118.38 177.56,118.38 180.34,118.38 183.12,118.38 185.91,118.38 188.69,118.38 191.47,118.38 194.25,118.38 197.04,118.38 199.82,118.38 202.60,118.38 205.38,118.38 208.17,118.38 210.95,118.38 213.73,118.38 216.51,118.38 219.30,118.38 222.08,118.38 224.86,118.38 227.64,118.38 230.43,118.38 233.21,118.38 235.99,118.38 238.77,118.38 241.56,118.38 244.34,118.38 247.12,118.38 249.90,118.38 252.69,118.38 255.47,118.38 258.25,118.38 261.03,118.38 263.82,118.38 266.60,118.38 269.38,118.38 272.16,118.38 274.95,118.38 277.73,118.38 280.51,118.38 283.29,118.38 286.08,118.38 288.86,118.38 291.64,118.38 294.42,118.38 297.21,118.38 299.99,118.38 302.77,118.38 305.55,118.38 308.34,118.38 311.12,118.38 313.90,118.38 316.68,118.38 319.47,118.38 322.25,118.38 325.03,118.38 327.81,118.38 ' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' /> +<rect x='271.42' y='45.33' width='52.54' height='20.16' style='stroke-width: 0.75; fill: #FFFFFF;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' /> +<line x1='273.68' y1='55.41' x2='288.80' y2='55.41' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' /> +<circle cx='281.24' cy='55.41' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' /> +<g clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)'><text x='296.36' y='58.29' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.81px' lengthAdjust='spacingAndGlyphs'>parent</text></g> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='335.91' y='20.16' style='font-size: 10.08px; font-weight: bold; font-family: Liberation Sans;' textLength='48.17px' lengthAdjust='spacingAndGlyphs'>FOCUS_C</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='140.01' y='33.55' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='17.25px' lengthAdjust='spacingAndGlyphs'>SFO</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='157.26' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='159.36' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='3.91px' lengthAdjust='spacingAndGlyphs'>χ</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='163.26' y='29.33' style='font-size: 5.88px; font-family: Liberation Sans;' textLength='3.27px' lengthAdjust='spacingAndGlyphs'>2</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='166.53' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='168.62' y='33.55' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='37.33px' lengthAdjust='spacingAndGlyphs'>error level</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='207.89' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='6.52px' lengthAdjust='spacingAndGlyphs'>=</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='216.35' y='33.55' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.80px' lengthAdjust='spacingAndGlyphs'>15.8%</text></g> +<defs> +  <clipPath id='cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM='> +    <rect x='401.33' y='41.33' width='297.50' height='80.01' /> +  </clipPath> +</defs> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<line x1='412.35' y1='121.34' x2='664.88' y2='121.34' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='412.35' y1='121.34' x2='412.35' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='454.43' y1='121.34' x2='454.43' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='496.52' y1='121.34' x2='496.52' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='538.61' y1='121.34' x2='538.61' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='580.70' y1='121.34' x2='580.70' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='622.79' y1='121.34' x2='622.79' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='664.88' y1='121.34' x2='664.88' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='410.01' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='449.76' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='491.85' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='533.94' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='576.03' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='615.78' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='657.87' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g> +<line x1='401.33' y1='117.38' x2='401.33' y2='45.29' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='117.38' x2='396.29' y2='117.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='99.36' x2='396.29' y2='99.36' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='81.33' x2='396.29' y2='81.33' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='63.31' x2='396.29' y2='63.31' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='45.29' x2='396.29' y2='45.29' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,123.45) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='12.14px' lengthAdjust='spacingAndGlyphs'>-10</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,103.09) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-5</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,83.67) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,65.65) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>5</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,49.96) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>10</text></g> +<polyline points='401.33,121.34 698.83,121.34 698.83,41.33 401.33,41.33 401.33,121.34 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<defs> +  <clipPath id='cpMzYwLjAwfDcyMC4wMHwxNTEuNTh8MC4wMA=='> +    <rect x='360.00' y='0.00' width='360.00' height='151.58' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHwxNTEuNTh8MC4wMA==)'><text x='540.92' y='159.64' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g> +<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHwxNTEuNTh8MC4wMA==)'><text transform='translate(369.07,97.67) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='32.67px' lengthAdjust='spacingAndGlyphs'>Residual</text></g> +<defs> +  <clipPath id='cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM='> +    <rect x='401.33' y='41.33' width='297.50' height='80.01' /> +  </clipPath> +</defs> +<circle cx='412.35' cy='71.93' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' /> +<circle cx='414.45' cy='91.58' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' /> +<circle cx='418.66' cy='92.27' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' /> +<circle cx='427.08' cy='63.61' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' /> +<circle cx='441.81' cy='50.47' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' /> +<circle cx='471.27' cy='57.60' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' /> +<circle cx='544.92' cy='66.92' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' /> +<circle cx='603.85' cy='67.28' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' /> +<circle cx='662.77' cy='79.17' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' /> +<line x1='401.33' y1='81.33' x2='698.83' y2='81.33' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' /> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='523.49' y='35.28' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='53.19px' lengthAdjust='spacingAndGlyphs'>SFO residuals</text></g> +<defs> +  <clipPath id='cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU='> +    <rect x='41.33' y='172.75' width='297.50' height='85.01' /> +  </clipPath> +</defs> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<line x1='52.35' y1='257.76' x2='330.13' y2='257.76' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='52.35' y1='257.76' x2='52.35' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='98.64' y1='257.76' x2='98.64' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='144.94' y1='257.76' x2='144.94' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='191.24' y1='257.76' x2='191.24' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='237.53' y1='257.76' x2='237.53' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='283.83' y1='257.76' x2='283.83' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='330.13' y1='257.76' x2='330.13' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='50.01' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='93.97' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='140.27' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='186.57' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='232.86' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='276.82' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='323.12' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g> +<line x1='41.33' y1='254.61' x2='41.33' y2='181.28' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='254.61' x2='36.29' y2='254.61' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='236.28' x2='36.29' y2='236.28' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='217.95' x2='36.29' y2='217.95' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='199.61' x2='36.29' y2='199.61' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='181.28' x2='36.29' y2='181.28' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,256.95) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,240.95) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,222.62) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,204.29) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,185.95) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g> +<polyline points='41.33,257.76 338.83,257.76 338.83,172.75 41.33,172.75 41.33,257.76 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<defs> +  <clipPath id='cpMC4wMHwzNjAuMDB8Mjg4LjAwfDE1MS41OA=='> +    <rect x='0.00' y='151.58' width='360.00' height='136.42' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHwzNjAuMDB8Mjg4LjAwfDE1MS41OA==)'><text x='180.92' y='296.06' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g> +<g clip-path='url(#cpMC4wMHwzNjAuMDB8Mjg4LjAwfDE1MS41OA==)'><text transform='translate(9.07,233.46) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='36.42px' lengthAdjust='spacingAndGlyphs'>Observed</text></g> +<defs> +  <clipPath id='cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU='> +    <rect x='41.33' y='172.75' width='297.50' height='85.01' /> +  </clipPath> +</defs> +<circle cx='52.35' cy='176.61' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' /> +<circle cx='54.66' cy='201.54' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' /> +<circle cx='59.29' cy='227.20' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' /> +<circle cx='68.55' cy='241.23' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' /> +<circle cx='84.75' cy='245.72' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' /> +<circle cx='117.16' cy='248.56' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' /> +<circle cx='198.18' cy='250.94' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' /> +<circle cx='263.00' cy='251.04' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' /> +<circle cx='327.81' cy='254.06' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' /> +<polyline points='52.35,175.90 55.13,207.47 57.91,221.17 60.69,228.78 63.48,233.62 66.26,236.96 69.04,239.40 71.82,241.26 74.61,242.72 77.39,243.90 80.17,244.87 82.95,245.68 85.74,246.37 88.52,246.97 91.30,247.48 94.08,247.93 96.87,248.33 99.65,248.69 102.43,249.01 105.21,249.29 108.00,249.55 110.78,249.79 113.56,250.00 116.34,250.20 119.13,250.38 121.91,250.55 124.69,250.70 127.47,250.85 130.26,250.98 133.04,251.11 135.82,251.22 138.60,251.33 141.39,251.43 144.17,251.53 146.95,251.62 149.73,251.71 152.52,251.79 155.30,251.87 158.08,251.94 160.86,252.01 163.65,252.07 166.43,252.14 169.21,252.20 171.99,252.25 174.78,252.31 177.56,252.36 180.34,252.41 183.12,252.46 185.91,252.50 188.69,252.55 191.47,252.59 194.25,252.63 197.04,252.67 199.82,252.71 202.60,252.74 205.38,252.78 208.17,252.81 210.95,252.84 213.73,252.87 216.51,252.90 219.30,252.93 222.08,252.96 224.86,252.99 227.64,253.02 230.43,253.04 233.21,253.07 235.99,253.09 238.77,253.11 241.56,253.14 244.34,253.16 247.12,253.18 249.90,253.20 252.69,253.22 255.47,253.24 258.25,253.26 261.03,253.28 263.82,253.30 266.60,253.31 269.38,253.33 272.16,253.35 274.95,253.36 277.73,253.38 280.51,253.40 283.29,253.41 286.08,253.42 288.86,253.44 291.64,253.45 294.42,253.47 297.21,253.48 299.99,253.49 302.77,253.51 305.55,253.52 308.34,253.53 311.12,253.54 313.90,253.56 316.68,253.57 319.47,253.58 322.25,253.59 325.03,253.60 327.81,253.61 ' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' /> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='335.91' y='20.16' style='font-size: 10.08px; font-weight: bold; font-family: Liberation Sans;' textLength='48.17px' lengthAdjust='spacingAndGlyphs'>FOCUS_C</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='136.29' y='164.96' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='24.70px' lengthAdjust='spacingAndGlyphs'>FOMC</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='160.99' y='164.96' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='163.09' y='164.96' style='font-size: 8.40px; font-family: Symbola;' textLength='3.91px' lengthAdjust='spacingAndGlyphs'>χ</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='166.99' y='160.75' style='font-size: 5.88px; font-family: Liberation Sans;' textLength='3.27px' lengthAdjust='spacingAndGlyphs'>2</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='170.26' y='164.96' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='172.35' y='164.96' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='37.33px' lengthAdjust='spacingAndGlyphs'>error level</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='211.62' y='164.96' style='font-size: 8.40px; font-family: Symbola;' textLength='6.52px' lengthAdjust='spacingAndGlyphs'>=</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='220.07' y='164.96' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.80px' lengthAdjust='spacingAndGlyphs'>6.66%</text></g> +<defs> +  <clipPath id='cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1'> +    <rect x='401.33' y='172.75' width='297.50' height='85.01' /> +  </clipPath> +</defs> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<line x1='412.35' y1='257.76' x2='664.88' y2='257.76' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='412.35' y1='257.76' x2='412.35' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='454.43' y1='257.76' x2='454.43' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='496.52' y1='257.76' x2='496.52' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='538.61' y1='257.76' x2='538.61' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='580.70' y1='257.76' x2='580.70' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='622.79' y1='257.76' x2='622.79' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='664.88' y1='257.76' x2='664.88' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='410.01' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='449.76' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='491.85' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='533.94' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='576.03' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='615.78' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='657.87' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g> +<line x1='401.33' y1='251.57' x2='401.33' y2='178.93' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='251.57' x2='396.29' y2='251.57' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='239.47' x2='396.29' y2='239.47' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='227.36' x2='396.29' y2='227.36' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='215.25' x2='396.29' y2='215.25' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='203.15' x2='396.29' y2='203.15' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='191.04' x2='396.29' y2='191.04' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='178.93' x2='396.29' y2='178.93' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,255.31) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-3</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,231.09) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-1</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,205.48) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>1</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,193.38) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>2</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,181.27) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>3</text></g> +<polyline points='401.33,257.76 698.83,257.76 698.83,172.75 401.33,172.75 401.33,257.76 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<defs> +  <clipPath id='cpMzYwLjAwfDcyMC4wMHwyODguMDB8MTUxLjU4'> +    <rect x='360.00' y='151.58' width='360.00' height='136.42' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHwyODguMDB8MTUxLjU4)'><text x='540.92' y='296.06' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g> +<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHwyODguMDB8MTUxLjU4)'><text transform='translate(369.07,231.59) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='32.67px' lengthAdjust='spacingAndGlyphs'>Residual</text></g> +<defs> +  <clipPath id='cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1'> +    <rect x='401.33' y='172.75' width='297.50' height='85.01' /> +  </clipPath> +</defs> +<circle cx='412.35' cy='224.63' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' /> +<circle cx='414.45' cy='182.46' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' /> +<circle cx='418.66' cy='238.80' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' /> +<circle cx='427.08' cy='244.46' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' /> +<circle cx='441.81' cy='209.70' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' /> +<circle cx='471.27' cy='192.90' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' /> +<circle cx='544.92' cy='192.28' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' /> +<circle cx='603.85' cy='185.48' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' /> +<circle cx='662.77' cy='221.21' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' /> +<line x1='401.33' y1='215.25' x2='698.83' y2='215.25' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' /> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='519.76' y='166.70' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='60.64px' lengthAdjust='spacingAndGlyphs'>FOMC residuals</text></g> +<defs> +  <clipPath id='cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc='> +    <rect x='41.33' y='309.17' width='297.50' height='85.01' /> +  </clipPath> +</defs> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<line x1='52.35' y1='394.18' x2='330.13' y2='394.18' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='52.35' y1='394.18' x2='52.35' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='98.64' y1='394.18' x2='98.64' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='144.94' y1='394.18' x2='144.94' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='191.24' y1='394.18' x2='191.24' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='237.53' y1='394.18' x2='237.53' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='283.83' y1='394.18' x2='283.83' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='330.13' y1='394.18' x2='330.13' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='50.01' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='93.97' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='140.27' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='186.57' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='232.86' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='276.82' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='323.12' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g> +<line x1='41.33' y1='391.03' x2='41.33' y2='317.03' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='391.03' x2='36.29' y2='391.03' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='372.53' x2='36.29' y2='372.53' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='354.03' x2='36.29' y2='354.03' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='335.53' x2='36.29' y2='335.53' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='317.03' x2='36.29' y2='317.03' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,393.37) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,377.20) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,358.71) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,340.21) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,321.71) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g> +<polyline points='41.33,394.18 338.83,394.18 338.83,309.17 41.33,309.17 41.33,394.18 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<defs> +  <clipPath id='cpMC4wMHwzNjAuMDB8NDI0LjQyfDI4OC4wMA=='> +    <rect x='0.00' y='288.00' width='360.00' height='136.42' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHwzNjAuMDB8NDI0LjQyfDI4OC4wMA==)'><text x='180.92' y='432.49' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g> +<g clip-path='url(#cpMC4wMHwzNjAuMDB8NDI0LjQyfDI4OC4wMA==)'><text transform='translate(9.07,369.89) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='36.42px' lengthAdjust='spacingAndGlyphs'>Observed</text></g> +<defs> +  <clipPath id='cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc='> +    <rect x='41.33' y='309.17' width='297.50' height='85.01' /> +  </clipPath> +</defs> +<circle cx='52.35' cy='312.32' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' /> +<circle cx='54.66' cy='337.48' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' /> +<circle cx='59.29' cy='363.38' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' /> +<circle cx='68.55' cy='377.53' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' /> +<circle cx='84.75' cy='382.06' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' /> +<circle cx='117.16' cy='384.93' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' /> +<circle cx='198.18' cy='387.33' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' /> +<circle cx='263.00' cy='387.42' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' /> +<circle cx='327.81' cy='390.48' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' /> +<polyline points='52.35,312.41 55.13,341.15 57.91,357.79 60.69,367.46 63.48,373.12 66.26,376.48 69.04,378.49 71.82,379.75 74.61,380.55 77.39,381.10 80.17,381.50 82.95,381.81 85.74,382.07 88.52,382.29 91.30,382.50 94.08,382.69 96.87,382.88 99.65,383.05 102.43,383.22 105.21,383.39 108.00,383.55 110.78,383.71 113.56,383.87 116.34,384.02 119.13,384.17 121.91,384.32 124.69,384.46 127.47,384.60 130.26,384.73 133.04,384.87 135.82,385.00 138.60,385.13 141.39,385.25 144.17,385.38 146.95,385.50 149.73,385.61 152.52,385.73 155.30,385.84 158.08,385.95 160.86,386.06 163.65,386.16 166.43,386.27 169.21,386.37 171.99,386.47 174.78,386.56 177.56,386.66 180.34,386.75 183.12,386.84 185.91,386.93 188.69,387.02 191.47,387.10 194.25,387.19 197.04,387.27 199.82,387.35 202.60,387.43 205.38,387.50 208.17,387.58 210.95,387.65 213.73,387.72 216.51,387.79 219.30,387.86 222.08,387.93 224.86,388.00 227.64,388.06 230.43,388.12 233.21,388.19 235.99,388.25 238.77,388.30 241.56,388.36 244.34,388.42 247.12,388.47 249.90,388.53 252.69,388.58 255.47,388.63 258.25,388.69 261.03,388.73 263.82,388.78 266.60,388.83 269.38,388.88 272.16,388.92 274.95,388.97 277.73,389.01 280.51,389.06 283.29,389.10 286.08,389.14 288.86,389.18 291.64,389.22 294.42,389.26 297.21,389.29 299.99,389.33 302.77,389.37 305.55,389.40 308.34,389.44 311.12,389.47 313.90,389.50 316.68,389.54 319.47,389.57 322.25,389.60 325.03,389.63 327.81,389.66 ' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' /> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='335.91' y='20.16' style='font-size: 10.08px; font-weight: bold; font-family: Liberation Sans;' textLength='48.17px' lengthAdjust='spacingAndGlyphs'>FOCUS_C</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='136.98' y='301.39' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.31px' lengthAdjust='spacingAndGlyphs'>DFOP</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='160.30' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='162.39' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='3.91px' lengthAdjust='spacingAndGlyphs'>χ</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='166.30' y='297.17' style='font-size: 5.88px; font-family: Liberation Sans;' textLength='3.27px' lengthAdjust='spacingAndGlyphs'>2</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='169.56' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='171.66' y='301.39' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='37.33px' lengthAdjust='spacingAndGlyphs'>error level</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='210.92' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='6.52px' lengthAdjust='spacingAndGlyphs'>=</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='219.38' y='301.39' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.80px' lengthAdjust='spacingAndGlyphs'>2.66%</text></g> +<defs> +  <clipPath id='cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3'> +    <rect x='401.33' y='309.17' width='297.50' height='85.01' /> +  </clipPath> +</defs> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<line x1='412.35' y1='394.18' x2='664.88' y2='394.18' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='412.35' y1='394.18' x2='412.35' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='454.43' y1='394.18' x2='454.43' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='496.52' y1='394.18' x2='496.52' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='538.61' y1='394.18' x2='538.61' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='580.70' y1='394.18' x2='580.70' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='622.79' y1='394.18' x2='622.79' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='664.88' y1='394.18' x2='664.88' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='410.01' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='449.76' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='491.85' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='533.94' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='576.03' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='615.78' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='657.87' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g> +<line x1='401.33' y1='385.52' x2='401.33' y2='317.83' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='385.52' x2='396.29' y2='385.52' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='374.24' x2='396.29' y2='374.24' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='362.96' x2='396.29' y2='362.96' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='351.67' x2='396.29' y2='351.67' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='340.39' x2='396.29' y2='340.39' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='329.11' x2='396.29' y2='329.11' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='317.83' x2='396.29' y2='317.83' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,392.76) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.47px' lengthAdjust='spacingAndGlyphs'>-1.5</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,370.19) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.47px' lengthAdjust='spacingAndGlyphs'>-0.5</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,346.23) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='11.67px' lengthAdjust='spacingAndGlyphs'>0.5</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,323.66) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='11.67px' lengthAdjust='spacingAndGlyphs'>1.5</text></g> +<polyline points='401.33,394.18 698.83,394.18 698.83,309.17 401.33,309.17 401.33,394.18 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<defs> +  <clipPath id='cpMzYwLjAwfDcyMC4wMHw0MjQuNDJ8Mjg4LjAw'> +    <rect x='360.00' y='288.00' width='360.00' height='136.42' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHw0MjQuNDJ8Mjg4LjAw)'><text x='540.92' y='432.49' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g> +<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHw0MjQuNDJ8Mjg4LjAw)'><text transform='translate(369.07,368.01) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='32.67px' lengthAdjust='spacingAndGlyphs'>Residual</text></g> +<defs> +  <clipPath id='cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3'> +    <rect x='401.33' y='309.17' width='297.50' height='85.01' /> +  </clipPath> +</defs> +<circle cx='412.35' cy='349.48' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' /> +<circle cx='414.45' cy='354.81' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' /> +<circle cx='418.66' cy='355.14' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' /> +<circle cx='427.08' cy='335.11' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' /> +<circle cx='441.81' cy='353.63' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' /> +<circle cx='471.27' cy='372.71' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' /> +<circle cx='544.92' cy='352.41' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' /> +<circle cx='603.85' cy='318.88' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' /> +<circle cx='662.77' cy='371.63' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' /> +<line x1='401.33' y1='351.67' x2='698.83' y2='351.67' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' /> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='520.53' y='303.12' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='59.09px' lengthAdjust='spacingAndGlyphs'>DFOP residuals</text></g> +<defs> +  <clipPath id='cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk='> +    <rect x='41.33' y='445.59' width='297.50' height='79.00' /> +  </clipPath> +</defs> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<line x1='52.35' y1='524.59' x2='330.13' y2='524.59' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='52.35' y1='524.59' x2='52.35' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='98.64' y1='524.59' x2='98.64' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='144.94' y1='524.59' x2='144.94' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='191.24' y1='524.59' x2='191.24' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='237.53' y1='524.59' x2='237.53' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='283.83' y1='524.59' x2='283.83' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='330.13' y1='524.59' x2='330.13' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='50.01' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='93.97' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='140.27' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='186.57' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='232.86' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='276.82' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='323.12' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g> +<line x1='41.33' y1='521.67' x2='41.33' y2='452.90' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='521.67' x2='36.29' y2='521.67' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='504.47' x2='36.29' y2='504.47' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='487.28' x2='36.29' y2='487.28' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='470.09' x2='36.29' y2='470.09' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='452.90' x2='36.29' y2='452.90' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,524.00) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,509.15) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,491.95) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,474.76) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,457.57) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g> +<polyline points='41.33,524.59 338.83,524.59 338.83,445.59 41.33,445.59 41.33,524.59 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<defs> +  <clipPath id='cpMC4wMHwzNjAuMDB8NTc2LjAwfDQyNC40Mg=='> +    <rect x='0.00' y='424.42' width='360.00' height='151.58' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHwzNjAuMDB8NTc2LjAwfDQyNC40Mg==)'><text x='180.92' y='562.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g> +<g clip-path='url(#cpMC4wMHwzNjAuMDB8NTc2LjAwfDQyNC40Mg==)'><text transform='translate(9.07,503.30) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='36.42px' lengthAdjust='spacingAndGlyphs'>Observed</text></g> +<defs> +  <clipPath id='cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk='> +    <rect x='41.33' y='445.59' width='297.50' height='79.00' /> +  </clipPath> +</defs> +<circle cx='52.35' cy='448.52' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' /> +<circle cx='54.66' cy='471.90' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' /> +<circle cx='59.29' cy='495.96' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' /> +<circle cx='68.55' cy='509.12' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' /> +<circle cx='84.75' cy='513.33' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' /> +<circle cx='117.16' cy='515.99' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' /> +<circle cx='198.18' cy='518.23' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' /> +<circle cx='263.00' cy='518.31' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' /> +<circle cx='327.81' cy='521.15' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' /> +<polyline points='52.35,449.03 55.13,474.33 57.91,490.81 60.69,501.56 63.48,508.56 66.26,510.30 69.04,510.60 71.82,510.90 74.61,511.19 77.39,511.47 80.17,511.75 82.95,512.01 85.74,512.27 88.52,512.52 91.30,512.77 94.08,513.01 96.87,513.24 99.65,513.47 102.43,513.69 105.21,513.90 108.00,514.11 110.78,514.31 113.56,514.51 116.34,514.70 119.13,514.89 121.91,515.07 124.69,515.25 127.47,515.42 130.26,515.59 133.04,515.75 135.82,515.91 138.60,516.07 141.39,516.22 144.17,516.36 146.95,516.51 149.73,516.64 152.52,516.78 155.30,516.91 158.08,517.04 160.86,517.16 163.65,517.28 166.43,517.40 169.21,517.52 171.99,517.63 174.78,517.74 177.56,517.84 180.34,517.94 183.12,518.04 185.91,518.14 188.69,518.24 191.47,518.33 194.25,518.42 197.04,518.51 199.82,518.59 202.60,518.67 205.38,518.75 208.17,518.83 210.95,518.91 213.73,518.98 216.51,519.05 219.30,519.12 222.08,519.19 224.86,519.26 227.64,519.32 230.43,519.39 233.21,519.45 235.99,519.51 238.77,519.57 241.56,519.62 244.34,519.68 247.12,519.73 249.90,519.78 252.69,519.83 255.47,519.88 258.25,519.93 261.03,519.98 263.82,520.02 266.60,520.07 269.38,520.11 272.16,520.15 274.95,520.19 277.73,520.23 280.51,520.27 283.29,520.31 286.08,520.34 288.86,520.38 291.64,520.41 294.42,520.45 297.21,520.48 299.99,520.51 302.77,520.54 305.55,520.57 308.34,520.60 311.12,520.63 313.90,520.66 316.68,520.69 319.47,520.71 322.25,520.74 325.03,520.76 327.81,520.79 ' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' /> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='335.91' y='20.16' style='font-size: 10.08px; font-weight: bold; font-family: Liberation Sans;' textLength='48.17px' lengthAdjust='spacingAndGlyphs'>FOCUS_C</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='145.15' y='437.81' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='11.66px' lengthAdjust='spacingAndGlyphs'>HS</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='156.80' y='437.81' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='158.90' y='437.81' style='font-size: 8.40px; font-family: Symbola;' textLength='3.91px' lengthAdjust='spacingAndGlyphs'>χ</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='162.80' y='433.59' style='font-size: 5.88px; font-family: Liberation Sans;' textLength='3.27px' lengthAdjust='spacingAndGlyphs'>2</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='166.07' y='437.81' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='168.16' y='437.81' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='37.33px' lengthAdjust='spacingAndGlyphs'>error level</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='207.43' y='437.81' style='font-size: 8.40px; font-family: Symbola;' textLength='6.52px' lengthAdjust='spacingAndGlyphs'>=</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='215.89' y='437.81' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='19.12px' lengthAdjust='spacingAndGlyphs'>4.7%</text></g> +<defs> +  <clipPath id='cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5'> +    <rect x='401.33' y='445.59' width='297.50' height='79.00' /> +  </clipPath> +</defs> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<line x1='412.35' y1='524.59' x2='664.88' y2='524.59' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='412.35' y1='524.59' x2='412.35' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='454.43' y1='524.59' x2='454.43' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='496.52' y1='524.59' x2='496.52' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='538.61' y1='524.59' x2='538.61' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='580.70' y1='524.59' x2='580.70' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='622.79' y1='524.59' x2='622.79' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='664.88' y1='524.59' x2='664.88' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='410.01' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='449.76' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='491.85' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='533.94' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='576.03' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='615.78' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='657.87' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g> +<line x1='401.33' y1='515.99' x2='401.33' y2='454.19' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='515.99' x2='396.29' y2='515.99' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='500.54' x2='396.29' y2='500.54' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='485.09' x2='396.29' y2='485.09' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='469.64' x2='396.29' y2='469.64' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='454.19' x2='396.29' y2='454.19' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,519.73) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-2</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,504.28) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-1</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,487.43) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,471.97) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>1</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,456.52) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>2</text></g> +<polyline points='401.33,524.59 698.83,524.59 698.83,445.59 401.33,445.59 401.33,524.59 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<defs> +  <clipPath id='cpMzYwLjAwfDcyMC4wMHw1NzYuMDB8NDI0LjQy'> +    <rect x='360.00' y='424.42' width='360.00' height='151.58' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHw1NzYuMDB8NDI0LjQy)'><text x='540.92' y='562.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g> +<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHw1NzYuMDB8NDI0LjQy)'><text transform='translate(369.07,501.43) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='32.67px' lengthAdjust='spacingAndGlyphs'>Residual</text></g> +<defs> +  <clipPath id='cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5'> +    <rect x='401.33' y='445.59' width='297.50' height='79.00' /> +  </clipPath> +</defs> +<circle cx='412.35' cy='475.84' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' /> +<circle cx='414.45' cy='504.89' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' /> +<circle cx='418.66' cy='471.63' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' /> +<circle cx='427.08' cy='459.32' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' /> +<circle cx='441.81' cy='505.72' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' /> +<circle cx='471.27' cy='507.27' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' /> +<circle cx='544.92' cy='479.46' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' /> +<circle cx='603.85' cy='454.61' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' /> +<circle cx='662.77' cy='491.61' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' /> +<line x1='401.33' y1='485.09' x2='698.83' y2='485.09' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' /> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='526.28' y='439.54' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='47.59px' lengthAdjust='spacingAndGlyphs'>HS residuals</text></g> +<defs> +  <clipPath id='cpNTkuMDR8Njg5Ljc2fDUwMi41Nnw1OS4wNA=='> +    <rect x='59.04' y='59.04' width='630.72' height='443.52' /> +  </clipPath> +</defs> +</svg> diff --git a/tests/figs/plotting/mmkin-plot-for-sfo-focus-c-and-d.svg b/tests/figs/plotting/mmkin-plot-for-sfo-focus-c-and-d.svg new file mode 100644 index 00000000..72496e86 --- /dev/null +++ b/tests/figs/plotting/mmkin-plot-for-sfo-focus-c-and-d.svg @@ -0,0 +1,300 @@ +<?xml version='1.0' encoding='UTF-8' ?> +<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 720.00 576.00'> +<defs> +  <style type='text/css'><![CDATA[ +    line, polyline, polygon, path, rect, circle { +      fill: none; +      stroke: #000000; +      stroke-linecap: round; +      stroke-linejoin: round; +      stroke-miterlimit: 10.00; +    } +  ]]></style> +</defs> +<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/> +<line x1='52.35' y1='257.76' x2='330.13' y2='257.76' style='stroke-width: 0.75;' /> +<line x1='52.35' y1='257.76' x2='52.35' y2='262.80' style='stroke-width: 0.75;' /> +<line x1='98.64' y1='257.76' x2='98.64' y2='262.80' style='stroke-width: 0.75;' /> +<line x1='144.94' y1='257.76' x2='144.94' y2='262.80' style='stroke-width: 0.75;' /> +<line x1='191.24' y1='257.76' x2='191.24' y2='262.80' style='stroke-width: 0.75;' /> +<line x1='237.53' y1='257.76' x2='237.53' y2='262.80' style='stroke-width: 0.75;' /> +<line x1='283.83' y1='257.76' x2='283.83' y2='262.80' style='stroke-width: 0.75;' /> +<line x1='330.13' y1='257.76' x2='330.13' y2='262.80' style='stroke-width: 0.75;' /> +<text x='50.01' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text> +<text x='93.97' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text> +<text x='140.27' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text> +<text x='186.57' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text> +<text x='232.86' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text> +<text x='276.82' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text> +<text x='323.12' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text> +<line x1='41.33' y1='249.74' x2='41.33' y2='61.35' style='stroke-width: 0.75;' /> +<line x1='41.33' y1='249.74' x2='36.29' y2='249.74' style='stroke-width: 0.75;' /> +<line x1='41.33' y1='202.65' x2='36.29' y2='202.65' style='stroke-width: 0.75;' /> +<line x1='41.33' y1='155.55' x2='36.29' y2='155.55' style='stroke-width: 0.75;' /> +<line x1='41.33' y1='108.45' x2='36.29' y2='108.45' style='stroke-width: 0.75;' /> +<line x1='41.33' y1='61.35' x2='36.29' y2='61.35' style='stroke-width: 0.75;' /> +<text transform='translate(29.23,252.08) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text> +<text transform='translate(29.23,207.32) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text> +<text transform='translate(29.23,160.22) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text> +<text transform='translate(29.23,113.12) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text> +<text transform='translate(29.23,66.03) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text> +<polyline points='41.33,257.76 338.83,257.76 338.83,41.33 41.33,41.33 41.33,257.76 ' style='stroke-width: 0.75;' /> +<defs> +  <clipPath id='cpMC4wMHwzNjAuMDB8Mjg4LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='360.00' height='288.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHwzNjAuMDB8Mjg4LjAwfDAuMDA=)'><text x='180.92' y='296.06' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g> +<g clip-path='url(#cpMC4wMHwzNjAuMDB8Mjg4LjAwfDAuMDA=)'><text transform='translate(9.07,167.75) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='36.42px' lengthAdjust='spacingAndGlyphs'>Observed</text></g> +<defs> +  <clipPath id='cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw=='> +    <rect x='41.33' y='41.33' width='297.50' height='216.43' /> +  </clipPath> +</defs> +<circle cx='52.35' cy='49.34' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' /> +<circle cx='54.66' cy='113.40' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' /> +<circle cx='59.29' cy='179.33' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' /> +<circle cx='68.55' cy='215.36' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' /> +<circle cx='84.75' cy='226.90' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' /> +<circle cx='117.16' cy='234.20' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' /> +<circle cx='198.18' cy='240.32' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' /> +<circle cx='263.00' cy='240.56' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' /> +<circle cx='327.81' cy='248.33' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' /> +<polyline points='52.35,55.49 55.13,115.28 57.91,156.67 60.69,185.32 63.48,205.15 66.26,218.88 69.04,228.38 71.82,234.95 74.61,239.51 77.39,242.66 80.17,244.84 82.95,246.35 85.74,247.39 88.52,248.12 91.30,248.62 94.08,248.96 96.87,249.20 99.65,249.37 102.43,249.49 105.21,249.57 108.00,249.62 110.78,249.66 113.56,249.68 116.34,249.70 119.13,249.72 121.91,249.72 124.69,249.73 127.47,249.73 130.26,249.74 133.04,249.74 135.82,249.74 138.60,249.74 141.39,249.74 144.17,249.74 146.95,249.74 149.73,249.74 152.52,249.74 155.30,249.74 158.08,249.74 160.86,249.74 163.65,249.74 166.43,249.74 169.21,249.74 171.99,249.74 174.78,249.74 177.56,249.74 180.34,249.74 183.12,249.74 185.91,249.74 188.69,249.74 191.47,249.74 194.25,249.74 197.04,249.74 199.82,249.74 202.60,249.74 205.38,249.74 208.17,249.74 210.95,249.74 213.73,249.74 216.51,249.74 219.30,249.74 222.08,249.74 224.86,249.74 227.64,249.74 230.43,249.74 233.21,249.74 235.99,249.74 238.77,249.74 241.56,249.74 244.34,249.74 247.12,249.74 249.90,249.74 252.69,249.74 255.47,249.74 258.25,249.74 261.03,249.74 263.82,249.74 266.60,249.74 269.38,249.74 272.16,249.74 274.95,249.74 277.73,249.74 280.51,249.74 283.29,249.74 286.08,249.74 288.86,249.74 291.64,249.74 294.42,249.74 297.21,249.74 299.99,249.74 302.77,249.74 305.55,249.74 308.34,249.74 311.12,249.74 313.90,249.74 316.68,249.74 319.47,249.74 322.25,249.74 325.03,249.74 327.81,249.74 ' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' /> +<rect x='271.42' y='52.15' width='52.54' height='20.16' style='stroke-width: 0.75; fill: #FFFFFF;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' /> +<line x1='273.68' y1='62.23' x2='288.80' y2='62.23' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' /> +<circle cx='281.24' cy='62.23' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' /> +<g clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)'><text x='296.36' y='65.11' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.81px' lengthAdjust='spacingAndGlyphs'>parent</text></g> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='349.64' y='20.16' style='font-size: 10.08px; font-weight: bold; font-family: Liberation Sans;' textLength='20.72px' lengthAdjust='spacingAndGlyphs'>SFO</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='128.59' y='33.55' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='40.11px' lengthAdjust='spacingAndGlyphs'>FOCUS_C</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='168.69' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='170.79' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='3.91px' lengthAdjust='spacingAndGlyphs'>χ</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='174.69' y='29.33' style='font-size: 5.88px; font-family: Liberation Sans;' textLength='3.27px' lengthAdjust='spacingAndGlyphs'>2</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='177.96' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='180.05' y='33.55' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='37.33px' lengthAdjust='spacingAndGlyphs'>error level</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='219.32' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='6.52px' lengthAdjust='spacingAndGlyphs'>=</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='227.78' y='33.55' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.80px' lengthAdjust='spacingAndGlyphs'>15.8%</text></g> +<defs> +  <clipPath id='cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM='> +    <rect x='401.33' y='41.33' width='297.50' height='216.43' /> +  </clipPath> +</defs> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<line x1='412.35' y1='257.76' x2='664.88' y2='257.76' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='412.35' y1='257.76' x2='412.35' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='454.43' y1='257.76' x2='454.43' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='496.52' y1='257.76' x2='496.52' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='538.61' y1='257.76' x2='538.61' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='580.70' y1='257.76' x2='580.70' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='622.79' y1='257.76' x2='622.79' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='664.88' y1='257.76' x2='664.88' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='410.01' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='449.76' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='491.85' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='533.94' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='576.03' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='615.78' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='657.87' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g> +<line x1='401.33' y1='247.05' x2='401.33' y2='52.04' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='247.05' x2='396.29' y2='247.05' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='198.30' x2='396.29' y2='198.30' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='149.54' x2='396.29' y2='149.54' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='100.79' x2='396.29' y2='100.79' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='52.04' x2='396.29' y2='52.04' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,253.12) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='12.14px' lengthAdjust='spacingAndGlyphs'>-10</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,202.03) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-5</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,151.88) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,103.13) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>5</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,56.71) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>10</text></g> +<polyline points='401.33,257.76 698.83,257.76 698.83,41.33 401.33,41.33 401.33,257.76 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<defs> +  <clipPath id='cpMzYwLjAwfDcyMC4wMHwyODguMDB8MC4wMA=='> +    <rect x='360.00' y='0.00' width='360.00' height='288.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHwyODguMDB8MC4wMA==)'><text x='540.92' y='296.06' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g> +<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHwyODguMDB8MC4wMA==)'><text transform='translate(369.07,165.88) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='32.67px' lengthAdjust='spacingAndGlyphs'>Residual</text></g> +<defs> +  <clipPath id='cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM='> +    <rect x='401.33' y='41.33' width='297.50' height='216.43' /> +  </clipPath> +</defs> +<circle cx='412.35' cy='124.12' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' /> +<circle cx='414.45' cy='177.26' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' /> +<circle cx='418.66' cy='179.13' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' /> +<circle cx='427.08' cy='101.59' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' /> +<circle cx='441.81' cy='66.04' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' /> +<circle cx='471.27' cy='85.34' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' /> +<circle cx='544.92' cy='110.54' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' /> +<circle cx='603.85' cy='111.52' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' /> +<circle cx='662.77' cy='143.69' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' /> +<line x1='401.33' y1='149.54' x2='698.83' y2='149.54' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' /> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='512.06' y='35.28' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='76.05px' lengthAdjust='spacingAndGlyphs'>FOCUS_C residuals</text></g> +<defs> +  <clipPath id='cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc='> +    <rect x='41.33' y='309.17' width='297.50' height='215.42' /> +  </clipPath> +</defs> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<line x1='52.35' y1='524.59' x2='272.72' y2='524.59' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='52.35' y1='524.59' x2='52.35' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='125.80' y1='524.59' x2='125.80' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='199.26' y1='524.59' x2='199.26' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='272.72' y1='524.59' x2='272.72' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='50.01' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='121.13' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='194.59' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='268.05' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<line x1='41.33' y1='516.61' x2='41.33' y2='321.13' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='516.61' x2='36.29' y2='516.61' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='477.52' x2='36.29' y2='477.52' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='438.42' x2='36.29' y2='438.42' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='399.33' x2='36.29' y2='399.33' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='360.23' x2='36.29' y2='360.23' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='41.33' y1='321.13' x2='36.29' y2='321.13' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,518.95) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,482.19) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,443.09) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,404.00) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,364.90) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,328.14) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g> +<polyline points='41.33,524.59 338.83,524.59 338.83,309.17 41.33,309.17 41.33,524.59 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<defs> +  <clipPath id='cpMC4wMHwzNjAuMDB8NTc2LjAwfDI4OC4wMA=='> +    <rect x='0.00' y='288.00' width='360.00' height='288.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHwzNjAuMDB8NTc2LjAwfDI4OC4wMA==)'><text x='180.92' y='562.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g> +<g clip-path='url(#cpMC4wMHwzNjAuMDB8NTc2LjAwfDI4OC4wMA==)'><text transform='translate(9.07,435.09) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='36.42px' lengthAdjust='spacingAndGlyphs'>Observed</text></g> +<defs> +  <clipPath id='cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc='> +    <rect x='41.33' y='309.17' width='297.50' height='215.42' /> +  </clipPath> +</defs> +<circle cx='52.35' cy='322.19' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='52.35' cy='317.15' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='56.02' cy='333.84' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='56.02' cy='335.80' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='63.37' cy='393.01' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='63.37' cy='381.75' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='78.06' cy='414.34' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='78.06' cy='408.85' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='103.77' cy='463.31' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='103.77' cy='464.54' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='129.48' cy='494.13' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='129.48' cy='493.86' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='180.90' cy='511.04' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='180.90' cy='510.92' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='235.99' cy='515.26' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='235.99' cy='515.38' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='327.81' cy='516.52' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<circle cx='327.81' cy='516.50' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<polyline points='52.35,322.22 55.13,336.12 57.91,349.03 60.69,361.01 63.48,372.14 66.26,382.47 69.04,392.06 71.82,400.97 74.61,409.24 77.39,416.92 80.17,424.05 82.95,430.66 85.74,436.81 88.52,442.52 91.30,447.82 94.08,452.74 96.87,457.30 99.65,461.54 102.43,465.48 105.21,469.14 108.00,472.53 110.78,475.69 113.56,478.61 116.34,481.33 119.13,483.85 121.91,486.20 124.69,488.37 127.47,490.39 130.26,492.27 133.04,494.01 135.82,495.62 138.60,497.12 141.39,498.52 144.17,499.81 146.95,501.01 149.73,502.13 152.52,503.16 155.30,504.13 158.08,505.02 160.86,505.85 163.65,506.62 166.43,507.33 169.21,508.00 171.99,508.61 174.78,509.18 177.56,509.72 180.34,510.21 183.12,510.67 185.91,511.09 188.69,511.49 191.47,511.85 194.25,512.19 197.04,512.51 199.82,512.80 202.60,513.08 205.38,513.33 208.17,513.56 210.95,513.78 213.73,513.98 216.51,514.17 219.30,514.35 222.08,514.51 224.86,514.66 227.64,514.80 230.43,514.93 233.21,515.05 235.99,515.16 238.77,515.26 241.56,515.36 244.34,515.45 247.12,515.53 249.90,515.61 252.69,515.68 255.47,515.75 258.25,515.81 261.03,515.87 263.82,515.92 266.60,515.97 269.38,516.02 272.16,516.06 274.95,516.10 277.73,516.14 280.51,516.17 283.29,516.20 286.08,516.23 288.86,516.26 291.64,516.28 294.42,516.31 297.21,516.33 299.99,516.35 302.77,516.37 305.55,516.39 308.34,516.40 311.12,516.42 313.90,516.43 316.68,516.44 319.47,516.46 322.25,516.47 325.03,516.48 327.81,516.49 ' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' /> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='349.64' y='20.16' style='font-size: 10.08px; font-weight: bold; font-family: Liberation Sans;' textLength='20.72px' lengthAdjust='spacingAndGlyphs'>SFO</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='128.59' y='301.39' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='40.11px' lengthAdjust='spacingAndGlyphs'>FOCUS_D</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='168.69' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='170.79' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='3.91px' lengthAdjust='spacingAndGlyphs'>χ</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='174.69' y='297.17' style='font-size: 5.88px; font-family: Liberation Sans;' textLength='3.27px' lengthAdjust='spacingAndGlyphs'>2</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='177.96' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='180.05' y='301.39' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='37.33px' lengthAdjust='spacingAndGlyphs'>error level</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='219.32' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='6.52px' lengthAdjust='spacingAndGlyphs'>=</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='227.78' y='301.39' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.80px' lengthAdjust='spacingAndGlyphs'>6.45%</text></g> +<defs> +  <clipPath id='cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3'> +    <rect x='401.33' y='309.17' width='297.50' height='215.42' /> +  </clipPath> +</defs> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<line x1='412.35' y1='524.59' x2='679.47' y2='524.59' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='412.35' y1='524.59' x2='412.35' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='479.13' y1='524.59' x2='479.13' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='545.91' y1='524.59' x2='545.91' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='612.69' y1='524.59' x2='612.69' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='679.47' y1='524.59' x2='679.47' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='410.01' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='474.45' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='541.23' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='608.01' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='674.79' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g> +<line x1='401.33' y1='493.14' x2='401.33' y2='340.62' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='493.14' x2='396.29' y2='493.14' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='455.01' x2='396.29' y2='455.01' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='416.88' x2='396.29' y2='416.88' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='378.75' x2='396.29' y2='378.75' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<line x1='401.33' y1='340.62' x2='396.29' y2='340.62' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,499.21) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='12.14px' lengthAdjust='spacingAndGlyphs'>-10</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,458.75) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-5</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,419.22) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,381.08) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>5</text></g> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,345.29) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>10</text></g> +<polyline points='401.33,524.59 698.83,524.59 698.83,309.17 401.33,309.17 401.33,524.59 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' /> +<defs> +  <clipPath id='cpMzYwLjAwfDcyMC4wMHw1NzYuMDB8Mjg4LjAw'> +    <rect x='360.00' y='288.00' width='360.00' height='288.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHw1NzYuMDB8Mjg4LjAw)'><text x='540.92' y='562.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g> +<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHw1NzYuMDB8Mjg4LjAw)'><text transform='translate(369.07,433.22) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='32.67px' lengthAdjust='spacingAndGlyphs'>Residual</text></g> +<defs> +  <clipPath id='cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3'> +    <rect x='401.33' y='309.17' width='297.50' height='215.42' /> +  </clipPath> +</defs> +<circle cx='412.35' cy='416.76' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='412.35' cy='397.08' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='415.69' cy='391.46' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='415.69' cy='399.09' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='422.36' cy='499.99' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='422.36' cy='456.06' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='435.72' cy='399.96' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='435.72' cy='378.53' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='459.09' cy='401.41' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='459.09' cy='406.22' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='482.47' cy='426.16' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='482.47' cy='425.09' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='529.21' cy='419.76' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='529.21' cy='419.30' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='579.30' cy='417.28' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='579.30' cy='417.74' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='662.77' cy='416.99' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<circle cx='662.77' cy='416.91' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<line x1='401.33' y1='416.88' x2='698.83' y2='416.88' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' /> +<defs> +  <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='> +    <rect x='0.00' y='0.00' width='720.00' height='576.00' /> +  </clipPath> +</defs> +<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='512.06' y='303.12' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='76.05px' lengthAdjust='spacingAndGlyphs'>FOCUS_D residuals</text></g> +<defs> +  <clipPath id='cpNTkuMDR8Njg5Ljc2fDUwMi41Nnw1OS4wNA=='> +    <rect x='59.04' y='59.04' width='630.72' height='443.52' /> +  </clipPath> +</defs> +</svg> diff --git a/tests/testthat/test_twa.R b/tests/testthat/test_plots_twa.R index 42b74a7f..fe0ba325 100644 --- a/tests/testthat/test_twa.R +++ b/tests/testthat/test_plots_twa.R @@ -1,4 +1,4 @@ -# Copyright (C) 2016,2017,2018 Johannes Ranke +# Copyright (C) 2016-2019 Johannes Ranke  # Contact: jranke@uni-bremen.de  # This file is part of the R package mkin @@ -16,20 +16,20 @@  # You should have received a copy of the GNU General Public License along with  # this program. If not, see <http://www.gnu.org/licenses/> -context("Calculation of maximum time weighted average concentrations (TWAs)") +models <- c("SFO", "FOMC", "DFOP", "HS") +fits <- mmkin(models, +  list(FOCUS_C = FOCUS_2006_C, FOCUS_D = FOCUS_2006_D), +  quiet = TRUE, cores = if (Sys.getenv("TRAVIS") == "") 15 else 1) +context("Calculation of maximum time weighted average concentrations (TWAs)")  test_that("Time weighted average concentrations are correct", {    skip_on_cran() -  twa_models <- c("SFO", "FOMC", "DFOP", "HS") -  fits <- mmkin(twa_models, -                list(FOCUS_C = FOCUS_2006_C, FOCUS_D = FOCUS_2006_D), -                quiet = TRUE, cores = if (Sys.getenv("TRAVIS") == "") 15 else 1)    outtimes_10 <- seq(0, 10, length.out = 10000)    for (ds in c("FOCUS_C", "FOCUS_D")) { -    for (model in twa_models) { +    for (model in models) {        fit <- fits[[model, ds]]        bpar <- summary(fit)$bpar[, "Estimate"]        pred_10 <- mkinpredict(fit$mkinmod, @@ -47,3 +47,15 @@ test_that("Time weighted average concentrations are correct", {      }    }  }) + +context("Plotting") + +test_that("Plotting mmkin objects is reproducible", { +  skip_on_cran() +  mmkin_FOCUS_C <- function() plot(fits[, "FOCUS_C"]) +  mmkin_SFO <- function() plot(fits["SFO",]) + +  vdiffr::expect_doppelganger("mmkin plot for FOCUS C", mmkin_FOCUS_C) +  vdiffr::expect_doppelganger("mmkin plot for SFO (FOCUS C and D)", mmkin_SFO) +}) + | 
