diff options
Diffstat (limited to 'docs/jacoco-ut/bjc.everge')
24 files changed, 2040 insertions, 0 deletions
diff --git a/docs/jacoco-ut/bjc.everge/ControlledString$Control.html b/docs/jacoco-ut/bjc.everge/ControlledString$Control.html new file mode 100644 index 0000000..e93afa5 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ControlledString$Control.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ControlledString.Control</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.html" class="el_package">bjc.everge</a> > <span class="el_class">ControlledString.Control</span></div><h1>ControlledString.Control</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">18 of 18</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">9</td><td class="ctr2">9</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="ControlledString.java.html#L50" class="el_method">ControlledString.Control(String, String[])</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="ControlledString.java.html#L38" class="el_method">ControlledString.Control(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="ControlledString.java.html#L28" class="el_method">ControlledString.Control()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ControlledString.html b/docs/jacoco-ut/bjc.everge/ControlledString.html new file mode 100644 index 0000000..70da0b2 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ControlledString.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ControlledString</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.html" class="el_package">bjc.everge</a> > <span class="el_class">ControlledString</span></div><h1>ControlledString</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">159 of 159</td><td class="ctr2">0%</td><td class="bar">14 of 14</td><td class="ctr2">0%</td><td class="ctr1">12</td><td class="ctr2">12</td><td class="ctr1">35</td><td class="ctr2">35</td><td class="ctr1">5</td><td class="ctr2">5</td></tr></tfoot><tbody><tr><td id="a4"><a href="ControlledString.java.html#L133" class="el_method">parse(String, String, String, String, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="126" alt="126"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">7</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h0">23</td><td class="ctr2" id="i0">23</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="ControlledString.java.html#L79" class="el_method">ControlledString(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="10" alt="10"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="ControlledString.java.html#L93" class="el_method">ControlledString(String, ControlledString.Control[])</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="8" alt="8"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="ControlledString.java.html#L105" class="el_method">hasControls()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="8" alt="8"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="ControlledString.java.html#L69" class="el_method">ControlledString()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="7" alt="7"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ControlledString.java.html b/docs/jacoco-ut/bjc.everge/ControlledString.java.html new file mode 100644 index 0000000..2f928e8 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ControlledString.java.html @@ -0,0 +1,178 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ControlledString.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.source.html" class="el_package">bjc.everge</a> > <span class="el_source">ControlledString.java</span></div><h1>ControlledString.java</h1><pre class="source lang-java linenums">package bjc.everge; + +/** + * Represents a string with a set of control flags attached to it. + * + * @author Ben Culkin + */ +public class ControlledString { + /** + * Represents a single control (a key-values pair) + * + * @author Ben Culkin + */ + public static class Control { + /** + * The name of the control. + */ + public String name; + + /** + * The arguments to the control. + */ + public String[] args; + + /** + * Create a new blank control. + */ +<span class="nc" id="L28"> public Control() {</span> + +<span class="nc" id="L30"> }</span> + + /** + * Create a new argless control. + * + * @param nam + * The name of the control. + */ +<span class="nc" id="L38"> public Control(String nam) {</span> +<span class="nc" id="L39"> name = nam;</span> +<span class="nc" id="L40"> }</span> + + /** + * Create a new control. + * + * @param nam + * The name of the control. + * @param ars + * The arguments of the control. + */ +<span class="nc" id="L50"> public Control(String nam, String... ars) {</span> +<span class="nc" id="L51"> name = nam;</span> +<span class="nc" id="L52"> args = ars;</span> +<span class="nc" id="L53"> }</span> + } + + /** + * The string the controls apply to. + */ + public String strang; + + /** + * The controls that apply to the string. + */ + public Control[] controls; + + /** + * Create a new blank controlled string. + */ +<span class="nc" id="L69"> public ControlledString() {</span> +<span class="nc" id="L70"> controls = new Control[0];</span> +<span class="nc" id="L71"> }</span> + + /** + * Create a new controlled string without any controls. + * + * @param strung + * The string to use. + */ +<span class="nc" id="L79"> public ControlledString(String strung) {</span> +<span class="nc" id="L80"> strang = strung;</span> + +<span class="nc" id="L82"> controls = new Control[0];</span> +<span class="nc" id="L83"> }</span> + + /** + * Create a new controlled string. + * + * @param strung + * The string to use. + * @param controls + * The controls that apply to the string. + */ +<span class="nc" id="L93"> public ControlledString(String strung, Control... controls) {</span> +<span class="nc" id="L94"> strang = strung;</span> + +<span class="nc" id="L96"> controls = controls;</span> +<span class="nc" id="L97"> }</span> + + /** + * Check if the string has controls. + * + * @return Whether or not the string has controls. + */ + public boolean hasControls() { +<span class="nc bnc" id="L105" title="All 2 branches missed."> return controls.length > 0;</span> + } + + /** + * Parse a controlled string from a regular string. + * + * The controls must be parsed from the beginning of the string, and are indicated by occurances + * of contInd that bracket them from the string. The individual controls are delimited by + * instances of contSep, with arguments to them being separated by occurances of contArg. + * + * Each of those separators (which must be regular strings, not regexes or anything) may be + * escaped by preceeding them with a copy of contEsc. + * + * @param lne + * The string to parse frmo. + * @param contInd + * The indicator for whether or not there are controls. + * @param contSep + * The separator of individual controls. + * @param contArg + * The separator of control arguments. + * @param contEsc + * The escape string for each of the separators/indicators. + * + * @return A parsed control string. + */ + public static ControlledString parse(String lne, String contInd, String contSep, + String contArg, String contEsc) { +<span class="nc bnc" id="L133" title="All 2 branches missed."> if (!lne.startsWith(contInd)) {</span> +<span class="nc" id="L134"> return new ControlledString(lne);</span> + } + +<span class="nc" id="L137"> String tmp = lne.substring(2);</span> + +<span class="nc" id="L139"> String[] bits = StringUtils.escapeSplit(contEsc, contInd, lne);</span> + +<span class="nc bnc" id="L141" title="All 2 branches missed."> if (bits.length < 2) {</span> +<span class="nc" id="L142"> String msg = "Did not find control terminator (%s) where it should be";</span> +<span class="nc" id="L143"> msg = String.format(msg, contInd);</span> + +<span class="nc" id="L145"> throw new IllegalArgumentException(msg);</span> + } + +<span class="nc" id="L148"> ControlledString cs = new ControlledString(bits[0]);</span> + +<span class="nc" id="L150"> bits = StringUtils.escapeSplit(contEsc, contSep, bits[1]);</span> + +<span class="nc" id="L152"> cs.controls = new Control[bits.length];</span> + +<span class="nc bnc" id="L154" title="All 2 branches missed."> for (int i = 0; i < bits.length; i++) {</span> +<span class="nc" id="L155"> String bit = bits[i];</span> + +<span class="nc" id="L157"> String[] bots = StringUtils.escapeSplit(contEsc, contArg, bit);</span> + +<span class="nc" id="L159"> Control cont = new Control(bots[0]);</span> + +<span class="nc bnc" id="L161" title="All 2 branches missed."> if (cont.name.length() > 1) {</span> +<span class="nc" id="L162"> cont.name = cont.name.toUpperCase();</span> + } + +<span class="nc bnc" id="L165" title="All 2 branches missed."> if (bots.length > 1) {</span> +<span class="nc" id="L166"> cont.args = new String[bots.length - 1];</span> +<span class="nc bnc" id="L167" title="All 2 branches missed."> for (int j = 1; j < bots.length; j++) {</span> +<span class="nc" id="L168"> cont.args[j - 1] = bots[j];</span> + } + } + +<span class="nc" id="L172"> cs.controls[i] = cont;</span> + } + +<span class="nc" id="L175"> return cs;</span> + } +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/Everge$InputStatus.html b/docs/jacoco-ut/bjc.everge/Everge$InputStatus.html new file mode 100644 index 0000000..3595e45 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/Everge$InputStatus.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Everge.InputStatus</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.html" class="el_package">bjc.everge</a> > <span class="el_class">Everge.InputStatus</span></div><h1>Everge.InputStatus</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 34</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">1</td><td class="ctr1">0</td><td class="ctr2">4</td><td class="ctr1">0</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Everge.java.html#L37" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="34" alt="34"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/Everge.html b/docs/jacoco-ut/bjc.everge/Everge.html new file mode 100644 index 0000000..d9253fe --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/Everge.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Everge</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.html" class="el_package">bjc.everge</a> > <span class="el_class">Everge</span></div><h1>Everge</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">534 of 853</td><td class="ctr2">37%</td><td class="bar">54 of 83</td><td class="ctr2">34%</td><td class="ctr1">41</td><td class="ctr2">55</td><td class="ctr1">124</td><td class="ctr2">199</td><td class="ctr1">2</td><td class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a3"><a href="Everge.java.html#L125" class="el_method">processArgs(List, String[])</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="342" alt="342"/><img src="../jacoco-resources/greenbar.gif" width="29" height="10" title="112" alt="112"/></td><td class="ctr2" id="c4">24%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="88" height="10" title="33" alt="33"/><img src="../jacoco-resources/greenbar.gif" width="32" height="10" title="12" alt="12"/></td><td class="ctr2" id="e2">26%</td><td class="ctr1" id="f0">25</td><td class="ctr2" id="g0">29</td><td class="ctr1" id="h0">88</td><td class="ctr2" id="i0">116</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a5"><a href="Everge.java.html#L336" class="el_method">processInputFile(List, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="35" height="10" title="133" alt="133"/><img src="../jacoco-resources/greenbar.gif" width="10" height="10" title="40" alt="40"/></td><td class="ctr2" id="c5">23%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="11" alt="11"/><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="e4">21%</td><td class="ctr1" id="f1">7</td><td class="ctr2" id="g1">8</td><td class="ctr1" id="h1">22</td><td class="ctr2" id="i1">33</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a4"><a href="Everge.java.html#L103" class="el_method">processArgs(String[])</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="28" alt="28"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="4" alt="4"/></td><td class="ctr2" id="e5">0%</td><td class="ctr1" id="f2">3</td><td class="ctr2" id="g3">3</td><td class="ctr1" id="h2">7</td><td class="ctr2" id="i5">7</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="Everge.java.html#L314" class="el_method">processInputFile(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="15" alt="15"/><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="13" alt="13"/></td><td class="ctr2" id="c3">46%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="3" alt="3"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="1" alt="1"/></td><td class="ctr2" id="e3">25%</td><td class="ctr1" id="f3">2</td><td class="ctr2" id="g4">3</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i6">7</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="Everge.java.html#L90" class="el_method">main(String[])</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="9" alt="9"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i7">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a1"><a href="Everge.java.html#L415" class="el_method">loadQueue(String[])</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="7" alt="7"/><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="76" alt="76"/></td><td class="ctr2" id="c2">91%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="26" height="10" title="10" alt="10"/></td><td class="ctr2" id="e0">83%</td><td class="ctr1" id="f4">2</td><td class="ctr2" id="g2">7</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i2">13</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a0"><a href="Everge.java.html#L33" class="el_method">Everge()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="10" height="10" title="41" alt="41"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i3">11</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a7"><a href="Everge.java.html#L397" class="el_method">processString(String)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="37" alt="37"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="e1">75%</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g5">3</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i4">9</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/Everge.java.html b/docs/jacoco-ut/bjc.everge/Everge.java.html new file mode 100644 index 0000000..8416daa --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/Everge.java.html @@ -0,0 +1,436 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Everge.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.source.html" class="el_package">bjc.everge</a> > <span class="el_source">Everge.java</span></div><h1>Everge.java</h1><pre class="source lang-java linenums">package bjc.everge; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintStream; + +import java.nio.charset.Charset; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import java.util.ArrayList; +import java.util.Deque; +import java.util.LinkedList; +import java.util.List; +import java.util.Scanner; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReadWriteLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; + +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; + +/** + * Everge front-end application. + * + * @author Ben Culkin + */ +<span class="fc" id="L33">public class Everge {</span> + /** + * Details how we handle our input. + */ +<span class="fc" id="L37"> public static enum InputStatus {</span> + /** + * Process the input as a single string. + */ +<span class="fc" id="L41"> ALL,</span> + /** + * Process the input line-by-line. + */ +<span class="fc" id="L45"> LINE,</span> + /** + * Process the input, splitting it around occurances of a regex. + */ +<span class="fc" id="L49"> REGEX;</span> + } + + // Options for doing repl-pairs +<span class="fc" id="L53"> private ReplOpts ropts = new ReplOpts();</span> + + // Loaded repl-pairs +<span class="fc" id="L56"> private List<ReplPair> lrp = new ArrayList<>();</span> + + // Input status +<span class="fc" id="L59"> private InputStatus inputStat = InputStatus.ALL;</span> + + // Are we processing CLI args? (haven't seen a -- yet) +<span class="fc" id="L62"> private boolean doingArgs = true;</span> + + // Should an NL be printed after each replace? +<span class="fc" id="L65"> private boolean printNL = true;</span> + + // Verbosity level +<span class="fc" id="L68"> private int verbosity = 0;</span> + + // The pattern to use for REGEX input mode + private String pattern; + + // The queue of arguments to process +<span class="fc" id="L74"> private Deque<String> argQue = new LinkedList<>();</span> + + // Used to prevent inter-mixing argument alterations with input processing. +<span class="fc" id="L77"> private ReadWriteLock argLock = new ReentrantReadWriteLock();</span> + + // Input/output streams +<span class="fc" id="L80"> public PrintStream outStream = System.out;</span> +<span class="fc" id="L81"> public PrintStream errStream = System.err;</span> + + /** + * Main method for front end, + * + * @param args + * The CLI arguments. + */ + public static void main(String[] args) { +<span class="nc" id="L90"> Everge evg = new Everge();</span> + +<span class="nc" id="L92"> evg.processArgs(args);</span> +<span class="nc" id="L93"> }</span> + + /** + * Process one or more command line arguments. + * + * @param args + * The arguments to process. + * @return Whether we processed succesfully or not. + */ + public boolean processArgs(String... args) { +<span class="nc" id="L103"> List<String> errs = new ArrayList<>();</span> + +<span class="nc" id="L105"> boolean stat = processArgs(errs, args);</span> +<span class="nc bnc" id="L106" title="All 2 branches missed."> if (!stat) {</span> +<span class="nc bnc" id="L107" title="All 2 branches missed."> for (String err : errs) {</span> +<span class="nc" id="L108"> errStream.println(err);</span> +<span class="nc" id="L109"> }</span> + } + +<span class="nc" id="L112"> return stat;</span> + } + + /** + * Process one or more command line arguments. + * + * @param args + * The arguments to process. + * @param errs + * The list to stash errors in. + * @return Whether we processed succesfully or not. + */ + public boolean processArgs(List<String> errs, String... args) { +<span class="fc" id="L125"> argLock.writeLock().lock();</span> + +<span class="fc" id="L127"> boolean retStat = true;</span> + + try { +<span class="fc" id="L130"> loadQueue(args);</span> + + // Process CLI args +<span class="fc bfc" id="L133" title="All 2 branches covered."> while(argQue.size() > 0) {</span> +<span class="fc" id="L134"> String arg = argQue.pop();</span> + +<span class="pc bpc" id="L136" title="1 of 2 branches missed."> if (arg.equals("--")) {</span> +<span class="nc" id="L137"> doingArgs = false;</span> +<span class="nc" id="L138"> continue;</span> + } + + // Process an argument +<span class="pc bpc" id="L142" title="1 of 4 branches missed."> if (doingArgs && arg.startsWith("-")) {</span> +<span class="fc" id="L143"> String argName = arg;</span> +<span class="fc" id="L144"> String argBody = "";</span> + + // Process arguments to arguments +<span class="fc" id="L147"> int idx = arg.indexOf("=");</span> +<span class="pc bpc" id="L148" title="1 of 2 branches missed."> if (idx != -1) {</span> +<span class="nc" id="L149"> argName = arg.substring(0, idx);</span> +<span class="nc" id="L150"> argBody = arg.substring(idx + 1);</span> + } + +<span class="pc bpc" id="L153" title="11 of 13 branches missed."> switch (argName) {</span> + case "-n": + case "--newline": +<span class="nc" id="L156"> printNL = true;</span> +<span class="nc" id="L157"> break;</span> + case "-N": + case "--no-newline": +<span class="nc" id="L160"> printNL = false;</span> +<span class="nc" id="L161"> break;</span> + case "-v": + case "--verbose": +<span class="fc" id="L164"> verbosity += 1;</span> +<span class="fc" id="L165"> break;</span> + case "-q": + case "--quiet": +<span class="nc" id="L168"> verbosity -= 1;</span> +<span class="nc" id="L169"> break;</span> + case "--verbosity": +<span class="nc bnc" id="L171" title="All 2 branches missed."> if (argQue.size() < 1) {</span> +<span class="nc" id="L172"> errs.add("[ERROR] No parameter to --verbosity");</span> +<span class="nc" id="L173"> retStat = false;</span> +<span class="nc" id="L174"> break;</span> + } +<span class="nc" id="L176"> argBody = argQue.pop();</span> +<span class="nc" id="L177"> break;</span> + case "-V": + try { +<span class="nc" id="L180"> verbosity = Integer.parseInt(argBody);</span> +<span class="nc" id="L181"> } catch (NumberFormatException nfex) {</span> +<span class="nc" id="L182"> String msg = String.format("[ERROR] Invalid verbosity: '%s' is not an integer",</span> + argBody); +<span class="nc" id="L184"> errs.add(msg);</span> +<span class="nc" id="L185"> retStat = false;</span> +<span class="nc" id="L186"> }</span> +<span class="nc" id="L187"> break;</span> + case "--pattern": +<span class="nc bnc" id="L189" title="All 2 branches missed."> if (argQue.size() < 1) {</span> +<span class="nc" id="L190"> errs.add("[ERROR] No parameter to --pattern");</span> +<span class="nc" id="L191"> retStat = false;</span> +<span class="nc" id="L192"> break;</span> + } +<span class="nc" id="L194"> argBody = argQue.pop();</span> + case "-p": + try { +<span class="nc" id="L197"> pattern = argBody;</span> + +<span class="nc" id="L199"> Pattern.compile(argBody);</span> +<span class="nc" id="L200"> } catch (PatternSyntaxException psex) {</span> +<span class="nc" id="L201"> String msg = String.format("[ERROR] Pattern '%s' is invalid: %s",</span> +<span class="nc" id="L202"> pattern, psex.getMessage());</span> +<span class="nc" id="L203"> errs.add(msg);</span> +<span class="nc" id="L204"> retStat = false;</span> +<span class="nc" id="L205"> }</span> +<span class="nc" id="L206"> break;</span> + case "--file": +<span class="pc bpc" id="L208" title="1 of 2 branches missed."> if (argQue.size() < 1) {</span> +<span class="nc" id="L209"> errs.add("[ERROR] No argument to --file");</span> +<span class="nc" id="L210"> retStat = false;</span> +<span class="nc" id="L211"> break;</span> + } +<span class="fc" id="L213"> argBody = argQue.pop();</span> + case "-f": +<span class="fc" id="L215"> try (FileInputStream fis = new FileInputStream(argBody);</span> +<span class="fc" id="L216"> Scanner scn = new Scanner(fis)) {</span> +<span class="fc" id="L217"> List<ReplError> ferrs = new ArrayList<>();</span> + +<span class="fc" id="L219"> lrp = ReplPair.readList(lrp, scn, ferrs, ropts);</span> + +<span class="pc bpc" id="L221" title="1 of 2 branches missed."> if (ferrs.size() > 0) {</span> +<span class="nc" id="L222"> StringBuilder sb = new StringBuilder();</span> + +<span class="nc" id="L224"> String errString = "an error";</span> +<span class="nc bnc" id="L225" title="All 2 branches missed."> if (ferrs.size() > 1) errString = String.format("%d errors");</span> + + { +<span class="nc" id="L228"> String msg = String.format(</span> + "[ERROR] Encountered errors parsing data file'%s'\n", + argBody); +<span class="nc" id="L231"> sb.append(msg);</span> + } + +<span class="nc bnc" id="L234" title="All 2 branches missed."> for (ReplError err : ferrs) {</span> +<span class="nc" id="L235"> sb.append(String.format("\t%s\n", err));</span> +<span class="nc" id="L236"> }</span> + +<span class="nc" id="L238"> errs.add(sb.toString());</span> +<span class="nc" id="L239"> retStat = false;</span> + } +<span class="nc" id="L241"> } catch (FileNotFoundException fnfex) {</span> +<span class="nc" id="L242"> String msg = String.format("[ERROR] Could not open data file '%s' for input",</span> + argBody); +<span class="nc" id="L244"> errs.add(msg);</span> +<span class="nc" id="L245"> retStat = false;</span> +<span class="nc" id="L246"> } catch (IOException ioex) {</span> +<span class="nc" id="L247"> String msg = String.format("[ERROR] Unknown I/O error reading data file '%s': %s",</span> +<span class="nc" id="L248"> argBody, ioex.getMessage());</span> +<span class="nc" id="L249"> errs.add(msg);</span> +<span class="nc" id="L250"> retStat = false;</span> +<span class="pc" id="L251"> }</span> +<span class="nc" id="L252"> break;</span> + case "--arg-file": +<span class="nc bnc" id="L254" title="All 2 branches missed."> if (argQue.size() < 1) {</span> +<span class="nc" id="L255"> errs.add("[ERROR] No argument to --arg-file");</span> +<span class="nc" id="L256"> break;</span> + } +<span class="nc" id="L258"> argBody = argQue.pop();</span> + case "-F": +<span class="nc" id="L260"> try (FileInputStream fis = new FileInputStream(argBody);</span> +<span class="nc" id="L261"> Scanner scn = new Scanner(fis)) {</span> +<span class="nc" id="L262"> List<String> sl = new ArrayList<>();</span> + +<span class="nc bnc" id="L264" title="All 2 branches missed."> while (scn.hasNextLine()) {</span> +<span class="nc" id="L265"> String ln = scn.nextLine().trim();</span> + +<span class="nc bnc" id="L267" title="All 2 branches missed."> if (ln.equals("")) continue;</span> +<span class="nc bnc" id="L268" title="All 2 branches missed."> if (ln.startsWith("#")) continue;</span> + +<span class="nc" id="L270"> sl.add(ln);</span> +<span class="nc" id="L271"> }</span> + +<span class="nc" id="L273"> processArgs(sl.toArray(new String[0]));</span> +<span class="nc" id="L274"> } catch (FileNotFoundException fnfex) {</span> +<span class="nc" id="L275"> String msg = String.format("[ERROR] Could not open argument file '%s' for input", argBody);</span> +<span class="nc" id="L276"> errs.add(msg);</span> +<span class="nc" id="L277"> retStat = false;</span> +<span class="nc" id="L278"> } catch (IOException ioex) {</span> +<span class="nc" id="L279"> String msg = String.format("[ERROR] Unknown I/O error reading input file '%s': %s",</span> +<span class="nc" id="L280"> argBody, ioex.getMessage());</span> +<span class="nc" id="L281"> errs.add(msg);</span> +<span class="nc" id="L282"> retStat = false;</span> +<span class="nc" id="L283"> }</span> +<span class="nc" id="L284"> break;</span> + default: + { +<span class="nc" id="L287"> String msg = String.format("[ERROR] Unrecognised CLI argument name '%s'\n", argName);</span> +<span class="nc" id="L288"> errs.add(msg);</span> +<span class="nc" id="L289"> retStat = false;</span> + } + } +<span class="fc" id="L292"> } else {</span> + // Strip off an escaped initial dash +<span class="pc bpc" id="L294" title="1 of 2 branches missed."> if (arg.startsWith("\\-")) arg = arg.substring(1);</span> + +<span class="fc" id="L296"> processInputFile(arg);</span> + } +<span class="fc" id="L298"> }</span> + } finally { +<span class="fc" id="L300"> argLock.writeLock().unlock();</span> + } + +<span class="fc" id="L303"> return retStat;</span> + } + + /** + * Process a input file. + * + * @param fle + * Input file to process. + * @return Whether we processed succesfully or not. + */ + public boolean processInputFile(String fle) { +<span class="fc" id="L314"> List<String> errs = new ArrayList<>();</span> + +<span class="fc" id="L316"> boolean stat = processInputFile(errs, fle);</span> +<span class="pc bpc" id="L317" title="1 of 2 branches missed."> if (!stat) {</span> +<span class="nc bnc" id="L318" title="All 2 branches missed."> for (String err : errs) {</span> +<span class="nc" id="L319"> errStream.println(err);</span> +<span class="nc" id="L320"> }</span> + } + +<span class="fc" id="L323"> return stat;</span> + } + + /** + * Process a input file. + * + * @param fle + * Input file to process. + * @param errs + * List to accumulate errors in. + * @return Whether we processed succesfully or not. + */ + public boolean processInputFile(List<String> errs, String fle) { +<span class="fc" id="L336"> argLock.readLock().lock();</span> + + // Read in and do replacements on a file + try { +<span class="pc bpc" id="L340" title="1 of 2 branches missed."> if (verbosity > 2) {</span> +<span class="nc" id="L341"> errStream.printf("[TRACE] Reading file (%s) in mode (%s)\n", fle, inputStat);</span> + } + +<span class="pc bpc" id="L344" title="1 of 2 branches missed."> if (inputStat == InputStatus.ALL) {</span> +<span class="fc" id="L345"> Path pth = Paths.get(fle);</span> + +<span class="pc bpc" id="L347" title="1 of 2 branches missed."> if (!Files.isReadable(pth)) {</span> +<span class="nc" id="L348"> String msg = String.format("[ERROR] File '%s' is not readable\n", fle);</span> +<span class="nc" id="L349"> errs.add(msg);</span> +<span class="nc" id="L350"> return false;</span> + } else { +<span class="fc" id="L352"> byte[] inp = Files.readAllBytes(pth);</span> + +<span class="fc" id="L354"> String strang = new String(inp, Charset.forName("UTF-8"));</span> + +<span class="fc" id="L356"> processString(strang);</span> + } +<span class="pc bnc" id="L358" title="All 2 branches missed."> } else if (inputStat == InputStatus.LINE) {</span> +<span class="nc" id="L359"> try (FileInputStream fis = new FileInputStream(fle); Scanner scn = new Scanner(fis)) {</span> +<span class="nc bnc" id="L360" title="All 2 branches missed."> while(scn.hasNextLine()) {</span> +<span class="nc" id="L361"> processString(scn.nextLine());</span> + } +<span class="nc" id="L363"> }</span> +<span class="nc bnc" id="L364" title="All 2 branches missed."> } else if (inputStat == InputStatus.REGEX) {</span> +<span class="nc" id="L365"> try (FileInputStream fis = new FileInputStream(fle); Scanner scn = new Scanner(fis)) {</span> +<span class="nc" id="L366"> scn.useDelimiter(pattern);</span> + +<span class="nc bnc" id="L368" title="All 2 branches missed."> while(scn.hasNext()) {</span> +<span class="nc" id="L369"> processString(scn.next());</span> + } +<span class="nc" id="L371"> }</span> + } else { +<span class="nc" id="L373"> String msg = String.format("[INTERNAL-ERROR] Input status '%s' is not yet implemented\n",</span> + inputStat); +<span class="nc" id="L375"> errs.add(msg);</span> +<span class="nc" id="L376"> return false;</span> + } +<span class="nc" id="L378"> } catch (IOException ioex) {</span> +<span class="nc" id="L379"> String msg = String.format("[ERROR] Unknown I/O related error for file '%s'\n\tError was %s",</span> +<span class="nc" id="L380"> fle, ioex.getMessage());</span> +<span class="nc" id="L381"> errs.add(msg);</span> +<span class="nc" id="L382"> return false;</span> + } finally { +<span class="fc" id="L384"> argLock.readLock().unlock();</span> + } + +<span class="fc" id="L387"> return true;</span> + } + + /** + * Process an input string. + * + * @param inp + * The input string to process. + */ + public void processString(String inp) { +<span class="fc" id="L397"> argLock.readLock().lock();</span> + + try { +<span class="fc" id="L400"> String strang = inp;</span> + +<span class="fc bfc" id="L402" title="All 2 branches covered."> for (ReplPair rp : lrp) {</span> +<span class="fc" id="L403"> strang = rp.apply(strang);</span> +<span class="fc" id="L404"> }</span> + +<span class="fc" id="L406"> outStream.print(strang);</span> +<span class="pc bpc" id="L407" title="1 of 2 branches missed."> if (printNL) outStream.println();</span> + } finally { +<span class="fc" id="L409"> argLock.readLock().unlock();</span> + } +<span class="fc" id="L411"> }</span> + + // Load arguments into the argument queue. + private void loadQueue(String... args) { +<span class="fc" id="L415"> boolean doArgs = true;</span> +<span class="fc bfc" id="L416" title="All 2 branches covered."> for (String arg : args) {</span> +<span class="pc bpc" id="L417" title="1 of 2 branches missed."> if (arg.equals("--")) doArgs = false;</span> + + // Handle things like -nNv correctly +<span class="pc bpc" id="L420" title="1 of 2 branches missed."> if (doArgs) {</span> +<span class="fc bfc" id="L421" title="All 4 branches covered."> if (arg.startsWith("-") && !arg.startsWith("--")) {</span> +<span class="fc" id="L422"> char[] car = arg.substring(1).toCharArray();</span> +<span class="fc bfc" id="L423" title="All 2 branches covered."> for (char c : car) {</span> +<span class="fc" id="L424"> String argstr = String.format("-%c", c);</span> +<span class="fc" id="L425"> argQue.add(argstr);</span> + } +<span class="fc" id="L427"> } else {</span> +<span class="fc" id="L428"> argQue.add(arg);</span> + } + } else { +<span class="nc" id="L431"> argQue.add(arg);</span> + } + } +<span class="fc" id="L434"> }</span> +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/IntHolder.html b/docs/jacoco-ut/bjc.everge/IntHolder.html new file mode 100644 index 0000000..7ef6a96 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/IntHolder.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>IntHolder</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.html" class="el_package">bjc.everge</a> > <span class="el_class">IntHolder</span></div><h1>IntHolder</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">10 of 32</td><td class="ctr2">68%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">6</td><td class="ctr1">5</td><td class="ctr2">12</td><td class="ctr1">2</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a4"><a href="IntHolder.java.html#L27" class="el_method">IntHolder(int)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="6" alt="6"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a5"><a href="IntHolder.java.html#L64" class="el_method">set(int)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="4" alt="4"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="IntHolder.java.html#L49" class="el_method">incr(int)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="IntHolder.java.html#L17" class="el_method">IntHolder()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="80" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a1"><a href="IntHolder.java.html#L37" class="el_method">incr()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="53" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a0"><a href="IntHolder.java.html#L60" class="el_method">get()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="3" alt="3"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/IntHolder.java.html b/docs/jacoco-ut/bjc.everge/IntHolder.java.html new file mode 100644 index 0000000..746a71a --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/IntHolder.java.html @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>IntHolder.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.source.html" class="el_package">bjc.everge</a> > <span class="el_source">IntHolder.java</span></div><h1>IntHolder.java</h1><pre class="source lang-java linenums">package bjc.everge; + +/** + * Utility class for ints by ref. + * + * @author Ben Culkin + */ +public class IntHolder { + /** + * The int value. + */ + public int val; + + /** + * Create a new int-holder set to 0. + */ +<span class="fc" id="L17"> public IntHolder() {</span> +<span class="fc" id="L18"> val = 0;</span> +<span class="fc" id="L19"> }</span> + + /** + * Create a new int-holder set to a value. + * + * @param i + * The value to set the int to. + */ +<span class="nc" id="L27"> public IntHolder(int i) {</span> +<span class="nc" id="L28"> val = i;</span> +<span class="nc" id="L29"> }</span> + + /** + * Increment the value by one, and return it. + * + * @return The value of the holder. + */ + public int incr() { +<span class="fc" id="L37"> return incr(1);</span> + } + + /** + * Increment the value by an amount and return it. + * + * @param i + * The amount to increment by. + * + * @return The value of the holder. + */ + public int incr(int i) { +<span class="fc" id="L49"> val += 1;</span> + +<span class="fc" id="L51"> return val;</span> + } + + /** + * Get the value. + * + * @return The value. + */ + public int get() { +<span class="fc" id="L60"> return val;</span> + } + + public void set(int i) { +<span class="nc" id="L64"> val = i;</span> +<span class="nc" id="L65"> }</span> +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplError.html b/docs/jacoco-ut/bjc.everge/ReplError.html new file mode 100644 index 0000000..7b798b3 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ReplError.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ReplError</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.html" class="el_package">bjc.everge</a> > <span class="el_class">ReplError</span></div><h1>ReplError</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 132</td><td class="ctr2">45%</td><td class="bar">7 of 8</td><td class="ctr2">12%</td><td class="ctr1">6</td><td class="ctr2">9</td><td class="ctr1">7</td><td class="ctr2">18</td><td class="ctr1">2</td><td class="ctr2">5</td></tr></tfoot><tbody><tr><td id="a4"><a href="ReplError.java.html#L66" class="el_method">toString()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="111" height="10" title="50" alt="50"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="ReplError.java.html#L79" class="el_method">toPrintString(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="18" alt="18"/><img src="../jacoco-resources/greenbar.gif" width="80" height="10" title="36" alt="36"/></td><td class="ctr2" id="c2">66%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="3" alt="3"/><img src="../jacoco-resources/greenbar.gif" width="30" height="10" title="1" alt="1"/></td><td class="ctr2" id="e0">25%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="ReplError.java.html#L74" class="el_method">toPrintString()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="4" alt="4"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="ReplError.java.html#L55" class="el_method">ReplError(int, int, String, String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="33" height="10" title="15" alt="15"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i0">6</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a1"><a href="ReplError.java.html#L40" class="el_method">ReplError(IntHolder, IntHolder, String, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="9" alt="9"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplError.java.html b/docs/jacoco-ut/bjc.everge/ReplError.java.html new file mode 100644 index 0000000..e2d44dc --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ReplError.java.html @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ReplError.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.source.html" class="el_package">bjc.everge</a> > <span class="el_source">ReplError.java</span></div><h1>ReplError.java</h1><pre class="source lang-java linenums">package bjc.everge; + +/** + * Represents an error encountered parsing ReplPairs + * + * @author Ben Culkin + */ +public class ReplError { + /** + * The line the error occured on. + */ + public int line; + /** + * The number of pairs we have processed so far. + */ + public int numPairs; + + /** + * The text of the line we errored on. + */ + public String txt; + /** + * The message of the error. + */ + public String msg; + + /** + * Create a new ReplPair parse error. + * + * @param lne + * The line the error occured on. + * @param nPairs + * The number of pairs processed up to this point. + * @param msg + * The message detailing the error. + * @param txt + * The text that caused the error. + */ + public ReplError(IntHolder lne, IntHolder nPairs, String msg, String txt) { +<span class="fc" id="L40"> this(lne.get(), nPairs.get(), msg, txt);</span> +<span class="fc" id="L41"> }</span> + + /** + * Create a new ReplPair parse error. + * + * @param lne + * The line the error occured on. + * @param nPairs + * The number of pairs processed up to this point. + * @param msg + * The message detailing the error. + * @param txt + * The text that caused the error. + */ +<span class="fc" id="L55"> public ReplError(int lne, int nPairs, String msg, String txt) {</span> +<span class="fc" id="L56"> line = lne;</span> +<span class="fc" id="L57"> numPairs = nPairs;</span> + +<span class="fc" id="L59"> this.txt = txt;</span> +<span class="fc" id="L60"> this.msg = msg;</span> +<span class="fc" id="L61"> }</span> + + @Override + public String toString() { + String errString; +<span class="nc bnc" id="L66" title="All 2 branches missed."> if (txt == null) errString = "No associated line";</span> +<span class="nc bnc" id="L67" title="All 2 branches missed."> else if (txt.equals("")) errString = "Text of line was empty";</span> +<span class="nc" id="L68"> else errString = "Text of line was: " + txt;</span> + +<span class="nc" id="L70"> return String.format("line %d, pair %d:%s\n\t%s", line, numPairs, msg, errString);</span> + } + + public String toPrintString() { +<span class="nc" id="L74"> return toPrintString("");</span> + } + + public String toPrintString(String hdr) { + String errString; +<span class="pc bpc" id="L79" title="1 of 2 branches missed."> if (txt == null) errString = "No associated line";</span> +<span class="nc bnc" id="L80" title="All 2 branches missed."> else if (txt.equals("")) errString = "Text of line was empty";</span> +<span class="nc" id="L81"> else errString = "Text of line was: " + txt;</span> + +<span class="fc" id="L83"> return String.format("[ERROR] line %d, pair %d: %s\n%s\tContext: %s",</span> +<span class="fc" id="L84"> line, numPairs, msg, hdr, errString);</span> + } +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplOpts.html b/docs/jacoco-ut/bjc.everge/ReplOpts.html new file mode 100644 index 0000000..ff2c6e2 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ReplOpts.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ReplOpts</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.html" class="el_package">bjc.everge</a> > <span class="el_class">ReplOpts</span></div><h1>ReplOpts</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">66 of 96</td><td class="ctr2">31%</td><td class="bar">18 of 18</td><td class="ctr2">0%</td><td class="ctr1">10</td><td class="ctr2">11</td><td class="ctr1">11</td><td class="ctr2">21</td><td class="ctr1">1</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="ReplOpts.java.html#L51" class="el_method">equals(Object)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="66" alt="66"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="18" alt="18"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">10</td><td class="ctr2" id="g0">10</td><td class="ctr1" id="h0">11</td><td class="ctr2" id="i0">11</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="ReplOpts.java.html#L10" class="el_method">ReplOpts()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="54" height="10" title="30" alt="30"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">10</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplOpts.java.html b/docs/jacoco-ut/bjc.everge/ReplOpts.java.html new file mode 100644 index 0000000..1194cd3 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ReplOpts.java.html @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ReplOpts.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.source.html" class="el_package">bjc.everge</a> > <span class="el_source">ReplOpts.java</span></div><h1>ReplOpts.java</h1><pre class="source lang-java linenums">package bjc.everge; + +import java.io.PrintStream; + +/** + * Options for processing ReplPairs. + * + * @author Ben Culkin. + */ +<span class="fc" id="L10">public class ReplOpts {</span> + /** + * The default priority. + */ +<span class="fc" id="L14"> public int defPrior = 0;</span> + + /** + * The default stage. + */ +<span class="fc" id="L19"> public int defStage = 0;</span> + + /** + * Whether to process multi-line defns. + */ +<span class="fc" id="L24"> public boolean defMulti = false;</span> + + /** + * Default status. + */ +<span class="fc" id="L29"> public StageStatus defStatus = StageStatus.BOTH;</span> + + /** + * Enable debug info. + */ +<span class="fc" id="L34"> public boolean isDebug = true;</span> + + /** + * Enable trace info. + */ +<span class="fc" id="L39"> public boolean isTrace = false;</span> + + /** + * Enable performance info. + */ +<span class="fc" id="L44"> public boolean isPerf = false;</span> + +<span class="fc" id="L46"> public PrintStream outStream = System.out;</span> +<span class="fc" id="L47"> public PrintStream errStream = System.err;</span> + + @Override + public boolean equals(Object o) { +<span class="nc bnc" id="L51" title="All 2 branches missed."> if (o == null) return false;</span> + +<span class="nc bnc" id="L53" title="All 2 branches missed."> if (!getClass().equals(o.getClass())) return false;</span> + +<span class="nc" id="L55"> ReplOpts ro = (ReplOpts)o;</span> + +<span class="nc bnc" id="L57" title="All 2 branches missed."> if (isPerf != ro.isPerf) return false;</span> + +<span class="nc bnc" id="L59" title="All 2 branches missed."> if (isDebug != ro.isDebug) return false;</span> +<span class="nc bnc" id="L60" title="All 2 branches missed."> if (isTrace != ro.isTrace) return false;</span> + +<span class="nc bnc" id="L62" title="All 2 branches missed."> if (defPrior != ro.defPrior) return false;</span> +<span class="nc bnc" id="L63" title="All 2 branches missed."> if (defStage != ro.defStage) return false;</span> +<span class="nc bnc" id="L64" title="All 2 branches missed."> if (defMulti != ro.defMulti) return false;</span> + +<span class="nc bnc" id="L66" title="All 2 branches missed."> if (defStatus != ro.defStatus) return false;</span> + +<span class="nc" id="L68"> return true;</span> + } +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplPair.html b/docs/jacoco-ut/bjc.everge/ReplPair.html new file mode 100644 index 0000000..f4c8951 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ReplPair.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ReplPair</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.html" class="el_package">bjc.everge</a> > <span class="el_class">ReplPair</span></div><h1>ReplPair</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">800 of 1,622</td><td class="ctr2">50%</td><td class="bar">87 of 186</td><td class="ctr2">53%</td><td class="ctr1">73</td><td class="ctr2">123</td><td class="ctr1">138</td><td class="ctr2">336</td><td class="ctr1">2</td><td class="ctr2">17</td></tr></tfoot><tbody><tr><td id="a7"><a href="ReplPair.java.html#L187" class="el_method">readList(List, Scanner, List, ReplOpts)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="282" alt="282"/><img src="../jacoco-resources/greenbar.gif" width="68" height="10" title="370" alt="370"/></td><td class="ctr2" id="c12">56%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="45" height="10" title="31" alt="31"/><img src="../jacoco-resources/greenbar.gif" width="74" height="10" title="51" alt="51"/></td><td class="ctr2" id="e2">62%</td><td class="ctr1" id="f0">25</td><td class="ctr2" id="g0">43</td><td class="ctr1" id="h1">36</td><td class="ctr2" id="i0">125</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a4"><a href="ReplPair.java.html#L623" class="el_method">readGlobal(String, Scanner, List, ReplOpts, IntHolder, IntHolder)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="186" alt="186"/><img src="../jacoco-resources/greenbar.gif" width="16" height="10" title="91" alt="91"/></td><td class="ctr2" id="c14">32%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="18" alt="18"/><img src="../jacoco-resources/greenbar.gif" width="17" height="10" title="12" alt="12"/></td><td class="ctr2" id="e7">40%</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">24</td><td class="ctr1" id="h0">43</td><td class="ctr2" id="i1">69</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="ReplPair.java.html#L767" class="el_method">getControls(String, List, ReplOpts, IntHolder, IntHolder, String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="135" alt="135"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="12" alt="12"/></td><td class="ctr2" id="e8">0%</td><td class="ctr1" id="f3">7</td><td class="ctr2" id="g4">7</td><td class="ctr1" id="h3">25</td><td class="ctr2" id="i3">25</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a10"><a href="ReplPair.java.html#L503" class="el_method">readName(String, Scanner, List, ReplPair, ReplOpts, IntHolder, IntHolder)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="131" alt="131"/><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="110" alt="110"/></td><td class="ctr2" id="c13">45%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="11" alt="11"/><img src="../jacoco-resources/greenbar.gif" width="19" height="10" title="13" alt="13"/></td><td class="ctr2" id="e4">54%</td><td class="ctr1" id="f2">10</td><td class="ctr2" id="g2">17</td><td class="ctr1" id="h2">30</td><td class="ctr2" id="i2">60</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a9"><a href="ReplPair.java.html#L426" class="el_method">readMultiLine(String, Scanner, ReplOpts, List, String, IntHolder)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="37" alt="37"/><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="84" alt="84"/></td><td class="ctr2" id="c11">69%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="17" height="10" title="12" alt="12"/></td><td class="ctr2" id="e3">60%</td><td class="ctr1" id="f4">6</td><td class="ctr2" id="g3">11</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">20</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a2"><a href="ReplPair.java.html#L485" class="el_method">equals(Object)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="12" alt="12"/><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="36" alt="36"/></td><td class="ctr2" id="c10">75%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">50%</td><td class="ctr1" id="f5">6</td><td class="ctr2" id="g5">7</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i5">8</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a16"><a href="ReplPair.java.html#L469" class="el_method">toString()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="10" alt="10"/><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="33" alt="33"/></td><td class="ctr2" id="c9">76%</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="1" alt="1"/></td><td class="ctr2" id="e6">50%</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">2</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i8">3</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a15"><a href="ReplPair.java.html#L78" class="el_method">ReplPair(String, String, String)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="7" alt="7"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a5"><a href="ReplPair.java.html#L142" class="el_method">readList(List, Scanner)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="20" alt="20"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d7"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g7">2</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i7">5</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a14"><a href="ReplPair.java.html#L24" class="el_method">ReplPair(String, String, int, String)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="18" alt="18"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">0</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i6">7</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a1"><a href="ReplPair.java.html#L478" class="el_method">compareTo(ReplPair)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="17" alt="17"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d8"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">100%</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g8">2</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a8"><a href="ReplPair.java.html#L125" class="el_method">readList(Scanner)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="8" alt="8"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a6"><a href="ReplPair.java.html#L167" class="el_method">readList(List, Scanner, List)</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="8" alt="8"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">0</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">0</td><td class="ctr2" id="i15">1</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a11"><a href="ReplPair.java.html#L52" class="el_method">ReplPair()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="7" alt="7"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a13"><a href="ReplPair.java.html#L92" class="el_method">ReplPair(String, String, int)</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="7" alt="7"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a0"><a href="ReplPair.java.html#L464" class="el_method">apply(String)</a></td><td class="bar" id="b15"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="7" alt="7"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">0</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">0</td><td class="ctr2" id="i16">1</td><td class="ctr1" id="j15">0</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a12"><a href="ReplPair.java.html#L64" class="el_method">ReplPair(String, String)</a></td><td class="bar" id="b16"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="6" alt="6"/></td><td class="ctr2" id="c8">100%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">0</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">0</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j16">0</td><td class="ctr2" id="k16">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplPair.java.html b/docs/jacoco-ut/bjc.everge/ReplPair.java.html new file mode 100644 index 0000000..7cfa2b5 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ReplPair.java.html @@ -0,0 +1,815 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ReplPair.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.source.html" class="el_package">bjc.everge</a> > <span class="el_source">ReplPair.java</span></div><h1>ReplPair.java</h1><pre class="source lang-java linenums">package bjc.everge; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +import java.util.function.UnaryOperator; + +import bjc.everge.ControlledString.Control; + +/** + * String pairs for replacements. + * + * @author Ben Culkin + */ +public class ReplPair implements Comparable<ReplPair>, UnaryOperator<String> { + // Line number we read this pair from + private int lno; + + // Stage this pair is in + private int stage; + + // Status of this pair with regards to doing staging stuff +<span class="fc" id="L24"> private StageStatus stat = StageStatus.BOTH;</span> + + /** + * The priority for this replacement. + */ + public int priority; + + /** + * The name of this replacement. + * + * Defaults to the 'find' string. + */ + public String name; + + /** + * The string to look for. + */ + public String find; + + /** + * The string to replace it with. + */ + public String replace; + + /** + * Create a new blank replacement pair. + */ + public ReplPair() { +<span class="fc" id="L52"> this("", "", 1, null);</span> +<span class="fc" id="L53"> }</span> + + /** + * Create a new replacement pair with a priority of 1. + * + * @param f + * The string to find. + * @param r + * The string to replace. + */ + public ReplPair(String f, String r) { +<span class="fc" id="L64"> this(f, r, 1);</span> +<span class="fc" id="L65"> }</span> + + /** + * Create a new named replacement pair with a priority of 1. + * + * @param f + * The string to find. + * @param r + * The string to replace. + * @param n + * The name of the replacement pair. + */ + public ReplPair(String f, String r, String n) { +<span class="nc" id="L78"> this(f, r, 1, n);</span> +<span class="nc" id="L79"> }</span> + + /** + * Create a new replacement pair with a set priority. + * + * @param f + * The string to find. + * @param r + * The string to replace. + * @param p + * The priority for the replacement. + */ + public ReplPair(String f, String r, int p) { +<span class="fc" id="L92"> this(f, r, p, f);</span> +<span class="fc" id="L93"> }</span> + + /** + * Create a new replacement pair with a set priority and name. + * + * @param f + * The string to find. + * @param r + * The string to replace. + * @param n + * The name of the replacement pair. + * @param p + * The priority for the replacement. + */ +<span class="fc" id="L107"> public ReplPair(String f, String r, int p, String n) {</span> +<span class="fc" id="L108"> find = f;</span> +<span class="fc" id="L109"> replace = r;</span> + +<span class="fc" id="L111"> name = n;</span> + +<span class="fc" id="L113"> priority = p;</span> +<span class="fc" id="L114"> }</span> + + /** + * Read a list of replacement pairs from an input source. + * + * @param scn + * The source to read the replacements from. + * @return + * The list of replacements. + */ + public static List<ReplPair> readList(Scanner scn) { +<span class="fc" id="L125"> List<ReplPair> lst = new ArrayList<>();</span> + +<span class="fc" id="L127"> return readList(lst, scn);</span> + } + + /** + * Read a list of replacement pairs from an input source, adding them to + * an existing list. + * + * @param detals + * The list to add the replacements to. + * @param scn + * The source to read the replacements from. + * @return + * The list of replacements. + */ + public static List<ReplPair> readList(List<ReplPair> detals, Scanner scn) { +<span class="fc" id="L142"> List<ReplError> errList = new ArrayList<>();</span> + +<span class="fc" id="L144"> List<ReplPair> rplPar = readList(detals, scn, errList);</span> + +<span class="fc bfc" id="L146" title="All 2 branches covered."> if (errList.size() != 0) {</span> +<span class="fc" id="L147"> throw new ReplParseException("", errList);</span> + } + +<span class="fc" id="L150"> return rplPar;</span> + } + + /** + * Read a list of replacement pairs from an input source, adding them to + * an existing list. + * + * @param detals + * The list to add the replacements to. + * @param scn + * The source to read the replacements from. + * @param errs + * The list to stick errors in. + * @return + * The list of replacements. + */ + public static List<ReplPair> readList(List<ReplPair> detals, Scanner scn, List<ReplError> errs) { +<span class="fc" id="L167"> return readList(detals, scn, errs, new ReplOpts());</span> + } + + /** + * Read a list of replacement pairs from an input source, adding them to + * an existing list. + * + * @param detals + * The list to add the replacements to. + * @param scn + * The source to read the replacements from. + * @param errs + * The list to stick errors in. + * @param ropts + * The options to use when reading the pairs. + * @return + * The list of replacements. + */ + public static List<ReplPair> readList(List<ReplPair> detals, Scanner scn, + List<ReplError> errs, ReplOpts ropts) { +<span class="fc" id="L187"> IntHolder lno = new IntHolder();</span> +<span class="fc" id="L188"> IntHolder pno = new IntHolder();</span> + +<span class="fc" id="L190"> List<List<ReplPair>> stages = new ArrayList<>();</span> +<span class="fc" id="L191"> stages.add(new ArrayList<ReplPair>());</span> + + // For every line in the source... +<span class="fc bfc" id="L194" title="All 2 branches covered."> while (scn.hasNextLine()) {</span> +<span class="fc" id="L195"> String name = scn.nextLine().trim();</span> +<span class="fc" id="L196"> lno.incr();</span> + + // If its commented or blank, skip it +<span class="fc bfc" id="L199" title="All 2 branches covered."> if (name.equals("")) continue;</span> +<span class="fc bfc" id="L200" title="All 2 branches covered."> if (name.startsWith("#")) continue;</span> + + // Global control. Process it. +<span class="fc bfc" id="L203" title="All 2 branches covered."> if (name.startsWith("|//")) {</span> +<span class="fc" id="L204"> readGlobal(name, scn, errs, ropts, lno, pno);</span> + +<span class="fc" id="L206"> continue;</span> + } + +<span class="fc" id="L209"> ReplPair rp = new ReplPair();</span> + +<span class="fc" id="L211"> rp.priority = ropts.defPrior;</span> +<span class="fc" id="L212"> rp.stat = ropts.defStatus;</span> +<span class="fc" id="L213"> rp.lno = lno.get();</span> +<span class="fc" id="L214"> rp.stage = ropts.defStage;</span> + +<span class="fc" id="L216"> boolean isMulti = ropts.defMulti;</span> + + { +<span class="fc" id="L219"> String tmpName = readName(name, scn, errs, rp, ropts, lno, pno);</span> +<span class="pc bpc" id="L220" title="1 of 2 branches missed."> if (tmpName == null) continue;</span> +<span class="fc" id="L221"> name = tmpName;</span> + } + +<span class="fc" id="L224"> rp.find = name;</span> +<span class="pc bpc" id="L225" title="1 of 2 branches missed."> if (rp.name == null) rp.name = name;</span> + + // We started to process the pair, mark it as being + // started +<span class="fc" id="L229"> pno.incr();</span> +<span class="fc" id="L230"> String body = null;</span> + + // Read in the next uncommented line + do { +<span class="fc bfc" id="L234" title="All 2 branches covered."> if (!scn.hasNextLine()) break; </span> + +<span class="fc" id="L236"> body = scn.nextLine().trim();</span> +<span class="fc" id="L237"> lno.incr();</span> +<span class="pc bpc" id="L238" title="1 of 2 branches missed."> } while (body.startsWith("#"));</span> + +<span class="fc bfc" id="L240" title="All 2 branches covered."> if (body == null) {</span> +<span class="fc" id="L241"> String msg = </span> + "Ran out of input looking for replacement body for raw name '" + name + "'"; + +<span class="fc" id="L244"> errs.add(new ReplError(lno, pno, msg, null));</span> +<span class="fc" id="L245"> break;</span> + } + +<span class="fc" id="L248"> isMulti = ropts.defMulti;</span> + + // Body has attached controls, process them. +<span class="pc bpc" id="L251" title="1 of 2 branches missed."> if (body.startsWith("//")) {</span> +<span class="nc" id="L252"> body = body.substring(2);</span> + +<span class="nc" id="L254"> String[] bodyBits = StringUtils.escapeSplit("|", "//", body);</span> +<span class="nc bnc" id="L255" title="All 2 branches missed."> if (bodyBits.length < 2) {</span> +<span class="nc" id="L256"> String msg = "Did not find control terminator (//) in body where it should be";</span> + +<span class="nc" id="L258"> errs.add(new ReplError(lno, pno, msg, body));</span> +<span class="nc" id="L259"> continue;</span> + } + +<span class="nc" id="L262"> String contBody = bodyBits[0];</span> +<span class="nc" id="L263"> String actBody = bodyBits[1];</span> + + // Split out each control +<span class="nc" id="L266"> String[] bits = StringUtils.escapeSplit("|", ";", actBody);</span> + +<span class="nc bnc" id="L268" title="All 2 branches missed."> for (String bit : bits) {</span> +<span class="nc" id="L269"> String bitHead = bit.toUpperCase();</span> +<span class="nc" id="L270"> String bitBody = bit;</span> + +<span class="nc" id="L272"> String[] bots = StringUtils.escapeSplit("|", "/", bit);</span> +<span class="nc bnc" id="L273" title="All 2 branches missed."> if (bots.length > 1) {</span> +<span class="nc" id="L274"> bitHead = bots[0].toUpperCase();</span> +<span class="nc" id="L275"> bitBody = bots[1];</span> + } + +<span class="nc bnc" id="L278" title="All 4 branches missed."> switch (bitHead) {</span> + case "MULTITRUE": + case "MULTIT": + case "MT": +<span class="nc" id="L282"> isMulti = true;</span> +<span class="nc" id="L283"> break;</span> + case "MULTIFALSE": + case "MULTIF": + case "MF": +<span class="nc" id="L287"> isMulti = false;</span> +<span class="nc" id="L288"> break;</span> + case "MULTI": + case "M": +<span class="nc" id="L291"> isMulti = Boolean.parseBoolean(bitBody);</span> +<span class="nc" id="L292"> break;</span> + default: +<span class="nc" id="L294"> errs.add(new ReplError(lno, pno, String.format("Invalid control name '%s'", bitHead), body));</span> + break; + } + } + +<span class="nc" id="L299"> body = actBody;</span> + } + +<span class="fc bfc" id="L302" title="All 2 branches covered."> if (isMulti) {</span> +<span class="fc" id="L303"> String tmp = readMultiLine(body, scn, ropts, errs, "body", lno);</span> +<span class="pc bpc" id="L304" title="1 of 2 branches missed."> if (tmp == null) continue;</span> +<span class="fc" id="L305"> body = tmp;</span> + } + +<span class="fc" id="L308"> rp.replace = body;</span> + +<span class="fc" id="L310"> List<ReplPair> stageList = null;</span> +<span class="pc bpc" id="L311" title="1 of 4 branches missed."> if (rp.stage == 0 || stages.size() < (rp.stage - 1)) {</span> +<span class="fc" id="L312"> stageList = stages.get(rp.stage);</span> + +<span class="pc bpc" id="L314" title="1 of 2 branches missed."> if (stageList == null) {</span> +<span class="nc" id="L315"> stageList = new ArrayList<>();</span> + +<span class="nc" id="L317"> stages.add(rp.stage, stageList);</span> + } + } else { +<span class="fc bfc" id="L320" title="All 2 branches covered."> for (int i = stages.size(); i <= rp.stage; i++) {</span> +<span class="fc" id="L321"> stages.add(new ArrayList<>());</span> + } + +<span class="fc" id="L324"> stageList = stages.get(rp.stage);</span> + } + +<span class="pc bpc" id="L327" title="1 of 2 branches missed."> if (ropts.isTrace) {</span> +<span class="nc" id="L328"> ropts.errStream.printf("\t[DEBUG] Stage %d: Added %s\n\t\tContents: %s\n",</span> +<span class="nc" id="L329"> rp.stage, rp, stageList);</span> + } + +<span class="fc" id="L332"> stageList.add(rp);</span> +<span class="fc" id="L333"> }</span> + + // Special-case one-stage processing. +<span class="fc bfc" id="L336" title="All 2 branches covered."> if (stages.size() == 1) {</span> +<span class="pc bpc" id="L337" title="1 of 2 branches missed."> if (ropts.isTrace) ropts.errStream.printf("\t[DEBUG] Executing single-stage bypass\n");</span> + +<span class="fc bfc" id="L339" title="All 2 branches covered."> for (ReplPair rp : stages.iterator().next()) {</span> +<span class="pc bpc" id="L340" title="1 of 2 branches missed."> if (rp.stat == StageStatus.INTERNAL) {</span> +<span class="nc bnc" id="L341" title="All 2 branches missed."> if (ropts.isTrace) ropts.errStream.printf("\t[DEBUG] Excluding internal RP %s\n", rp);</span> + + continue; + } + +<span class="fc" id="L346"> detals.add(rp);</span> +<span class="fc" id="L347"> }</span> + +<span class="fc" id="L349"> detals.sort(null);</span> + +<span class="fc" id="L351"> return detals;</span> + } + + // Handle stages +<span class="fc" id="L355"> List<ReplPair> tmpList = new ArrayList<>();</span> +<span class="fc" id="L356"> tmpList.addAll(detals);</span> + +<span class="pc bpc" id="L358" title="1 of 2 branches missed."> if (ropts.isTrace) ropts.errStream.printf("\t[DEBUG] Stages: %s\n", stages);</span> + +<span class="fc" id="L360"> int procStg = 0;</span> +<span class="fc bfc" id="L361" title="All 2 branches covered."> for (List<ReplPair> stageList : stages) {</span> +<span class="fc" id="L362"> procStg += 1;</span> +<span class="fc" id="L363"> List<ReplPair> curStage = new ArrayList<>();</span> + +<span class="pc bpc" id="L365" title="1 of 2 branches missed."> if (ropts.isTrace) ropts.errStream.printf("\t[DEBUG] Staging stage %d of %d: %s\n",</span> +<span class="nc" id="L366"> procStg, stageList.size(), stageList);</span> + +<span class="fc bfc" id="L368" title="All 2 branches covered."> for (ReplPair rp : stageList) {</span> + // Process through every pair in the previous + // stages +<span class="fc bfc" id="L371" title="All 2 branches covered."> for (ReplPair curPar : tmpList) {</span> +<span class="fc" id="L372"> String tmp = rp.replace.replaceAll(curPar.find, curPar.replace);</span> + +<span class="pc bpc" id="L374" title="3 of 4 branches missed."> if (ropts.isTrace && !rp.replace.equals(tmp)) {</span> +<span class="nc" id="L375"> ropts.errStream.printf("\t[DEBUG] Staged '%s' -> '%s'\t%s\n",</span> + rp.replace, tmp, curPar); + } + +<span class="fc" id="L379"> rp.replace = tmp;</span> +<span class="fc" id="L380"> }</span> + + // If we're external; add straight to the output +<span class="fc bfc" id="L383" title="All 2 branches covered."> if (rp.stat == StageStatus.EXTERNAL) {</span> +<span class="pc bpc" id="L384" title="1 of 2 branches missed."> if (ropts.isTrace) {</span> +<span class="nc" id="L385"> ropts.errStream.printf("\t[DEBUG] Skipped external for staging: %s\n",</span> + rp); + } + +<span class="fc" id="L389"> detals.add(rp);</span> + } else { +<span class="pc bpc" id="L391" title="1 of 2 branches missed."> if (ropts.isTrace) {</span> +<span class="nc" id="L392"> ropts.errStream.printf("\t[DEBUG] Added to stage %d: %s\n\t\tContents: %s\n",</span> +<span class="nc" id="L393"> procStg, rp, curStage);</span> + } + +<span class="fc" id="L396"> curStage.add(rp);</span> + } +<span class="fc" id="L398"> }</span> + +<span class="fc" id="L400"> tmpList.addAll(curStage);</span> +<span class="fc" id="L401"> tmpList.sort(null);</span> +<span class="fc" id="L402"> }</span> + + // Copy over to output, excluding internals +<span class="fc bfc" id="L405" title="All 2 branches covered."> for (ReplPair rp : tmpList) {</span> +<span class="fc bfc" id="L406" title="All 2 branches covered."> if (rp.stat == StageStatus.INTERNAL) {</span> +<span class="pc bpc" id="L407" title="1 of 2 branches missed."> if (ropts.isTrace) ropts.errStream.printf("\t[DEBUG] Excluded internal: %s\n", rp);</span> + + continue; + } + +<span class="fc" id="L412"> detals.add(rp);</span> +<span class="fc" id="L413"> }</span> + +<span class="fc" id="L415"> detals.sort(null);</span> + +<span class="pc bpc" id="L417" title="1 of 2 branches missed."> if (ropts.isTrace) {</span> +<span class="nc" id="L418"> ropts.errStream.printf("\t[DEBUG] Final output: %s\n", detals);</span> + } + +<span class="fc" id="L421"> return detals;</span> + } + + private static String readMultiLine(String lead, Scanner src, ReplOpts ropts, + List<ReplError> errs, String typ, IntHolder lno) { +<span class="fc" id="L426"> String tmp = lead;</span> + +<span class="pc bpc" id="L428" title="3 of 4 branches missed."> if (ropts.isTrace && tmp.endsWith("\\")) </span> +<span class="nc" id="L429"> ropts.errStream.printf("\t[TRACE] Starting multi-line parse for %s '%s'\n", typ, tmp);</span> + +<span class="fc" id="L431"> boolean didMulti = tmp.endsWith("\\");</span> +<span class="fc bfc" id="L432" title="All 2 branches covered."> while (tmp.endsWith("\\")) {</span> +<span class="fc" id="L433"> boolean incNL = tmp.endsWith("|\\");</span> + +<span class="pc bpc" id="L435" title="1 of 2 branches missed."> if (!src.hasNextLine()) break;</span> + +<span class="fc" id="L437"> String nxt = src.nextLine().trim();</span> +<span class="fc" id="L438"> lno.incr();</span> + +<span class="fc bfc" id="L440" title="All 2 branches covered."> if (nxt.startsWith("#")) continue;</span> + +<span class="fc bfc" id="L442" title="All 2 branches covered."> String nlStr = incNL ? "\n" : "";</span> + +<span class="pc bpc" id="L444" title="1 of 2 branches missed."> if (tmp.endsWith("\\")) {</span> +<span class="fc bfc" id="L445" title="All 2 branches covered."> if (incNL) {</span> +<span class="fc" id="L446"> tmp = tmp.substring(0, tmp.length() - 2);</span> + } else { +<span class="fc" id="L448"> tmp = tmp.substring(0, tmp.length() - 1);</span> + } + } + +<span class="fc" id="L452"> tmp = String.format("%s%s%s", tmp, nlStr, nxt);</span> +<span class="fc" id="L453"> }</span> + +<span class="pc bpc" id="L455" title="3 of 4 branches missed."> if (ropts.isTrace && didMulti)</span> +<span class="nc" id="L456"> ropts.errStream.printf("\t[TRACE] Finished multi-line parse for %s:\n%s\n.\n",</span> + typ, tmp); + +<span class="fc" id="L459"> return tmp;</span> + } + + @Override + public String apply(String inp) { +<span class="fc" id="L464"> return inp.replaceAll(find, replace);</span> + } + + @Override + public String toString() { +<span class="fc" id="L469"> String nameStr = "";</span> + +<span class="pc bpc" id="L471" title="1 of 2 branches missed."> if (!find.equals(name)) nameStr = String.format("(%s)", name);</span> + +<span class="fc" id="L473"> return String.format("%ss/%s/%s/p(%d)", nameStr, find, replace, priority);</span> + } + + @Override + public int compareTo(ReplPair rp) { +<span class="fc bfc" id="L478" title="All 2 branches covered."> if (this.priority == rp.priority) return this.lno - rp.lno;</span> + +<span class="fc" id="L480"> return rp.priority - this.priority;</span> + } + + @Override + public boolean equals(Object o) { +<span class="pc bpc" id="L485" title="1 of 2 branches missed."> if (o == null) return false;</span> + +<span class="pc bpc" id="L487" title="1 of 2 branches missed."> if (!getClass().equals(o.getClass())) return false;</span> + +<span class="fc" id="L489"> ReplPair ro = (ReplPair)o;</span> + +<span class="pc bpc" id="L491" title="1 of 2 branches missed."> if (!find.equals(ro.find)) return false;</span> + // lno is not a field we consider for equality +<span class="pc bpc" id="L493" title="1 of 2 branches missed."> if (!name.equals(ro.name)) return false;</span> +<span class="pc bpc" id="L494" title="1 of 2 branches missed."> if (priority != ro.priority) return false;</span> +<span class="pc bpc" id="L495" title="1 of 2 branches missed."> if (!replace.equals(ro.name)) return false;</span> + // stat is not a field we consider for equality + +<span class="fc" id="L498"> return true;</span> + } + + private static String readName(String nam, Scanner scn, List<ReplError> errs, + ReplPair rp, ReplOpts ropts, IntHolder lno, IntHolder pno) { +<span class="fc" id="L503"> String name = nam;</span> + +<span class="fc" id="L505"> boolean isMulti = ropts.defMulti;</span> + + // Name has attached controls, process them. +<span class="fc bfc" id="L508" title="All 2 branches covered."> if (name.startsWith("//")) {</span> +<span class="fc" id="L509"> name = name.substring(2);</span> + +<span class="fc" id="L511"> String[] nameBits = StringUtils.escapeSplit("|", "//", name);</span> + +<span class="pc bpc" id="L513" title="1 of 2 branches missed."> if (nameBits.length < 2) {</span> +<span class="nc" id="L514"> String msg = "Did not find control terminator (//) in name where it should be";</span> + +<span class="nc" id="L516"> errs.add(new ReplError(lno, pno, msg, name));</span> +<span class="nc" id="L517"> return null;</span> + } + +<span class="fc" id="L520"> String contName = nameBits[0];</span> +<span class="fc" id="L521"> String actName = nameBits[1];</span> + + // Split out each control +<span class="fc" id="L524"> String[] bits = StringUtils.escapeSplit("|", ";", contName);</span> + +<span class="fc bfc" id="L526" title="All 2 branches covered."> for (String bit : bits) {</span> +<span class="fc" id="L527"> String bitHead = bit.toUpperCase();</span> +<span class="fc" id="L528"> String bitBody = bit;</span> + +<span class="fc" id="L530"> String[] bots = StringUtils.escapeSplit("|", "/", bit);</span> + +<span class="fc bfc" id="L532" title="All 2 branches covered."> if (bots.length > 1) {</span> +<span class="fc" id="L533"> bitHead = bots[0].toUpperCase();</span> +<span class="fc" id="L534"> bitBody = bots[1];</span> + } + +<span class="pc bpc" id="L537" title="6 of 10 branches missed."> switch (bitHead) {</span> + case "NAME": + case "N": +<span class="nc" id="L540"> rp.name = bitBody;</span> +<span class="nc" id="L541"> break;</span> + case "PRIORITY": + case "PRIOR": + case "P": + try { +<span class="fc" id="L546"> rp.priority = Integer.parseInt(bitBody);</span> +<span class="nc" id="L547"> } catch (NumberFormatException nfex) {</span> +<span class="nc" id="L548"> String errMsg = String.format("'%s' is not a valid priority (must be an integer)", bitBody);</span> +<span class="nc" id="L549"> errs.add(new ReplError(lno, pno, errMsg, name));</span> +<span class="fc" id="L550"> }</span> +<span class="nc" id="L551"> break;</span> + case "STAGE": + case "S": + try { +<span class="fc" id="L555"> int tmpStage = Integer.parseInt(bitBody);</span> +<span class="pc bpc" id="L556" title="1 of 2 branches missed."> if (tmpStage < 0) {</span> +<span class="nc" id="L557"> String errMsg = String.format("'%s' is not a valid stage (must be a positive integer)", bitBody);</span> +<span class="nc" id="L558"> errs.add(new ReplError(lno, pno, errMsg, name));</span> + +<span class="nc" id="L560"> break;</span> + } +<span class="fc" id="L562"> rp.stage = tmpStage;</span> +<span class="nc" id="L563"> } catch (NumberFormatException nfex) {</span> +<span class="nc" id="L564"> String errMsg = String.format("'%s' is not a valid stage (must be a positive integer)", bitBody);</span> +<span class="nc" id="L565"> errs.add(new ReplError(lno, pno, errMsg, name));</span> +<span class="fc" id="L566"> }</span> +<span class="nc" id="L567"> break;</span> + case "MULTITRUE": + case "MULTIT": + case "MT": +<span class="nc" id="L571"> isMulti = true;</span> +<span class="nc" id="L572"> break;</span> + case "MULTIFALSE": + case "MULTIF": + case "MF": +<span class="nc" id="L576"> isMulti = false;</span> +<span class="nc" id="L577"> break;</span> + case "MULTI": + case "M": +<span class="nc" id="L580"> isMulti = Boolean.parseBoolean(bitBody);</span> +<span class="nc" id="L581"> break;</span> + case "INTERNAL": + case "INT": + case "I": +<span class="fc" id="L585"> rp.stat = StageStatus.INTERNAL;</span> +<span class="fc" id="L586"> break;</span> + case "EXTERNAL": + case "EXT": + case "E": +<span class="fc" id="L590"> rp.stat = StageStatus.EXTERNAL;</span> +<span class="fc" id="L591"> break;</span> + case "BOTH": + case "B": +<span class="nc" id="L594"> rp.stat = StageStatus.BOTH;</span> +<span class="nc" id="L595"> break;</span> + default: + { +<span class="nc" id="L598"> ReplError erd = new ReplError(lno, pno,</span> +<span class="nc" id="L599"> String.format("Unknown control name '%s' for name '%s'",</span> + bitHead, name), name); + +<span class="nc" id="L602"> errs.add(erd);</span> + } + break; + } + +<span class="fc" id="L607"> name = actName;</span> + } + + // Multi-line name with a trailer +<span class="pc bpc" id="L611" title="1 of 2 branches missed."> if (isMulti) {</span> +<span class="nc" id="L612"> String tmp = readMultiLine(name, scn, ropts, errs, "name", lno);</span> +<span class="nc bnc" id="L613" title="All 2 branches missed."> if (tmp == null) return null;</span> +<span class="nc" id="L614"> name = tmp;</span> + } + } + +<span class="fc" id="L618"> return name;</span> + } + + private static void readGlobal(String nam, Scanner scn, List<ReplError> errs, + ReplOpts ropts, IntHolder lno, IntHolder pno) { +<span class="fc" id="L623"> String name = nam.substring(3);</span> + + // Split out each control +<span class="fc" id="L626"> String[] bits = StringUtils.escapeSplit("|", ";", name);</span> +<span class="pc bpc" id="L627" title="1 of 2 branches missed."> if (ropts.isTrace) {</span> +<span class="nc" id="L628"> ropts.errStream.printf("\t[TRACE] Split control bits are: \n");</span> +<span class="nc bnc" id="L629" title="All 2 branches missed."> for (String bit : bits) {</span> +<span class="nc" id="L630"> ropts.errStream.printf("%s, ", bit);</span> + } +<span class="nc" id="L632"> ropts.errStream.println();</span> + } +<span class="fc bfc" id="L634" title="All 2 branches covered."> for (String bit : bits) {</span> +<span class="fc" id="L635"> String bitHead = bit.toUpperCase();</span> +<span class="fc" id="L636"> String bitBody = bit;</span> + +<span class="fc" id="L638"> String[] bots = StringUtils.escapeSplit("|", "/", bit);</span> +<span class="fc bfc" id="L639" title="All 2 branches covered."> if (bots.length > 1) {</span> +<span class="fc" id="L640"> bitHead = bots[0];</span> +<span class="fc" id="L641"> bitBody = bots[1];</span> + } + +<span class="pc bpc" id="L644" title="13 of 18 branches missed."> switch (bitHead) {</span> + case "PRIORITY": + case "PRIOR": + case "P": + try { +<span class="fc" id="L649"> int tmp = Integer.parseInt(bitBody);</span> +<span class="fc" id="L650"> ropts.defPrior = tmp;</span> +<span class="nc" id="L651"> } catch (NumberFormatException nfex) {</span> +<span class="nc" id="L652"> String errMsg = String.format("'%s' is not a valid priority (must be an integer)",</span> + bitBody); + +<span class="nc" id="L655"> errs.add(new ReplError(lno, pno, errMsg, name));</span> +<span class="fc" id="L656"> }</span> +<span class="nc" id="L657"> break;</span> + case "STAGE": + case "S": + try { +<span class="fc" id="L661"> int tmpStage = Integer.parseInt(bitBody);</span> + +<span class="pc bpc" id="L663" title="1 of 2 branches missed."> if (tmpStage < 0) {</span> +<span class="nc" id="L664"> String errMsg = String.format("'%s' is not a valid stage (must be a positive integer)",</span> + bitBody); + +<span class="nc" id="L667"> errs.add(new ReplError(lno, pno, errMsg, name));</span> +<span class="nc" id="L668"> break;</span> + } +<span class="fc" id="L670"> ropts.defStage = tmpStage;</span> +<span class="nc" id="L671"> } catch (NumberFormatException nfex) {</span> +<span class="nc" id="L672"> String errMsg = String.format("'%s' is not a valid stage (must be a positive integer)",</span> + bitBody); + +<span class="nc" id="L675"> errs.add(new ReplError(lno, pno, errMsg, name));</span> +<span class="fc" id="L676"> }</span> +<span class="nc" id="L677"> break;</span> + case "MULTITRUE": + case "MULTIT": + case "MT": +<span class="nc" id="L681"> ropts.defMulti = true;</span> +<span class="nc" id="L682"> break;</span> + case "MULTIFALSE": + case "MULTIF": + case "MF": +<span class="nc" id="L686"> ropts.defMulti = false;</span> +<span class="nc" id="L687"> break;</span> + case "MULTI": + case "M": +<span class="fc" id="L690"> ropts.defMulti = Boolean.parseBoolean(bitBody);</span> +<span class="fc" id="L691"> break;</span> + case "INTERNAL": + case "INT": + case "I": +<span class="nc" id="L695"> ropts.defStatus = StageStatus.INTERNAL;</span> +<span class="nc" id="L696"> break;</span> + case "EXTERNAL": + case "EXT": + case "E": +<span class="nc" id="L700"> ropts.defStatus = StageStatus.EXTERNAL;</span> +<span class="nc" id="L701"> break;</span> + case "BOTH": + case "B": +<span class="nc" id="L704"> ropts.defStatus = StageStatus.BOTH;</span> +<span class="nc" id="L705"> break;</span> + case "DEBUGTRUE": + case "DEBUGT": + case "DT": +<span class="nc" id="L709"> ropts.isDebug = true;</span> +<span class="nc" id="L710"> break;</span> + case "DEBUGFALSE": + case "DEBUGF": + case "DF": +<span class="fc" id="L714"> ropts.isDebug = false;</span> +<span class="fc" id="L715"> break;</span> + case "DEBUG": + case "D": +<span class="nc" id="L718"> ropts.isDebug = Boolean.parseBoolean(bitBody);</span> +<span class="nc" id="L719"> break;</span> + case "TRACETRUE": + case "TRACET": + case "TT": +<span class="nc" id="L723"> ropts.isTrace = true;</span> +<span class="nc" id="L724"> break;</span> + case "TRACEFALSE": + case "TRACEF": + case "TF": +<span class="fc" id="L728"> ropts.isTrace = false;</span> +<span class="fc" id="L729"> break;</span> + case "TRACE": + case "T": +<span class="nc" id="L732"> ropts.isTrace = Boolean.parseBoolean(bitBody);</span> +<span class="nc" id="L733"> break;</span> + case "PERFTRUE": + case "PERFT": + case "PRFT": +<span class="nc" id="L737"> ropts.isPerf = true;</span> +<span class="nc" id="L738"> break;</span> + case "PERFFALSE": + case "PERFF": + case "PRFF": +<span class="nc" id="L742"> ropts.isPerf = false;</span> +<span class="nc" id="L743"> break;</span> + case "PERF": + case "PRF": +<span class="nc" id="L746"> ropts.isPerf = Boolean.parseBoolean(bitBody);</span> +<span class="nc" id="L747"> break;</span> + default: + { +<span class="nc" id="L750"> String msg = String.format("Invalid global control name '%s'", bitHead);</span> +<span class="nc" id="L751"> ReplError err = new ReplError(lno, pno, msg, name);</span> +<span class="nc" id="L752"> errs.add(err);</span> + } + break; + } + +<span class="pc bpc" id="L757" title="1 of 2 branches missed."> if (ropts.isTrace) </span> +<span class="nc" id="L758"> ropts.errStream.printf("\t[TRACE] Processed global control '%s':'%s'\n", </span> + bitHead, bitBody); + } + +<span class="fc" id="L762"> return;</span> + } + + private static ControlledString getControls(String lne, List<ReplError> errs, + ReplOpts ropts, IntHolder lno, IntHolder pno, String type) { +<span class="nc bnc" id="L767" title="All 2 branches missed."> if (!lne.startsWith("//")) {</span> +<span class="nc" id="L768"> return new ControlledString(lne);</span> + } + +<span class="nc" id="L771"> String tmp = lne.substring(2);</span> + +<span class="nc" id="L773"> String[] bits = StringUtils.escapeSplit("|", "//", lne);</span> + +<span class="nc bnc" id="L775" title="All 2 branches missed."> if (bits.length < 2) {</span> +<span class="nc" id="L776"> String msg = "Did not find control terminator (//) in %s where it should be";</span> +<span class="nc" id="L777"> msg = String.format(msg, type);</span> + +<span class="nc" id="L779"> ReplError re = new ReplError(lno, pno, msg, lne);</span> +<span class="nc" id="L780"> errs.add(re);</span> + +<span class="nc" id="L782"> return null;</span> + } + +<span class="nc" id="L785"> ControlledString cs = new ControlledString(bits[0]);</span> + +<span class="nc" id="L787"> bits = StringUtils.escapeSplit("|", ";", bits[1]);</span> + +<span class="nc" id="L789"> cs.controls = new Control[bits.length];</span> + +<span class="nc bnc" id="L791" title="All 2 branches missed."> for (int i = 0; i < bits.length; i++) {</span> +<span class="nc" id="L792"> String bit = bits[i];</span> + +<span class="nc" id="L794"> String[] bots = StringUtils.escapeSplit("|", "/", bit);</span> + +<span class="nc" id="L796"> Control cont = new Control(bots[0]);</span> + +<span class="nc bnc" id="L798" title="All 2 branches missed."> if (cont.name.length() > 1) {</span> +<span class="nc" id="L799"> cont.name = cont.name.toUpperCase();</span> + } + +<span class="nc bnc" id="L802" title="All 2 branches missed."> if (bots.length > 1) {</span> +<span class="nc" id="L803"> cont.args = new String[bots.length - 1];</span> +<span class="nc bnc" id="L804" title="All 2 branches missed."> for (int j = 1; j < bots.length; j++) {</span> +<span class="nc" id="L805"> cont.args[j - 1] = bots[j];</span> + } + } + +<span class="nc" id="L809"> cs.controls[i] = cont;</span> + } + +<span class="nc" id="L812"> return cs;</span> + } +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplParseException.html b/docs/jacoco-ut/bjc.everge/ReplParseException.html new file mode 100644 index 0000000..db90db6 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ReplParseException.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ReplParseException</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.html" class="el_package">bjc.everge</a> > <span class="el_class">ReplParseException</span></div><h1>ReplParseException</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">59 of 128</td><td class="ctr2">53%</td><td class="bar">6 of 12</td><td class="ctr2">50%</td><td class="ctr1">7</td><td class="ctr2">10</td><td class="ctr1">11</td><td class="ctr2">27</td><td class="ctr1">2</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a3"><a href="ReplParseException.java.html#L22" class="el_method">toString()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="28" alt="28"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="ReplParseException.java.html#L30" class="el_method">toPrintString()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="33" height="10" title="24" alt="24"/><img src="../jacoco-resources/greenbar.gif" width="86" height="10" title="62" alt="62"/></td><td class="ctr2" id="c1">72%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="72" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">60%</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">18</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="ReplParseException.java.html#L10" class="el_method">ReplParseException(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="7" alt="7"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="ReplParseException.java.html#L14" class="el_method">ReplParseException(String, List)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="7" alt="7"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplParseException.java.html b/docs/jacoco-ut/bjc.everge/ReplParseException.java.html new file mode 100644 index 0000000..322ba21 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ReplParseException.java.html @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ReplParseException.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.source.html" class="el_package">bjc.everge</a> > <span class="el_source">ReplParseException.java</span></div><h1>ReplParseException.java</h1><pre class="source lang-java linenums">package bjc.everge; + +import java.util.ArrayList; +import java.util.List; + +public class ReplParseException extends RuntimeException { + public List<ReplError> errs; + + public ReplParseException(String msg) { +<span class="nc" id="L10"> this(msg, new ArrayList<>());</span> +<span class="nc" id="L11"> }</span> + + public ReplParseException(String msg, List<ReplError> errs) { +<span class="fc" id="L14"> super(msg);</span> + +<span class="fc" id="L16"> this.errs = errs;</span> +<span class="fc" id="L17"> }</span> + + @Override + public String toString() { + String errString; +<span class="nc bnc" id="L22" title="All 2 branches missed."> if (errs.size() == 0) errString = "An error";</span> +<span class="nc" id="L23"> else errString = "Errors";</span> + +<span class="nc" id="L25"> return String.format("%s occured parsing replacement pairs: %s\n%s",</span> +<span class="nc" id="L26"> errString, getMessage(), errs);</span> + } + + public String toPrintString() { +<span class="fc" id="L30"> StringBuilder errString = new StringBuilder("[ERROR] ");</span> + +<span class="pc bpc" id="L32" title="1 of 2 branches missed."> if (errs.size() == 0) {</span> +<span class="nc" id="L33"> errString.append("No specific errors");</span> +<span class="pc bpc" id="L34" title="1 of 2 branches missed."> } else if (errs.size() == 1) {</span> +<span class="fc" id="L35"> errString.append("An error");</span> + } else { +<span class="nc" id="L37"> errString.append(errs.size());</span> +<span class="nc" id="L38"> errString.append(" errors");</span> + } + +<span class="fc" id="L41"> errString.append(" occured parsing replacement pairs:");</span> +<span class="pc bpc" id="L42" title="1 of 2 branches missed."> if (!getMessage().equals("")) {</span> +<span class="nc" id="L43"> errString.append(" ");</span> +<span class="nc" id="L44"> errString.append(getMessage());</span> + } + +<span class="pc bpc" id="L47" title="1 of 2 branches missed."> if (errs.size() > 0) {</span> +<span class="fc" id="L48"> errString.append("\n\t");</span> + +<span class="fc bfc" id="L50" title="All 2 branches covered."> for (ReplError err : errs) {</span> +<span class="fc" id="L51"> errString.append(err.toPrintString("\t"));</span> +<span class="fc" id="L52"> errString.append("\n\t");</span> +<span class="fc" id="L53"> }</span> + } + +<span class="fc" id="L56"> return errString.toString().trim();</span> + } +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplSet.html b/docs/jacoco-ut/bjc.everge/ReplSet.html new file mode 100644 index 0000000..1edd220 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ReplSet.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ReplSet</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.html" class="el_package">bjc.everge</a> > <span class="el_class">ReplSet</span></div><h1>ReplSet</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">105 of 105</td><td class="ctr2">0%</td><td class="bar">6 of 6</td><td class="ctr2">0%</td><td class="ctr1">9</td><td class="ctr2">9</td><td class="ctr1">24</td><td class="ctr2">24</td><td class="ctr1">6</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a1"><a href="ReplSet.java.html#L71" class="el_method">addPairs(ReplPair[])</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="26" alt="26"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="ReplSet.java.html#L40" class="el_method">fromFile(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="110" height="10" title="24" alt="24"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="ReplSet.java.html#L56" class="el_method">addPairs(List)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="96" height="10" title="21" alt="21"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="ReplSet.java.html#L88" class="el_method">apply(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="92" height="10" title="20" alt="20"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h1">5</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="ReplSet.java.html#L23" class="el_method">ReplSet()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="8" alt="8"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="ReplSet.java.html#L35" class="el_method">ReplSet(List)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="6" alt="6"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">3</td><td class="ctr2" id="i5">3</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplSet.java.html b/docs/jacoco-ut/bjc.everge/ReplSet.java.html new file mode 100644 index 0000000..f2f59a6 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ReplSet.java.html @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ReplSet.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.source.html" class="el_package">bjc.everge</a> > <span class="el_source">ReplSet.java</span></div><h1>ReplSet.java</h1><pre class="source lang-java linenums">package bjc.everge; + +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +/** + * A set of ReplPairs, kept together for easy use + * + * @author Ben Culkin + */ +public class ReplSet { + // The list of pairs + private List<ReplPair> parList; + + /** + * Create a new blank set of pairs. + */ +<span class="nc" id="L23"> public ReplSet() {</span> +<span class="nc" id="L24"> parList = new ArrayList<>();</span> +<span class="nc" id="L25"> }</span> + + /** + * Create a new set of pairs using an existing list of pairs. + * + * Changes to the list of pairs will carry across to the ReplSet, so be careful about that. + * + * @param lst + * The list of pairs to use. + */ +<span class="nc" id="L35"> public ReplSet(List<ReplPair> lst) {</span> +<span class="nc" id="L36"> parList = lst;</span> +<span class="nc" id="L37"> }</span> + + public static ReplSet fromFile(String fName) throws IOException { +<span class="nc" id="L40"> ReplSet rs = new ReplSet();</span> + +<span class="nc" id="L42"> try (FileInputStream fis = new FileInputStream(fName); Scanner scn = new Scanner(fis)) {</span> +<span class="nc" id="L43"> rs.parList = ReplPair.readList(scn);</span> + } + +<span class="nc" id="L46"> return rs;</span> + } + + /** + * Adds more pairs to the ReplSet. + * + * @param pars + * The pairs to add to the ReplSet. + */ + public void addPairs(List<ReplPair> pars) { +<span class="nc bnc" id="L56" title="All 2 branches missed."> for (ReplPair par : pars) {</span> +<span class="nc" id="L57"> parList.add(par);</span> +<span class="nc" id="L58"> }</span> + + // Resort the pairs into priority order +<span class="nc" id="L61"> parList.sort(null);</span> +<span class="nc" id="L62"> }</span> + + /** + * Adds more pairs to the ReplSet. + * + * @param pars + * The pairs to add to the ReplSet. + */ + public void addPairs(ReplPair... pars) { +<span class="nc bnc" id="L71" title="All 2 branches missed."> for (ReplPair par : pars) {</span> +<span class="nc" id="L72"> parList.add(par);</span> + } + + // Resort the pairs into priority order +<span class="nc" id="L76"> parList.sort(null);</span> +<span class="nc" id="L77"> }</span> + + /** + * Apply the ReplSet to a string. + * + * @param val + * The string to apply the ReplSet to. + * + * @return The result of applying the ReplSet. + */ + public String apply(String val) { +<span class="nc" id="L88"> String ret = val;</span> + +<span class="nc bnc" id="L90" title="All 2 branches missed."> for (ReplPair par : parList) {</span> +<span class="nc" id="L91"> ret = par.apply(ret);</span> +<span class="nc" id="L92"> }</span> + +<span class="nc" id="L94"> return ret;</span> + } +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/StageStatus.html b/docs/jacoco-ut/bjc.everge/StageStatus.html new file mode 100644 index 0000000..743ca89 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/StageStatus.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>StageStatus</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.html" class="el_package">bjc.everge</a> > <span class="el_class">StageStatus</span></div><h1>StageStatus</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 34</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">1</td><td class="ctr1">0</td><td class="ctr2">4</td><td class="ctr1">0</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="StageStatus.java.html#L7" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="34" alt="34"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/StageStatus.java.html b/docs/jacoco-ut/bjc.everge/StageStatus.java.html new file mode 100644 index 0000000..343fd08 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/StageStatus.java.html @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>StageStatus.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.source.html" class="el_package">bjc.everge</a> > <span class="el_source">StageStatus.java</span></div><h1>StageStatus.java</h1><pre class="source lang-java linenums">package bjc.everge; + +/** + * Possible statuses of pairs with respect to exporting. + * @author Ben Culkin + */ +<span class="fc" id="L7">public enum StageStatus {</span> + /** + * Only use for staging pairs; don't export. + */ +<span class="fc" id="L11"> INTERNAL,</span> + /** + * Don't use for staging pairs; do export. + */ +<span class="fc" id="L15"> EXTERNAL,</span> + /** + * Use for staging pairs; do export. + */ +<span class="fc" id="L19"> BOTH;</span> +} + +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/StringUtils.html b/docs/jacoco-ut/bjc.everge/StringUtils.html new file mode 100644 index 0000000..e21d36f --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/StringUtils.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>StringUtils</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.html" class="el_package">bjc.everge</a> > <span class="el_class">StringUtils</span></div><h1>StringUtils</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">190 of 460</td><td class="ctr2">58%</td><td class="bar">17 of 54</td><td class="ctr2">68%</td><td class="ctr1">16</td><td class="ctr2">30</td><td class="ctr1">24</td><td class="ctr2">80</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a0"><a href="StringUtils.java.html#L34" class="el_method">escapeSplit(String, String, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="187" alt="187"/><img src="../jacoco-resources/greenbar.gif" width="70" height="10" title="267" alt="267"/></td><td class="ctr2" id="c1">58%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="17" alt="17"/><img src="../jacoco-resources/greenbar.gif" width="82" height="10" title="37" alt="37"/></td><td class="ctr2" id="e0">68%</td><td class="ctr1" id="f0">15</td><td class="ctr2" id="g0">28</td><td class="ctr1" id="h0">23</td><td class="ctr2" id="i0">78</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="StringUtils.java.html#L14" class="el_method">StringUtils()</a></td><td class="bar" id="b1"/><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="StringUtils.java.html#L15" class="el_method">static {...}</a></td><td class="bar" id="b2"/><td class="ctr2" id="c0">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/StringUtils.java.html b/docs/jacoco-ut/bjc.everge/StringUtils.java.html new file mode 100644 index 0000000..f1f94d2 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/StringUtils.java.html @@ -0,0 +1,194 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>StringUtils.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <a href="index.source.html" class="el_package">bjc.everge</a> > <span class="el_source">StringUtils.java</span></div><h1>StringUtils.java</h1><pre class="source lang-java linenums">package bjc.everge; + +import java.util.Arrays; +import java.util.ArrayList; +import java.util.List; + +import java.util.regex.Pattern; + +/** + * Utility methods for strings. + * + * @author Ben Culkin. + */ +<span class="nc" id="L14">public class StringUtils {</span> +<span class="fc" id="L15"> public static boolean isDebug = false;</span> + + /** + * Split a string on every occurance of a string not preceeded by an escape. + * + * @param escape + * The escape that stops splitting. + * @param splat + * The string to split on. If this starts with the escape sequence, things will work + * poorly. + * @param inp + * The string to split. + * @return The string split as specified above. + */ + public static String[] escapeSplit(String escape, String splat, String inp) { + + /* + * Special case some stuffs. + */ +<span class="pc bpc" id="L34" title="2 of 4 branches missed."> if (inp == null || inp.equals("")) {</span> + // No input +<span class="nc" id="L36"> return new String[] {inp};</span> + } + +<span class="fc bfc" id="L39" title="All 2 branches covered."> if (!inp.contains(splat)) {</span> + // Input does not contain any delimiters +<span class="fc" id="L41"> return new String[] {inp};</span> + } + +<span class="pc bpc" id="L44" title="1 of 4 branches missed."> if (escape == null || escape.equals("")) {</span> + // No escape, so we can just split normally +<span class="fc" id="L46"> return inp.split(Pattern.quote(splat));</span> + } + +<span class="fc" id="L49"> List<String> ret = new ArrayList<>();</span> + +<span class="fc" id="L51"> String wrk = inp;</span> +<span class="fc" id="L52"> int sidx = wrk.indexOf(splat);</span> +<span class="fc" id="L53"> int eidx = wrk.indexOf(escape);</span> + +<span class="fc" id="L55"> boolean hadEscape = false;</span> + +<span class="fc bfc" id="L57" title="All 4 branches covered."> while (sidx != -1 || eidx != -1) {</span> +<span class="fc bfc" id="L58" title="All 4 branches covered."> if (eidx > 0 && eidx < sidx) {</span> +<span class="pc bpc" id="L59" title="1 of 2 branches missed."> if (isDebug) System.err.printf("[TRACE] Considering escape\n");</span> + + /* + * We potentially have an escaped sequence: + * - either an escaped split + * - or an escaped escape + */ + // Check for an escaped split +<span class="fc bfc" id="L67" title="All 2 branches covered."> if (wrk.regionMatches(eidx + escape.length(), splat, 0, splat.length())) {</span> + // Skip over it +<span class="fc" id="L69"> int ofst = eidx + splat.length();</span> + + // Slice out the escape + { +<span class="fc" id="L73"> String s1 = wrk.substring(0, eidx);</span> +<span class="fc" id="L74"> String s2 = wrk.substring(eidx + escape.length());</span> + +<span class="fc" id="L76"> String s3 = wrk.substring(eidx, eidx + escape.length());</span> + +<span class="pc bpc" id="L78" title="1 of 2 branches missed."> if (isDebug) {</span> +<span class="nc" id="L79"> System.err.printf("[TRACE] Skip esc. split (%s)/(%s); (%s)\n",</span> + s1, s2, s3); + } + +<span class="fc" id="L83"> wrk = s1 + s2;</span> + } + +<span class="fc" id="L86"> sidx = wrk.indexOf(splat, ofst);</span> +<span class="fc" id="L87"> eidx = wrk.indexOf(escape, ofst);</span> + +<span class="pc bpc" id="L89" title="1 of 2 branches missed."> if (isDebug) {</span> +<span class="nc" id="L90"> System.err.printf("[TRACE] After esc. split (%s) %d/%d\n",</span> +<span class="nc" id="L91"> wrk, sidx, eidx);</span> + } + +<span class="fc" id="L94"> hadEscape = false;</span> +<span class="fc" id="L95"> continue;</span> + } + + // Check for an escaped escape +<span class="pc bpc" id="L99" title="1 of 2 branches missed."> if (wrk.regionMatches(eidx + escape.length(), escape, 0, escape.length())) {</span> + // Skip over it +<span class="fc" id="L101"> int ofst = eidx + escape.length();</span> + + // Slice out the escape + { +<span class="fc" id="L105"> String s1 = wrk.substring(0, eidx);</span> +<span class="fc" id="L106"> String s2 = wrk.substring(eidx + escape.length());</span> + +<span class="fc" id="L108"> String s3 = wrk.substring(eidx, eidx + escape.length());</span> +<span class="pc bpc" id="L109" title="1 of 2 branches missed."> if (isDebug) {</span> +<span class="nc" id="L110"> System.err.printf("[TRACE] Skip esc. escape (%s)/(%s); (%s)\n",</span> + s1, s2, s3); + } + +<span class="fc" id="L114"> wrk = s1 + s2;</span> + } + +<span class="fc" id="L117"> sidx = wrk.indexOf(splat, ofst);</span> +<span class="fc" id="L118"> eidx = wrk.indexOf(escape, ofst);</span> + +<span class="pc bpc" id="L120" title="1 of 2 branches missed."> if (isDebug) {</span> +<span class="nc" id="L121"> System.err.printf("[TRACE] After esc. escape (%s)/(%s) %d/%d\n",</span> +<span class="nc" id="L122"> wrk, wrk.substring(ofst), sidx, eidx);</span> + } + +<span class="fc" id="L125"> hadEscape = true;</span> +<span class="fc" id="L126"> continue;</span> + } + } + +<span class="fc" id="L130"> boolean hasEscape = false;</span> + + { +<span class="fc" id="L133"> boolean tmp = wrk.regionMatches(sidx - escape.length(), escape, 0, escape.length());</span> + +<span class="fc bfc" id="L135" title="All 2 branches covered."> hasEscape = hadEscape ? false : tmp;</span> + } + +<span class="pc bpc" id="L138" title="1 of 4 branches missed."> while (sidx != -1 && hasEscape) {</span> +<span class="nc" id="L139"> int oidx = wrk.indexOf(splat, sidx + escape.length());</span> + +<span class="nc bnc" id="L141" title="All 2 branches missed."> if (isDebug) {</span> +<span class="nc" id="L142"> String s1 = wrk.substring(0, sidx);</span> +<span class="nc" id="L143"> String s2 = wrk.substring(sidx, sidx + escape.length());</span> +<span class="nc" id="L144"> String s3 = wrk.substring(sidx + escape.length());</span> + } + +<span class="nc bnc" id="L147" title="All 2 branches missed."> if (oidx == -1) break;</span> + + { +<span class="nc" id="L150"> String s1 = wrk.substring(0, oidx);</span> +<span class="nc" id="L151"> String s2 = wrk.substring(oidx + escape.length());</span> + +<span class="nc" id="L153"> wrk = s1 + s2;</span> + } + +<span class="nc" id="L156"> sidx = oidx;</span> + +<span class="nc" id="L158"> hasEscape = wrk.regionMatches(sidx - escape.length(), escape, 0, escape.length());</span> +<span class="nc" id="L159"> }</span> + +<span class="fc bfc" id="L161" title="All 2 branches covered."> if (sidx == -1) {</span> +<span class="fc" id="L162"> break;</span> + } + +<span class="fc" id="L165"> String tmp = wrk.substring(0, sidx);</span> + +<span class="pc bpc" id="L167" title="1 of 2 branches missed."> if (isDebug) {</span> +<span class="nc" id="L168"> System.err.printf("[TRACE] Adding (%s) to returned splits; (%s)\n",</span> +<span class="nc" id="L169"> tmp, wrk.substring(sidx));</span> + } + +<span class="fc" id="L172"> ret.add(tmp);</span> +<span class="pc bpc" id="L173" title="1 of 4 branches missed."> if (!tmp.equals("") && wrk.endsWith(tmp)) {</span> +<span class="nc" id="L174"> wrk = "";</span> + } else { +<span class="pc bpc" id="L176" title="1 of 2 branches missed."> if (wrk.indexOf(splat, sidx) != -1) {</span> +<span class="fc" id="L177"> wrk = wrk.substring(sidx + splat.length());</span> + } else { +<span class="nc" id="L179"> wrk = wrk.substring(sidx);</span> + } + } + +<span class="fc" id="L183"> sidx = wrk.indexOf(splat);</span> +<span class="fc" id="L184"> eidx = wrk.indexOf(escape);</span> + +<span class="fc" id="L186"> hadEscape = false;</span> +<span class="fc" id="L187"> }</span> + +<span class="fc bfc" id="L189" title="All 2 branches covered."> if (!wrk.equals("")) ret.add(wrk);</span> + +<span class="fc" id="L191"> return ret.toArray(new String[0]);</span> + } +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/index.html b/docs/jacoco-ut/bjc.everge/index.html new file mode 100644 index 0000000..c22add6 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/index.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>bjc.everge</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <span class="el_package">bjc.everge</span></div><h1>bjc.everge</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2,013 of 3,673</td><td class="ctr2">45%</td><td class="bar">209 of 381</td><td class="ctr2">45%</td><td class="ctr1">179</td><td class="ctr2">270</td><td class="ctr1">388</td><td class="ctr2">769</td><td class="ctr1">26</td><td class="ctr2">61</td><td class="ctr1">3</td><td class="ctr2">12</td></tr></tfoot><tbody><tr><td id="a7"><a href="ReplPair.html" class="el_class">ReplPair</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="59" height="10" title="800" alt="800"/><img src="../jacoco-resources/greenbar.gif" width="60" height="10" title="822" alt="822"/></td><td class="ctr2" id="c5">50%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="56" height="10" title="87" alt="87"/><img src="../jacoco-resources/greenbar.gif" width="63" height="10" title="99" alt="99"/></td><td class="ctr2" id="e1">53%</td><td class="ctr1" id="f0">73</td><td class="ctr2" id="g0">123</td><td class="ctr1" id="h0">138</td><td class="ctr2" id="i0">336</td><td class="ctr1" id="j3">2</td><td class="ctr2" id="k0">17</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a2"><a href="Everge.html" class="el_class">Everge</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="534" alt="534"/><img src="../jacoco-resources/greenbar.gif" width="23" height="10" title="319" alt="319"/></td><td class="ctr2" id="c7">37%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="54" alt="54"/><img src="../jacoco-resources/greenbar.gif" width="18" height="10" title="29" alt="29"/></td><td class="ctr2" id="e3">34%</td><td class="ctr1" id="f1">41</td><td class="ctr2" id="g1">55</td><td class="ctr1" id="h1">124</td><td class="ctr2" id="i1">199</td><td class="ctr1" id="j4">2</td><td class="ctr2" id="k1">8</td><td class="ctr1" id="l4">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a11"><a href="StringUtils.html" class="el_class">StringUtils</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="190" alt="190"/><img src="../jacoco-resources/greenbar.gif" width="19" height="10" title="270" alt="270"/></td><td class="ctr2" id="c3">58%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="17" alt="17"/><img src="../jacoco-resources/greenbar.gif" width="23" height="10" title="37" alt="37"/></td><td class="ctr2" id="e0">68%</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">30</td><td class="ctr1" id="h3">24</td><td class="ctr2" id="i2">80</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a0"><a href="ControlledString.html" class="el_class">ControlledString</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="159" alt="159"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0%</td><td class="ctr1" id="f3">12</td><td class="ctr2" id="g3">12</td><td class="ctr1" id="h2">35</td><td class="ctr2" id="i3">35</td><td class="ctr1" id="j1">5</td><td class="ctr2" id="k4">5</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a9"><a href="ReplSet.html" class="el_class">ReplSet</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="105" alt="105"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d7"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="6" alt="6"/></td><td class="ctr2" id="e6">0%</td><td class="ctr1" id="f5">9</td><td class="ctr2" id="g6">9</td><td class="ctr1" id="h4">24</td><td class="ctr2" id="i5">24</td><td class="ctr1" id="j0">6</td><td class="ctr2" id="k2">6</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a5"><a href="ReplError.html" class="el_class">ReplError</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="72" alt="72"/><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="60" alt="60"/></td><td class="ctr2" id="c6">45%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="7" alt="7"/></td><td class="ctr2" id="e4">12%</td><td class="ctr1" id="f7">6</td><td class="ctr2" id="g7">9</td><td class="ctr1" id="h8">7</td><td class="ctr2" id="i7">18</td><td class="ctr1" id="j5">2</td><td class="ctr2" id="k5">5</td><td class="ctr1" id="l6">0</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a6"><a href="ReplOpts.html" class="el_class">ReplOpts</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="66" alt="66"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="30" alt="30"/></td><td class="ctr2" id="c8">31%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="18" alt="18"/></td><td class="ctr2" id="e7">0%</td><td class="ctr1" id="f4">10</td><td class="ctr2" id="g4">11</td><td class="ctr1" id="h5">11</td><td class="ctr2" id="i6">21</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l7">0</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a8"><a href="ReplParseException.html" class="el_class">ReplParseException</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="59" alt="59"/><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="69" alt="69"/></td><td class="ctr2" id="c4">53%</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="6" alt="6"/></td><td class="ctr2" id="e2">50%</td><td class="ctr1" id="f6">7</td><td class="ctr2" id="g5">10</td><td class="ctr1" id="h6">11</td><td class="ctr2" id="i4">27</td><td class="ctr1" id="j6">2</td><td class="ctr2" id="k6">4</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a1"><a href="ControlledString$Control.html" class="el_class">ControlledString.Control</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="18" alt="18"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g9">3</td><td class="ctr1" id="h7">9</td><td class="ctr2" id="i9">9</td><td class="ctr1" id="j2">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a4"><a href="IntHolder.html" class="el_class">IntHolder</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="22" alt="22"/></td><td class="ctr2" id="c2">68%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g8">6</td><td class="ctr1" id="h9">5</td><td class="ctr2" id="i8">12</td><td class="ctr1" id="j7">2</td><td class="ctr2" id="k3">6</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a3"><a href="Everge$InputStatus.html" class="el_class">Everge.InputStatus</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="34" alt="34"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i10">4</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a10"><a href="StageStatus.html" class="el_class">StageStatus</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="34" alt="34"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i11">4</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/index.source.html b/docs/jacoco-ut/bjc.everge/index.source.html new file mode 100644 index 0000000..0b57023 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/index.source.html @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>bjc.everge</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">everge</a> > <span class="el_package">bjc.everge</span></div><h1>bjc.everge</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2,013 of 3,673</td><td class="ctr2">45%</td><td class="bar">209 of 381</td><td class="ctr2">45%</td><td class="ctr1">179</td><td class="ctr2">270</td><td class="ctr1">388</td><td class="ctr2">769</td><td class="ctr1">26</td><td class="ctr2">61</td><td class="ctr1">3</td><td class="ctr2">12</td></tr></tfoot><tbody><tr><td id="a5"><a href="ReplPair.java.html" class="el_source">ReplPair.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="59" height="10" title="800" alt="800"/><img src="../jacoco-resources/greenbar.gif" width="60" height="10" title="822" alt="822"/></td><td class="ctr2" id="c4">50%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="56" height="10" title="87" alt="87"/><img src="../jacoco-resources/greenbar.gif" width="63" height="10" title="99" alt="99"/></td><td class="ctr2" id="e1">53%</td><td class="ctr1" id="f0">73</td><td class="ctr2" id="g0">123</td><td class="ctr1" id="h0">138</td><td class="ctr2" id="i0">336</td><td class="ctr1" id="j2">2</td><td class="ctr2" id="k0">17</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="Everge.java.html" class="el_source">Everge.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="534" alt="534"/><img src="../jacoco-resources/greenbar.gif" width="26" height="10" title="353" alt="353"/></td><td class="ctr2" id="c6">39%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="54" alt="54"/><img src="../jacoco-resources/greenbar.gif" width="18" height="10" title="29" alt="29"/></td><td class="ctr2" id="e3">34%</td><td class="ctr1" id="f1">41</td><td class="ctr2" id="g1">56</td><td class="ctr1" id="h1">124</td><td class="ctr2" id="i1">203</td><td class="ctr1" id="j3">2</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m0">2</td></tr><tr><td id="a9"><a href="StringUtils.java.html" class="el_source">StringUtils.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="190" alt="190"/><img src="../jacoco-resources/greenbar.gif" width="19" height="10" title="270" alt="270"/></td><td class="ctr2" id="c2">58%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="17" alt="17"/><img src="../jacoco-resources/greenbar.gif" width="23" height="10" title="37" alt="37"/></td><td class="ctr2" id="e0">68%</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">30</td><td class="ctr1" id="h3">24</td><td class="ctr2" id="i2">80</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l4">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a0"><a href="ControlledString.java.html" class="el_source">ControlledString.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="177" alt="177"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0%</td><td class="ctr1" id="f3">15</td><td class="ctr2" id="g3">15</td><td class="ctr1" id="h2">44</td><td class="ctr2" id="i3">44</td><td class="ctr1" id="j0">8</td><td class="ctr2" id="k2">8</td><td class="ctr1" id="l0">2</td><td class="ctr2" id="m1">2</td></tr><tr><td id="a7"><a href="ReplSet.java.html" class="el_source">ReplSet.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="105" alt="105"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d7"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="6" alt="6"/></td><td class="ctr2" id="e6">0%</td><td class="ctr1" id="f5">9</td><td class="ctr2" id="g6">9</td><td class="ctr1" id="h4">24</td><td class="ctr2" id="i5">24</td><td class="ctr1" id="j1">6</td><td class="ctr2" id="k3">6</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a3"><a href="ReplError.java.html" class="el_source">ReplError.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="72" alt="72"/><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="60" alt="60"/></td><td class="ctr2" id="c5">45%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="7" alt="7"/></td><td class="ctr2" id="e4">12%</td><td class="ctr1" id="f7">6</td><td class="ctr2" id="g7">9</td><td class="ctr1" id="h7">7</td><td class="ctr2" id="i7">18</td><td class="ctr1" id="j4">2</td><td class="ctr2" id="k5">5</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="ReplOpts.java.html" class="el_source">ReplOpts.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="66" alt="66"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="30" alt="30"/></td><td class="ctr2" id="c7">31%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="18" alt="18"/></td><td class="ctr2" id="e7">0%</td><td class="ctr1" id="f4">10</td><td class="ctr2" id="g4">11</td><td class="ctr1" id="h5">11</td><td class="ctr2" id="i6">21</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">2</td><td class="ctr1" id="l6">0</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a6"><a href="ReplParseException.java.html" class="el_source">ReplParseException.java</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="59" alt="59"/><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="69" alt="69"/></td><td class="ctr2" id="c3">53%</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="6" alt="6"/></td><td class="ctr2" id="e2">50%</td><td class="ctr1" id="f6">7</td><td class="ctr2" id="g5">10</td><td class="ctr1" id="h6">11</td><td class="ctr2" id="i4">27</td><td class="ctr1" id="j5">2</td><td class="ctr2" id="k6">4</td><td class="ctr1" id="l7">0</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a2"><a href="IntHolder.java.html" class="el_source">IntHolder.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="22" alt="22"/></td><td class="ctr2" id="c1">68%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g8">6</td><td class="ctr1" id="h8">5</td><td class="ctr2" id="i8">12</td><td class="ctr1" id="j6">2</td><td class="ctr2" id="k4">6</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a8"><a href="StageStatus.java.html" class="el_source">StageStatus.java</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="34" alt="34"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">0</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m9">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.2.201808211720</span></div></body></html>
\ No newline at end of file |
