You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2013/03/30 07:41:32 UTC
svn commit: r856582 [25/34] - in
/websites/production/commons/content/proper/commons-codec: ./ apidocs/
apidocs/org/apache/commons/codec/digest/
apidocs/src-html/org/apache/commons/codec/digest/ cobertura/
xref/org/apache/commons/codec/digest/
Modified: websites/production/commons/content/proper/commons-codec/cobertura/org.apache.commons.codec.language.bm.PhoneticEngine.html
==============================================================================
--- websites/production/commons/content/proper/commons-codec/cobertura/org.apache.commons.codec.language.bm.PhoneticEngine.html (original)
+++ websites/production/commons/content/proper/commons-codec/cobertura/org.apache.commons.codec.language.bm.PhoneticEngine.html Sat Mar 30 06:41:30 2013
@@ -133,7 +133,7 @@
<td class="src"><pre class="src"> <span class="comment"> * @since 1.6</span></pre></td></tr>
<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 268602</td> <td class="src"><pre class="src"> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">class</span> PhonemeBuilder {</pre></td></tr>
+<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 537204</td> <td class="src"><pre class="src"> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">class</span> PhonemeBuilder {</pre></td></tr>
<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td>
@@ -154,7 +154,7 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> PhonemeBuilder empty(<span class="keyword">final</span> Languages.LanguageSet languages) {</pre></td></tr>
-<tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"> 416046</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> PhonemeBuilder(Collections.singleton(<span class="keyword">new</span> Rule.Phoneme(<span class="string">""</span>, languages)));</pre></td></tr>
+<tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"> 832092</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> PhonemeBuilder(Collections.singleton(<span class="keyword">new</span> Rule.Phoneme(<span class="string">""</span>, languages)));</pre></td></tr>
<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td>
@@ -163,9 +163,9 @@
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> Set<Rule.Phoneme> phonemes;</pre></td></tr>
<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"> 899794</td> <td class="src"><pre class="src"> <span class="keyword">private</span> PhonemeBuilder(<span class="keyword">final</span> Set<Rule.Phoneme> phonemes) {</pre></td></tr>
-<tr> <td class="numLineCover"> 74</td> <td class="nbHitsCovered"> 899794</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.phonemes = phonemes;</pre></td></tr>
-<tr> <td class="numLineCover"> 75</td> <td class="nbHitsCovered"> 899794</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"> 1799588</td> <td class="src"><pre class="src"> <span class="keyword">private</span> PhonemeBuilder(<span class="keyword">final</span> Set<Rule.Phoneme> phonemes) {</pre></td></tr>
+<tr> <td class="numLineCover"> 74</td> <td class="nbHitsCovered"> 1799588</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.phonemes = phonemes;</pre></td></tr>
+<tr> <td class="numLineCover"> 75</td> <td class="nbHitsCovered"> 1799588</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td>
@@ -182,16 +182,16 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> PhonemeBuilder append(<span class="keyword">final</span> CharSequence str) {</pre></td></tr>
-<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 151674</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Set<Rule.Phoneme> newPhonemes = <span class="keyword">new</span> LinkedHashSet<Rule.Phoneme>();</pre></td></tr>
+<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 303348</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Set<Rule.Phoneme> newPhonemes = <span class="keyword">new</span> LinkedHashSet<Rule.Phoneme>();</pre></td></tr>
<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 86</td> <td class="nbHitsCovered"><a title="Line 86: Conditional coverage 100% (2/2)."> 151674</a></td> <td class="src"><pre class="src"> <a title="Line 86: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Rule.Phoneme ph : <span class="keyword">this</span>.phonemes) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 87</td> <td class="nbHitsCovered"> 304446</td> <td class="src"><pre class="src"> newPhonemes.add(ph.append(str));</pre></td></tr>
+<tr> <td class="numLineCover"> 86</td> <td class="nbHitsCovered"><a title="Line 86: Conditional coverage 100% (2/2)."> 303348</a></td> <td class="src"><pre class="src"> <a title="Line 86: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Rule.Phoneme ph : <span class="keyword">this</span>.phonemes) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 87</td> <td class="nbHitsCovered"> 608892</td> <td class="src"><pre class="src"> newPhonemes.add(ph.append(str));</pre></td></tr>
<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"> 151674</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> PhonemeBuilder(newPhonemes);</pre></td></tr>
+<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"> 303348</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> PhonemeBuilder(newPhonemes);</pre></td></tr>
<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td>
@@ -220,15 +220,15 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> PhonemeBuilder apply(<span class="keyword">final</span> Rule.PhonemeExpr phonemeExpr, <span class="keyword">final</span> <span class="keyword">int</span> maxPhonemes) {</pre></td></tr>
-<tr> <td class="numLineCover"> 105</td> <td class="nbHitsCovered"> 63472</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Set<Rule.Phoneme> newPhonemes = <span class="keyword">new</span> LinkedHashSet<Rule.Phoneme>();</pre></td></tr>
+<tr> <td class="numLineCover"> 105</td> <td class="nbHitsCovered"> 126944</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Set<Rule.Phoneme> newPhonemes = <span class="keyword">new</span> LinkedHashSet<Rule.Phoneme>();</pre></td></tr>
<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 107</td> <td class="nbHitsCovered"><a title="Line 107: Conditional coverage 100% (2/2)."> 63472</a></td> <td class="src"><pre class="src"> <a title="Line 107: Conditional coverage 100% (2/2)."> EXPR: <span class="keyword">for</span> (<span class="keyword">final</span> Rule.Phoneme left : <span class="keyword">this</span>.phonemes) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 108</td> <td class="nbHitsCovered"><a title="Line 108: Conditional coverage 100% (2/2)."> 202954</a></td> <td class="src"><pre class="src"> <a title="Line 108: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Rule.Phoneme right : phonemeExpr.getPhonemes()) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 109</td> <td class="nbHitsCovered"> 351674</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Rule.Phoneme join = left.join(right);</pre></td></tr>
-<tr> <td class="numLineCover"> 110</td> <td class="nbHitsCovered"><a title="Line 110: Conditional coverage 100% (2/2)."> 351674</a></td> <td class="src"><pre class="src"> <a title="Line 110: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!join.getLanguages().isEmpty()) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 111</td> <td class="nbHitsCovered"><a title="Line 111: Conditional coverage 100% (2/2)."> 254974</a></td> <td class="src"><pre class="src"> <a title="Line 111: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (newPhonemes.size() < maxPhonemes) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 112</td> <td class="nbHitsCovered"> 252432</td> <td class="src"><pre class="src"> newPhonemes.add(join);</pre></td></tr>
+<tr> <td class="numLineCover"> 107</td> <td class="nbHitsCovered"><a title="Line 107: Conditional coverage 100% (2/2)."> 126944</a></td> <td class="src"><pre class="src"> <a title="Line 107: Conditional coverage 100% (2/2)."> EXPR: <span class="keyword">for</span> (<span class="keyword">final</span> Rule.Phoneme left : <span class="keyword">this</span>.phonemes) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 108</td> <td class="nbHitsCovered"><a title="Line 108: Conditional coverage 100% (2/2)."> 405908</a></td> <td class="src"><pre class="src"> <a title="Line 108: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Rule.Phoneme right : phonemeExpr.getPhonemes()) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 109</td> <td class="nbHitsCovered"> 703348</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Rule.Phoneme join = left.join(right);</pre></td></tr>
+<tr> <td class="numLineCover"> 110</td> <td class="nbHitsCovered"><a title="Line 110: Conditional coverage 100% (2/2)."> 703348</a></td> <td class="src"><pre class="src"> <a title="Line 110: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!join.getLanguages().isEmpty()) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 111</td> <td class="nbHitsCovered"><a title="Line 111: Conditional coverage 100% (2/2)."> 509948</a></td> <td class="src"><pre class="src"> <a title="Line 111: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (newPhonemes.size() < maxPhonemes) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 112</td> <td class="nbHitsCovered"> 504864</td> <td class="src"><pre class="src"> newPhonemes.add(join);</pre></td></tr>
<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td>
@@ -237,12 +237,12 @@
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 117</td> <td class="nbHitsCovered"> 349132</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 117</td> <td class="nbHitsCovered"> 698264</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"> 63472</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> PhonemeBuilder(newPhonemes);</pre></td></tr>
+<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"> 126944</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> PhonemeBuilder(newPhonemes);</pre></td></tr>
<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td>
@@ -259,7 +259,7 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> Set<Rule.Phoneme> getPhonemes() {</pre></td></tr>
-<tr> <td class="numLineCover"> 129</td> <td class="nbHitsCovered"> 550324</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>.phonemes;</pre></td></tr>
+<tr> <td class="numLineCover"> 129</td> <td class="nbHitsCovered"> 1100648</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>.phonemes;</pre></td></tr>
<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td>
@@ -280,20 +280,20 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> String makeString() {</pre></td></tr>
-<tr> <td class="numLineCover"> 140</td> <td class="nbHitsCovered"> 134324</td> <td class="src"><pre class="src"> <span class="keyword">final</span> StringBuilder sb = <span class="keyword">new</span> StringBuilder();</pre></td></tr>
+<tr> <td class="numLineCover"> 140</td> <td class="nbHitsCovered"> 268648</td> <td class="src"><pre class="src"> <span class="keyword">final</span> StringBuilder sb = <span class="keyword">new</span> StringBuilder();</pre></td></tr>
<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 142</td> <td class="nbHitsCovered"><a title="Line 142: Conditional coverage 100% (2/2)."> 134324</a></td> <td class="src"><pre class="src"> <a title="Line 142: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Rule.Phoneme ph : <span class="keyword">this</span>.phonemes) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"><a title="Line 143: Conditional coverage 100% (2/2)."> 158730</a></td> <td class="src"><pre class="src"> <a title="Line 143: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (sb.length() > 0) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 144</td> <td class="nbHitsCovered"> 24270</td> <td class="src"><pre class="src"> sb.append(<span class="string">"|"</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 142</td> <td class="nbHitsCovered"><a title="Line 142: Conditional coverage 100% (2/2)."> 268648</a></td> <td class="src"><pre class="src"> <a title="Line 142: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Rule.Phoneme ph : <span class="keyword">this</span>.phonemes) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"><a title="Line 143: Conditional coverage 100% (2/2)."> 317460</a></td> <td class="src"><pre class="src"> <a title="Line 143: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (sb.length() > 0) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 144</td> <td class="nbHitsCovered"> 48540</td> <td class="src"><pre class="src"> sb.append(<span class="string">"|"</span>);</pre></td></tr>
<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 146</td> <td class="nbHitsCovered"> 158730</td> <td class="src"><pre class="src"> sb.append(ph.getPhonemeText());</pre></td></tr>
+<tr> <td class="numLineCover"> 146</td> <td class="nbHitsCovered"> 317460</td> <td class="src"><pre class="src"> sb.append(ph.getPhonemeText());</pre></td></tr>
<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 149</td> <td class="nbHitsCovered"> 134324</td> <td class="src"><pre class="src"> <span class="keyword">return</span> sb.toString();</pre></td></tr>
+<tr> <td class="numLineCover"> 149</td> <td class="nbHitsCovered"> 268648</td> <td class="src"><pre class="src"> <span class="keyword">return</span> sb.toString();</pre></td></tr>
<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td>
@@ -344,29 +344,29 @@
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> RulesApplication(<span class="keyword">final</span> List<Rule> finalRules, <span class="keyword">final</span> CharSequence input,</pre></td></tr>
-<tr> <td class="numLineCover"> 175</td> <td class="nbHitsCovered"> 345986</td> <td class="src"><pre class="src"> <span class="keyword">final</span> PhonemeBuilder phonemeBuilder, <span class="keyword">final</span> <span class="keyword">int</span> i, <span class="keyword">final</span> <span class="keyword">int</span> maxPhonemes) {</pre></td></tr>
-<tr> <td class="numLineCover"> 176</td> <td class="nbHitsUncovered"><a title="Line 176: Conditional coverage 50% (1/2)."> 345986</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 176: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (finalRules == <span class="keyword">null</span>) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 175</td> <td class="nbHitsCovered"> 691972</td> <td class="src"><pre class="src"> <span class="keyword">final</span> PhonemeBuilder phonemeBuilder, <span class="keyword">final</span> <span class="keyword">int</span> i, <span class="keyword">final</span> <span class="keyword">int</span> maxPhonemes) {</pre></td></tr>
+<tr> <td class="numLineCover"> 176</td> <td class="nbHitsUncovered"><a title="Line 176: Conditional coverage 50% (1/2)."> 691972</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 176: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (finalRules == <span class="keyword">null</span>) {</a></span></pre></td></tr>
<tr> <td class="numLineCover"> 177</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> NullPointerException(<span class="string">"The finalRules argument must not be null"</span>);</span></pre></td></tr>
<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"> 345986</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.finalRules = finalRules;</pre></td></tr>
-<tr> <td class="numLineCover"> 180</td> <td class="nbHitsCovered"> 345986</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.phonemeBuilder = phonemeBuilder;</pre></td></tr>
-<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"> 345986</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.input = input;</pre></td></tr>
-<tr> <td class="numLineCover"> 182</td> <td class="nbHitsCovered"> 345986</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.i = i;</pre></td></tr>
-<tr> <td class="numLineCover"> 183</td> <td class="nbHitsCovered"> 345986</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.maxPhonemes = maxPhonemes;</pre></td></tr>
-<tr> <td class="numLineCover"> 184</td> <td class="nbHitsCovered"> 345986</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"> 691972</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.finalRules = finalRules;</pre></td></tr>
+<tr> <td class="numLineCover"> 180</td> <td class="nbHitsCovered"> 691972</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.phonemeBuilder = phonemeBuilder;</pre></td></tr>
+<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"> 691972</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.input = input;</pre></td></tr>
+<tr> <td class="numLineCover"> 182</td> <td class="nbHitsCovered"> 691972</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.i = i;</pre></td></tr>
+<tr> <td class="numLineCover"> 183</td> <td class="nbHitsCovered"> 691972</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.maxPhonemes = maxPhonemes;</pre></td></tr>
+<tr> <td class="numLineCover"> 184</td> <td class="nbHitsCovered"> 691972</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">int</span> getI() {</pre></td></tr>
-<tr> <td class="numLineCover"> 187</td> <td class="nbHitsCovered"> 345986</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>.i;</pre></td></tr>
+<tr> <td class="numLineCover"> 187</td> <td class="nbHitsCovered"> 691972</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>.i;</pre></td></tr>
<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> PhonemeBuilder getPhonemeBuilder() {</pre></td></tr>
-<tr> <td class="numLineCover"> 191</td> <td class="nbHitsCovered"> 345986</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>.phonemeBuilder;</pre></td></tr>
+<tr> <td class="numLineCover"> 191</td> <td class="nbHitsCovered"> 691972</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>.phonemeBuilder;</pre></td></tr>
<tr> <td class="numLine"> 192</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td>
@@ -387,72 +387,72 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> RulesApplication invoke() {</pre></td></tr>
-<tr> <td class="numLineCover"> 202</td> <td class="nbHitsCovered"> 345986</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.found = <span class="keyword">false</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 203</td> <td class="nbHitsCovered"> 345986</td> <td class="src"><pre class="src"> <span class="keyword">int</span> patternLength = 0;</pre></td></tr>
-<tr> <td class="numLineCover"> 204</td> <td class="nbHitsCovered"><a title="Line 204: Conditional coverage 100% (2/2)."> 345986</a></td> <td class="src"><pre class="src"> <a title="Line 204: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Rule rule : <span class="keyword">this</span>.finalRules) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 205</td> <td class="nbHitsCovered"> 64854992</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String pattern = rule.getPattern();</pre></td></tr>
-<tr> <td class="numLineCover"> 206</td> <td class="nbHitsCovered"> 64854992</td> <td class="src"><pre class="src"> patternLength = pattern.length();</pre></td></tr>
+<tr> <td class="numLineCover"> 202</td> <td class="nbHitsCovered"> 691972</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.found = <span class="keyword">false</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 203</td> <td class="nbHitsCovered"> 691972</td> <td class="src"><pre class="src"> <span class="keyword">int</span> patternLength = 0;</pre></td></tr>
+<tr> <td class="numLineCover"> 204</td> <td class="nbHitsCovered"><a title="Line 204: Conditional coverage 100% (2/2)."> 691972</a></td> <td class="src"><pre class="src"> <a title="Line 204: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Rule rule : <span class="keyword">this</span>.finalRules) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 205</td> <td class="nbHitsCovered"> 129709984</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String pattern = rule.getPattern();</pre></td></tr>
+<tr> <td class="numLineCover"> 206</td> <td class="nbHitsCovered"> 129709984</td> <td class="src"><pre class="src"> patternLength = pattern.length();</pre></td></tr>
<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"><a title="Line 208: Conditional coverage 100% (2/2)."> 64854992</a></td> <td class="src"><pre class="src"> <a title="Line 208: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!rule.patternAndContextMatches(<span class="keyword">this</span>.input, <span class="keyword">this</span>.i)) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"> 64791520</td> <td class="src"><pre class="src"> <span class="keyword">continue</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"><a title="Line 208: Conditional coverage 100% (2/2)."> 129709984</a></td> <td class="src"><pre class="src"> <a title="Line 208: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!rule.patternAndContextMatches(<span class="keyword">this</span>.input, <span class="keyword">this</span>.i)) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"> 129583040</td> <td class="src"><pre class="src"> <span class="keyword">continue</span>;</pre></td></tr>
<tr> <td class="numLine"> 210</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 211</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 212</td> <td class="nbHitsCovered"> 63472</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.phonemeBuilder = <span class="keyword">this</span>.phonemeBuilder.apply(rule.getPhoneme(), maxPhonemes);</pre></td></tr>
-<tr> <td class="numLineCover"> 213</td> <td class="nbHitsCovered"> 63472</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.found = <span class="keyword">true</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 214</td> <td class="nbHitsCovered"> 63472</td> <td class="src"><pre class="src"> <span class="keyword">break</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 212</td> <td class="nbHitsCovered"> 126944</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.phonemeBuilder = <span class="keyword">this</span>.phonemeBuilder.apply(rule.getPhoneme(), maxPhonemes);</pre></td></tr>
+<tr> <td class="numLineCover"> 213</td> <td class="nbHitsCovered"> 126944</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.found = <span class="keyword">true</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 214</td> <td class="nbHitsCovered"> 126944</td> <td class="src"><pre class="src"> <span class="keyword">break</span>;</pre></td></tr>
<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 217</td> <td class="nbHitsCovered"><a title="Line 217: Conditional coverage 100% (2/2)."> 345986</a></td> <td class="src"><pre class="src"> <a title="Line 217: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!<span class="keyword">this</span>.found) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 218</td> <td class="nbHitsCovered"> 282514</td> <td class="src"><pre class="src"> patternLength = 1;</pre></td></tr>
+<tr> <td class="numLineCover"> 217</td> <td class="nbHitsCovered"><a title="Line 217: Conditional coverage 100% (2/2)."> 691972</a></td> <td class="src"><pre class="src"> <a title="Line 217: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!<span class="keyword">this</span>.found) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 218</td> <td class="nbHitsCovered"> 565028</td> <td class="src"><pre class="src"> patternLength = 1;</pre></td></tr>
<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 220</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 221</td> <td class="nbHitsCovered"> 345986</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.i += patternLength;</pre></td></tr>
-<tr> <td class="numLineCover"> 222</td> <td class="nbHitsCovered"> 345986</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 221</td> <td class="nbHitsCovered"> 691972</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.i += patternLength;</pre></td></tr>
+<tr> <td class="numLineCover"> 222</td> <td class="nbHitsCovered"> 691972</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isFound() {</pre></td></tr>
-<tr> <td class="numLineCover"> 226</td> <td class="nbHitsCovered"> 203016</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>.found;</pre></td></tr>
+<tr> <td class="numLineCover"> 226</td> <td class="nbHitsCovered"> 406032</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>.found;</pre></td></tr>
<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 229</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 230</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> Map<NameType, Set<String>> NAME_PREFIXES = <span class="keyword">new</span> EnumMap<NameType, Set<String>>(NameType.<span class="keyword">class</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 230</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> Map<NameType, Set<String>> NAME_PREFIXES = <span class="keyword">new</span> EnumMap<NameType, Set<String>>(NameType.<span class="keyword">class</span>);</pre></td></tr>
<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">static</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 233</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> NAME_PREFIXES.put(NameType.ASHKENAZI,</pre></td></tr>
+<tr> <td class="numLineCover"> 233</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> NAME_PREFIXES.put(NameType.ASHKENAZI,</pre></td></tr>
<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> Collections.unmodifiableSet(</pre></td></tr>
<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> HashSet<String>(Arrays.asList(<span class="string">"bar"</span>, <span class="string">"ben"</span>, <span class="string">"da"</span>, <span class="string">"de"</span>, <span class="string">"van"</span>, <span class="string">"von"</span>))));</pre></td></tr>
-<tr> <td class="numLineCover"> 236</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> NAME_PREFIXES.put(NameType.SEPHARDIC,</pre></td></tr>
+<tr> <td class="numLineCover"> 236</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> NAME_PREFIXES.put(NameType.SEPHARDIC,</pre></td></tr>
<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> Collections.unmodifiableSet(</pre></td></tr>
<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> HashSet<String>(Arrays.asList(<span class="string">"al"</span>, <span class="string">"el"</span>, <span class="string">"da"</span>, <span class="string">"dal"</span>, <span class="string">"de"</span>, <span class="string">"del"</span>, <span class="string">"dela"</span>, <span class="string">"de la"</span>,</pre></td></tr>
<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"della"</span>, <span class="string">"des"</span>, <span class="string">"di"</span>, <span class="string">"do"</span>, <span class="string">"dos"</span>, <span class="string">"du"</span>, <span class="string">"van"</span>, <span class="string">"von"</span>))));</pre></td></tr>
-<tr> <td class="numLineCover"> 240</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> NAME_PREFIXES.put(NameType.GENERIC,</pre></td></tr>
+<tr> <td class="numLineCover"> 240</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> NAME_PREFIXES.put(NameType.GENERIC,</pre></td></tr>
<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> Collections.unmodifiableSet(</pre></td></tr>
<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> HashSet<String>(Arrays.asList(<span class="string">"da"</span>, <span class="string">"dal"</span>, <span class="string">"de"</span>, <span class="string">"del"</span>, <span class="string">"dela"</span>, <span class="string">"de la"</span>, <span class="string">"della"</span>,</pre></td></tr>
<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"des"</span>, <span class="string">"di"</span>, <span class="string">"do"</span>, <span class="string">"dos"</span>, <span class="string">"du"</span>, <span class="string">"van"</span>, <span class="string">"von"</span>))));</pre></td></tr>
-<tr> <td class="numLineCover"> 244</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 244</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td>
@@ -471,8 +471,8 @@
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> CharSequence cacheSubSequence(<span class="keyword">final</span> CharSequence cached) {</pre></td></tr>
<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// return cached;</span></pre></td></tr>
-<tr> <td class="numLineCover"> 254</td> <td class="nbHitsCovered"> 416046</td> <td class="src"><pre class="src"> <span class="keyword">final</span> CharSequence[][] cache = <span class="keyword">new</span> CharSequence[cached.length()][cached.length()];</pre></td></tr>
-<tr> <td class="numLineCover"> 255</td> <td class="nbHitsCovered"> 416046</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> CharSequence() {</pre></td></tr>
+<tr> <td class="numLineCover"> 254</td> <td class="nbHitsCovered"> 832092</td> <td class="src"><pre class="src"> <span class="keyword">final</span> CharSequence[][] cache = <span class="keyword">new</span> CharSequence[cached.length()][cached.length()];</pre></td></tr>
+<tr> <td class="numLineCover"> 255</td> <td class="nbHitsCovered"> 832092</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> CharSequence() {</pre></td></tr>
<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> @Override</pre></td></tr>
<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td>
@@ -486,7 +486,7 @@
<td class="src"><pre class="src"> @Override</pre></td></tr>
<tr> <td class="numLine"> 262</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">int</span> length() {</pre></td></tr>
-<tr> <td class="numLineCover"> 263</td> <td class="nbHitsCovered"> 66020002</td> <td class="src"><pre class="src"> <span class="keyword">return</span> cached.length();</pre></td></tr>
+<tr> <td class="numLineCover"> 263</td> <td class="nbHitsCovered"> 132040004</td> <td class="src"><pre class="src"> <span class="keyword">return</span> cached.length();</pre></td></tr>
<tr> <td class="numLine"> 264</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 265</td> <td class="nbHits"> </td>
@@ -495,19 +495,19 @@
<td class="src"><pre class="src"> @Override</pre></td></tr>
<tr> <td class="numLine"> 267</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> CharSequence subSequence(<span class="keyword">final</span> <span class="keyword">int</span> start, <span class="keyword">final</span> <span class="keyword">int</span> end) {</pre></td></tr>
-<tr> <td class="numLineCover"> 268</td> <td class="nbHitsCovered"><a title="Line 268: Conditional coverage 100% (2/2)."> 39169482</a></td> <td class="src"><pre class="src"> <a title="Line 268: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (start == end) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 269</td> <td class="nbHitsCovered"> 51870</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="string">""</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 268</td> <td class="nbHitsCovered"><a title="Line 268: Conditional coverage 100% (2/2)."> 78338964</a></td> <td class="src"><pre class="src"> <a title="Line 268: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (start == end) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 269</td> <td class="nbHitsCovered"> 103740</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="string">""</span>;</pre></td></tr>
<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 271</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 272</td> <td class="nbHitsCovered"> 39117612</td> <td class="src"><pre class="src"> CharSequence res = cache[start][end - 1];</pre></td></tr>
-<tr> <td class="numLineCover"> 273</td> <td class="nbHitsCovered"><a title="Line 273: Conditional coverage 100% (2/2)."> 39117612</a></td> <td class="src"><pre class="src"> <a title="Line 273: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (res == <span class="keyword">null</span>) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 274</td> <td class="nbHitsCovered"> 960070</td> <td class="src"><pre class="src"> res = cached.subSequence(start, end);</pre></td></tr>
-<tr> <td class="numLineCover"> 275</td> <td class="nbHitsCovered"> 960070</td> <td class="src"><pre class="src"> cache[start][end - 1] = res;</pre></td></tr>
+<tr> <td class="numLineCover"> 272</td> <td class="nbHitsCovered"> 78235224</td> <td class="src"><pre class="src"> CharSequence res = cache[start][end - 1];</pre></td></tr>
+<tr> <td class="numLineCover"> 273</td> <td class="nbHitsCovered"><a title="Line 273: Conditional coverage 100% (2/2)."> 78235224</a></td> <td class="src"><pre class="src"> <a title="Line 273: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (res == <span class="keyword">null</span>) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 274</td> <td class="nbHitsCovered"> 1920140</td> <td class="src"><pre class="src"> res = cached.subSequence(start, end);</pre></td></tr>
+<tr> <td class="numLineCover"> 275</td> <td class="nbHitsCovered"> 1920140</td> <td class="src"><pre class="src"> cache[start][end - 1] = res;</pre></td></tr>
<tr> <td class="numLine"> 276</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 277</td> <td class="nbHitsCovered"> 39117612</td> <td class="src"><pre class="src"> <span class="keyword">return</span> res;</pre></td></tr>
+<tr> <td class="numLineCover"> 277</td> <td class="nbHitsCovered"> 78235224</td> <td class="src"><pre class="src"> <span class="keyword">return</span> res;</pre></td></tr>
<tr> <td class="numLine"> 278</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 279</td> <td class="nbHits"> </td>
@@ -530,19 +530,19 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 288</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> String join(<span class="keyword">final</span> Iterable<String> strings, <span class="keyword">final</span> String sep) {</pre></td></tr>
-<tr> <td class="numLineCover"> 289</td> <td class="nbHitsCovered"> 134256</td> <td class="src"><pre class="src"> <span class="keyword">final</span> StringBuilder sb = <span class="keyword">new</span> StringBuilder();</pre></td></tr>
-<tr> <td class="numLineCover"> 290</td> <td class="nbHitsCovered"> 134256</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Iterator<String> si = strings.iterator();</pre></td></tr>
-<tr> <td class="numLineCover"> 291</td> <td class="nbHitsUncovered"><a title="Line 291: Conditional coverage 50% (1/2)."> 134256</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 291: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (si.hasNext()) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 292</td> <td class="nbHitsCovered"> 134256</td> <td class="src"><pre class="src"> sb.append(si.next());</pre></td></tr>
+<tr> <td class="numLineCover"> 289</td> <td class="nbHitsCovered"> 268512</td> <td class="src"><pre class="src"> <span class="keyword">final</span> StringBuilder sb = <span class="keyword">new</span> StringBuilder();</pre></td></tr>
+<tr> <td class="numLineCover"> 290</td> <td class="nbHitsCovered"> 268512</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Iterator<String> si = strings.iterator();</pre></td></tr>
+<tr> <td class="numLineCover"> 291</td> <td class="nbHitsUncovered"><a title="Line 291: Conditional coverage 50% (1/2)."> 268512</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 291: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (si.hasNext()) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 292</td> <td class="nbHitsCovered"> 268512</td> <td class="src"><pre class="src"> sb.append(si.next());</pre></td></tr>
<tr> <td class="numLine"> 293</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 294</td> <td class="nbHitsCovered"><a title="Line 294: Conditional coverage 100% (2/2)."> 134298</a></td> <td class="src"><pre class="src"> <a title="Line 294: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (si.hasNext()) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 295</td> <td class="nbHitsCovered"> 42</td> <td class="src"><pre class="src"> sb.append(sep).append(si.next());</pre></td></tr>
+<tr> <td class="numLineCover"> 294</td> <td class="nbHitsCovered"><a title="Line 294: Conditional coverage 100% (2/2)."> 268596</a></td> <td class="src"><pre class="src"> <a title="Line 294: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (si.hasNext()) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 295</td> <td class="nbHitsCovered"> 84</td> <td class="src"><pre class="src"> sb.append(sep).append(si.next());</pre></td></tr>
<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 298</td> <td class="nbHitsCovered"> 134256</td> <td class="src"><pre class="src"> <span class="keyword">return</span> sb.toString();</pre></td></tr>
+<tr> <td class="numLineCover"> 298</td> <td class="nbHitsCovered"> 268512</td> <td class="src"><pre class="src"> <span class="keyword">return</span> sb.toString();</pre></td></tr>
<tr> <td class="numLine"> 299</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 300</td> <td class="nbHits"> </td>
@@ -593,8 +593,8 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 323</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> PhoneticEngine(<span class="keyword">final</span> NameType nameType, <span class="keyword">final</span> RuleType ruleType, <span class="keyword">final</span> <span class="keyword">boolean</span> concat) {</pre></td></tr>
-<tr> <td class="numLineCover"> 324</td> <td class="nbHitsCovered"> 192</td> <td class="src"><pre class="src"> <span class="keyword">this</span>(nameType, ruleType, concat, DEFAULT_MAX_PHONEMES);</pre></td></tr>
-<tr> <td class="numLineCover"> 325</td> <td class="nbHitsCovered"> 192</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 324</td> <td class="nbHitsCovered"> 384</td> <td class="src"><pre class="src"> <span class="keyword">this</span>(nameType, ruleType, concat, DEFAULT_MAX_PHONEMES);</pre></td></tr>
+<tr> <td class="numLineCover"> 325</td> <td class="nbHitsCovered"> 384</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 327</td> <td class="nbHits"> </td>
@@ -625,17 +625,17 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 340</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> PhoneticEngine(<span class="keyword">final</span> NameType nameType, <span class="keyword">final</span> RuleType ruleType, <span class="keyword">final</span> <span class="keyword">boolean</span> concat,</pre></td></tr>
-<tr> <td class="numLineCover"> 341</td> <td class="nbHitsCovered"> 256</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">int</span> maxPhonemes) {</pre></td></tr>
-<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"><a title="Line 342: Conditional coverage 100% (2/2)."> 256</a></td> <td class="src"><pre class="src"> <a title="Line 342: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (ruleType == RuleType.RULES) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 343</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> IllegalArgumentException(<span class="string">"ruleType must not be "</span> + RuleType.RULES);</pre></td></tr>
+<tr> <td class="numLineCover"> 341</td> <td class="nbHitsCovered"> 512</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">int</span> maxPhonemes) {</pre></td></tr>
+<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"><a title="Line 342: Conditional coverage 100% (2/2)."> 512</a></td> <td class="src"><pre class="src"> <a title="Line 342: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (ruleType == RuleType.RULES) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 343</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> IllegalArgumentException(<span class="string">"ruleType must not be "</span> + RuleType.RULES);</pre></td></tr>
<tr> <td class="numLine"> 344</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 345</td> <td class="nbHitsCovered"> 254</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.nameType = nameType;</pre></td></tr>
-<tr> <td class="numLineCover"> 346</td> <td class="nbHitsCovered"> 254</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.ruleType = ruleType;</pre></td></tr>
-<tr> <td class="numLineCover"> 347</td> <td class="nbHitsCovered"> 254</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.concat = concat;</pre></td></tr>
-<tr> <td class="numLineCover"> 348</td> <td class="nbHitsCovered"> 254</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lang = Lang.instance(nameType);</pre></td></tr>
-<tr> <td class="numLineCover"> 349</td> <td class="nbHitsCovered"> 254</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.maxPhonemes = maxPhonemes;</pre></td></tr>
-<tr> <td class="numLineCover"> 350</td> <td class="nbHitsCovered"> 254</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 345</td> <td class="nbHitsCovered"> 508</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.nameType = nameType;</pre></td></tr>
+<tr> <td class="numLineCover"> 346</td> <td class="nbHitsCovered"> 508</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.ruleType = ruleType;</pre></td></tr>
+<tr> <td class="numLineCover"> 347</td> <td class="nbHitsCovered"> 508</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.concat = concat;</pre></td></tr>
+<tr> <td class="numLineCover"> 348</td> <td class="nbHitsCovered"> 508</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lang = Lang.instance(nameType);</pre></td></tr>
+<tr> <td class="numLineCover"> 349</td> <td class="nbHitsCovered"> 508</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.maxPhonemes = maxPhonemes;</pre></td></tr>
+<tr> <td class="numLineCover"> 350</td> <td class="nbHitsCovered"> 508</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 351</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 352</td> <td class="nbHits"> </td>
@@ -656,49 +656,49 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 360</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> PhonemeBuilder applyFinalRules(<span class="keyword">final</span> PhonemeBuilder phonemeBuilder, <span class="keyword">final</span> List<Rule> finalRules) {</pre></td></tr>
-<tr> <td class="numLineCover"> 361</td> <td class="nbHitsUncovered"><a title="Line 361: Conditional coverage 50% (1/2)."> 268648</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 361: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (finalRules == <span class="keyword">null</span>) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 361</td> <td class="nbHitsUncovered"><a title="Line 361: Conditional coverage 50% (1/2)."> 537296</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 361: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (finalRules == <span class="keyword">null</span>) {</a></span></pre></td></tr>
<tr> <td class="numLineCover"> 362</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> NullPointerException(<span class="string">"finalRules can not be null"</span>);</span></pre></td></tr>
<tr> <td class="numLine"> 363</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 364</td> <td class="nbHitsCovered"><a title="Line 364: Conditional coverage 100% (2/2)."> 268648</a></td> <td class="src"><pre class="src"> <a title="Line 364: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (finalRules.isEmpty()) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 365</td> <td class="nbHitsCovered"> 46</td> <td class="src"><pre class="src"> <span class="keyword">return</span> phonemeBuilder;</pre></td></tr>
+<tr> <td class="numLineCover"> 364</td> <td class="nbHitsCovered"><a title="Line 364: Conditional coverage 100% (2/2)."> 537296</a></td> <td class="src"><pre class="src"> <a title="Line 364: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (finalRules.isEmpty()) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 365</td> <td class="nbHitsCovered"> 92</td> <td class="src"><pre class="src"> <span class="keyword">return</span> phonemeBuilder;</pre></td></tr>
<tr> <td class="numLine"> 366</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 368</td> <td class="nbHitsCovered"> 268602</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Set<Rule.Phoneme> phonemes = <span class="keyword">new</span> TreeSet<Rule.Phoneme>(Rule.Phoneme.COMPARATOR);</pre></td></tr>
+<tr> <td class="numLineCover"> 368</td> <td class="nbHitsCovered"> 537204</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Set<Rule.Phoneme> phonemes = <span class="keyword">new</span> TreeSet<Rule.Phoneme>(Rule.Phoneme.COMPARATOR);</pre></td></tr>
<tr> <td class="numLine"> 369</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 370</td> <td class="nbHitsCovered"><a title="Line 370: Conditional coverage 100% (2/2)."> 268602</a></td> <td class="src"><pre class="src"> <a title="Line 370: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Rule.Phoneme phoneme : phonemeBuilder.getPhonemes()) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 371</td> <td class="nbHitsCovered"> 281722</td> <td class="src"><pre class="src"> PhonemeBuilder subBuilder = PhonemeBuilder.empty(phoneme.getLanguages());</pre></td></tr>
-<tr> <td class="numLineCover"> 372</td> <td class="nbHitsCovered"> 281722</td> <td class="src"><pre class="src"> <span class="keyword">final</span> CharSequence phonemeText = cacheSubSequence(phoneme.getPhonemeText());</pre></td></tr>
+<tr> <td class="numLineCover"> 370</td> <td class="nbHitsCovered"><a title="Line 370: Conditional coverage 100% (2/2)."> 537204</a></td> <td class="src"><pre class="src"> <a title="Line 370: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Rule.Phoneme phoneme : phonemeBuilder.getPhonemes()) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 371</td> <td class="nbHitsCovered"> 563444</td> <td class="src"><pre class="src"> PhonemeBuilder subBuilder = PhonemeBuilder.empty(phoneme.getLanguages());</pre></td></tr>
+<tr> <td class="numLineCover"> 372</td> <td class="nbHitsCovered"> 563444</td> <td class="src"><pre class="src"> <span class="keyword">final</span> CharSequence phonemeText = cacheSubSequence(phoneme.getPhonemeText());</pre></td></tr>
<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"><a title="Line 374: Conditional coverage 100% (2/2)."> 281722</a></td> <td class="src"><pre class="src"> <a title="Line 374: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < phonemeText.length();) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 375</td> <td class="nbHitsCovered"> 203016</td> <td class="src"><pre class="src"> <span class="keyword">final</span> RulesApplication rulesApplication =</pre></td></tr>
+<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"><a title="Line 374: Conditional coverage 100% (2/2)."> 563444</a></td> <td class="src"><pre class="src"> <a title="Line 374: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < phonemeText.length();) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 375</td> <td class="nbHitsCovered"> 406032</td> <td class="src"><pre class="src"> <span class="keyword">final</span> RulesApplication rulesApplication =</pre></td></tr>
<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> RulesApplication(finalRules, phonemeText, subBuilder, i, maxPhonemes).invoke();</pre></td></tr>
-<tr> <td class="numLineCover"> 377</td> <td class="nbHitsCovered"> 203016</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">boolean</span> found = rulesApplication.isFound();</pre></td></tr>
-<tr> <td class="numLineCover"> 378</td> <td class="nbHitsCovered"> 203016</td> <td class="src"><pre class="src"> subBuilder = rulesApplication.getPhonemeBuilder();</pre></td></tr>
+<tr> <td class="numLineCover"> 377</td> <td class="nbHitsCovered"> 406032</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">boolean</span> found = rulesApplication.isFound();</pre></td></tr>
+<tr> <td class="numLineCover"> 378</td> <td class="nbHitsCovered"> 406032</td> <td class="src"><pre class="src"> subBuilder = rulesApplication.getPhonemeBuilder();</pre></td></tr>
<tr> <td class="numLine"> 379</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 380</td> <td class="nbHitsCovered"><a title="Line 380: Conditional coverage 100% (2/2)."> 203016</a></td> <td class="src"><pre class="src"> <a title="Line 380: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!found) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 380</td> <td class="nbHitsCovered"><a title="Line 380: Conditional coverage 100% (2/2)."> 406032</a></td> <td class="src"><pre class="src"> <a title="Line 380: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!found) {</a></pre></td></tr>
<tr> <td class="numLine"> 381</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// not found, appending as-is</span></pre></td></tr>
-<tr> <td class="numLineCover"> 382</td> <td class="nbHitsCovered"> 151674</td> <td class="src"><pre class="src"> subBuilder = subBuilder.append(phonemeText.subSequence(i, i + 1));</pre></td></tr>
+<tr> <td class="numLineCover"> 382</td> <td class="nbHitsCovered"> 303348</td> <td class="src"><pre class="src"> subBuilder = subBuilder.append(phonemeText.subSequence(i, i + 1));</pre></td></tr>
<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 385</td> <td class="nbHitsCovered"> 203016</td> <td class="src"><pre class="src"> i = rulesApplication.getI();</pre></td></tr>
-<tr> <td class="numLineCover"> 386</td> <td class="nbHitsCovered"> 203016</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 385</td> <td class="nbHitsCovered"> 406032</td> <td class="src"><pre class="src"> i = rulesApplication.getI();</pre></td></tr>
+<tr> <td class="numLineCover"> 386</td> <td class="nbHitsCovered"> 406032</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 388</td> <td class="nbHitsCovered"> 281722</td> <td class="src"><pre class="src"> phonemes.addAll(subBuilder.getPhonemes());</pre></td></tr>
-<tr> <td class="numLineCover"> 389</td> <td class="nbHitsCovered"> 281722</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 388</td> <td class="nbHitsCovered"> 563444</td> <td class="src"><pre class="src"> phonemes.addAll(subBuilder.getPhonemes());</pre></td></tr>
+<tr> <td class="numLineCover"> 389</td> <td class="nbHitsCovered"> 563444</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 391</td> <td class="nbHitsCovered"> 268602</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> PhonemeBuilder(phonemes);</pre></td></tr>
+<tr> <td class="numLineCover"> 391</td> <td class="nbHitsCovered"> 537204</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> PhonemeBuilder(phonemes);</pre></td></tr>
<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 393</td> <td class="nbHits"> </td>
@@ -719,8 +719,8 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> String encode(<span class="keyword">final</span> String input) {</pre></td></tr>
-<tr> <td class="numLineCover"> 402</td> <td class="nbHitsCovered"> 134288</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Languages.LanguageSet languageSet = <span class="keyword">this</span>.lang.guessLanguages(input);</pre></td></tr>
-<tr> <td class="numLineCover"> 403</td> <td class="nbHitsCovered"> 134288</td> <td class="src"><pre class="src"> <span class="keyword">return</span> encode(input, languageSet);</pre></td></tr>
+<tr> <td class="numLineCover"> 402</td> <td class="nbHitsCovered"> 268576</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Languages.LanguageSet languageSet = <span class="keyword">this</span>.lang.guessLanguages(input);</pre></td></tr>
+<tr> <td class="numLineCover"> 403</td> <td class="nbHitsCovered"> 268576</td> <td class="src"><pre class="src"> <span class="keyword">return</span> encode(input, languageSet);</pre></td></tr>
<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td>
@@ -745,38 +745,38 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> String encode(String input, <span class="keyword">final</span> Languages.LanguageSet languageSet) {</pre></td></tr>
-<tr> <td class="numLineCover"> 416</td> <td class="nbHitsCovered"> 134336</td> <td class="src"><pre class="src"> <span class="keyword">final</span> List<Rule> rules = Rule.getInstance(<span class="keyword">this</span>.nameType, RuleType.RULES, languageSet);</pre></td></tr>
+<tr> <td class="numLineCover"> 416</td> <td class="nbHitsCovered"> 268672</td> <td class="src"><pre class="src"> <span class="keyword">final</span> List<Rule> rules = Rule.getInstance(<span class="keyword">this</span>.nameType, RuleType.RULES, languageSet);</pre></td></tr>
<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// rules common across many (all) languages</span></pre></td></tr>
-<tr> <td class="numLineCover"> 418</td> <td class="nbHitsCovered"> 134336</td> <td class="src"><pre class="src"> <span class="keyword">final</span> List<Rule> finalRules1 = Rule.getInstance(<span class="keyword">this</span>.nameType, <span class="keyword">this</span>.ruleType, <span class="string">"common"</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 418</td> <td class="nbHitsCovered"> 268672</td> <td class="src"><pre class="src"> <span class="keyword">final</span> List<Rule> finalRules1 = Rule.getInstance(<span class="keyword">this</span>.nameType, <span class="keyword">this</span>.ruleType, <span class="string">"common"</span>);</pre></td></tr>
<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// rules that apply to a specific language that may be ambiguous or wrong if applied to other languages</span></pre></td></tr>
-<tr> <td class="numLineCover"> 420</td> <td class="nbHitsCovered"> 134336</td> <td class="src"><pre class="src"> <span class="keyword">final</span> List<Rule> finalRules2 = Rule.getInstance(<span class="keyword">this</span>.nameType, <span class="keyword">this</span>.ruleType, languageSet);</pre></td></tr>
+<tr> <td class="numLineCover"> 420</td> <td class="nbHitsCovered"> 268672</td> <td class="src"><pre class="src"> <span class="keyword">final</span> List<Rule> finalRules2 = Rule.getInstance(<span class="keyword">this</span>.nameType, <span class="keyword">this</span>.ruleType, languageSet);</pre></td></tr>
<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 422</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// tidy the input</span></pre></td></tr>
<tr> <td class="numLine"> 423</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// lower case is a locale-dependent operation</span></pre></td></tr>
-<tr> <td class="numLineCover"> 424</td> <td class="nbHitsCovered"> 134336</td> <td class="src"><pre class="src"> input = input.toLowerCase(Locale.ENGLISH).replace(<span class="string">'-'</span>, <span class="string">' '</span>).trim();</pre></td></tr>
+<tr> <td class="numLineCover"> 424</td> <td class="nbHitsCovered"> 268672</td> <td class="src"><pre class="src"> input = input.toLowerCase(Locale.ENGLISH).replace(<span class="string">'-'</span>, <span class="string">' '</span>).trim();</pre></td></tr>
<tr> <td class="numLine"> 425</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 426</td> <td class="nbHitsCovered"><a title="Line 426: Conditional coverage 100% (2/2)."> 134336</a></td> <td class="src"><pre class="src"> <a title="Line 426: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.nameType == NameType.GENERIC) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 427</td> <td class="nbHitsCovered"><a title="Line 427: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 134250</a></td> <td class="src"><pre class="src"> <a title="Line 427: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (input.length() >= 2 && input.substring(0, 2).equals(<span class="string">"d'"</span>)) { <span class="comment">// check for d'</span></a></pre></td></tr>
-<tr> <td class="numLineCover"> 428</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String remainder = input.substring(2);</pre></td></tr>
-<tr> <td class="numLineCover"> 429</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String combined = <span class="string">"d"</span> + remainder;</pre></td></tr>
-<tr> <td class="numLineCover"> 430</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="string">"("</span> + encode(remainder) + <span class="string">")-("</span> + encode(combined) + <span class="string">")"</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 426</td> <td class="nbHitsCovered"><a title="Line 426: Conditional coverage 100% (2/2)."> 268672</a></td> <td class="src"><pre class="src"> <a title="Line 426: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.nameType == NameType.GENERIC) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 427</td> <td class="nbHitsCovered"><a title="Line 427: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 268500</a></td> <td class="src"><pre class="src"> <a title="Line 427: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (input.length() >= 2 && input.substring(0, 2).equals(<span class="string">"d'"</span>)) { <span class="comment">// check for d'</span></a></pre></td></tr>
+<tr> <td class="numLineCover"> 428</td> <td class="nbHitsCovered"> 20</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String remainder = input.substring(2);</pre></td></tr>
+<tr> <td class="numLineCover"> 429</td> <td class="nbHitsCovered"> 20</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String combined = <span class="string">"d"</span> + remainder;</pre></td></tr>
+<tr> <td class="numLineCover"> 430</td> <td class="nbHitsCovered"> 20</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="string">"("</span> + encode(remainder) + <span class="string">")-("</span> + encode(combined) + <span class="string">")"</span>;</pre></td></tr>
<tr> <td class="numLine"> 431</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 432</td> <td class="nbHitsCovered"><a title="Line 432: Conditional coverage 100% (2/2)."> 134240</a></td> <td class="src"><pre class="src"> <a title="Line 432: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> String l : NAME_PREFIXES.get(<span class="keyword">this</span>.nameType)) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 432</td> <td class="nbHitsCovered"><a title="Line 432: Conditional coverage 100% (2/2)."> 268480</a></td> <td class="src"><pre class="src"> <a title="Line 432: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> String l : NAME_PREFIXES.get(<span class="keyword">this</span>.nameType)) {</a></pre></td></tr>
<tr> <td class="numLine"> 433</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// handle generic prefixes</span></pre></td></tr>
-<tr> <td class="numLineCover"> 434</td> <td class="nbHitsCovered"><a title="Line 434: Conditional coverage 100% (2/2)."> 1879336</a></td> <td class="src"><pre class="src"> <a title="Line 434: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (input.startsWith(l + <span class="string">" "</span>)) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 434</td> <td class="nbHitsCovered"><a title="Line 434: Conditional coverage 100% (2/2)."> 3758672</a></td> <td class="src"><pre class="src"> <a title="Line 434: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (input.startsWith(l + <span class="string">" "</span>)) {</a></pre></td></tr>
<tr> <td class="numLine"> 435</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// check for any prefix in the words list</span></pre></td></tr>
-<tr> <td class="numLineCover"> 436</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String remainder = input.substring(l.length() + 1); <span class="comment">// input without the prefix</span></pre></td></tr>
-<tr> <td class="numLineCover"> 437</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String combined = l + remainder; <span class="comment">// input with prefix without space</span></pre></td></tr>
-<tr> <td class="numLineCover"> 438</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="string">"("</span> + encode(remainder) + <span class="string">")-("</span> + encode(combined) + <span class="string">")"</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 436</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String remainder = input.substring(l.length() + 1); <span class="comment">// input without the prefix</span></pre></td></tr>
+<tr> <td class="numLineCover"> 437</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String combined = l + remainder; <span class="comment">// input with prefix without space</span></pre></td></tr>
+<tr> <td class="numLineCover"> 438</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="string">"("</span> + encode(remainder) + <span class="string">")-("</span> + encode(combined) + <span class="string">")"</span>;</pre></td></tr>
<tr> <td class="numLine"> 439</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 440</td> <td class="nbHits"> </td>
@@ -785,31 +785,31 @@
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 442</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 443</td> <td class="nbHitsCovered"> 134324</td> <td class="src"><pre class="src"> <span class="keyword">final</span> List<String> words = Arrays.asList(input.split(<span class="string">"\\s+"</span>));</pre></td></tr>
-<tr> <td class="numLineCover"> 444</td> <td class="nbHitsCovered"> 134324</td> <td class="src"><pre class="src"> <span class="keyword">final</span> List<String> words2 = <span class="keyword">new</span> ArrayList<String>();</pre></td></tr>
+<tr> <td class="numLineCover"> 443</td> <td class="nbHitsCovered"> 268648</td> <td class="src"><pre class="src"> <span class="keyword">final</span> List<String> words = Arrays.asList(input.split(<span class="string">"\\s+"</span>));</pre></td></tr>
+<tr> <td class="numLineCover"> 444</td> <td class="nbHitsCovered"> 268648</td> <td class="src"><pre class="src"> <span class="keyword">final</span> List<String> words2 = <span class="keyword">new</span> ArrayList<String>();</pre></td></tr>
<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 446</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// special-case handling of word prefixes based upon the name type</span></pre></td></tr>
-<tr> <td class="numLineCover"> 447</td> <td class="nbHitsUncovered"><a title="Line 447: Conditional coverage 75% (3/4)."> 134324</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 447: Conditional coverage 75% (3/4)."> <span class="keyword">switch</span> (<span class="keyword">this</span>.nameType) {</a></span></pre></td></tr>
[... 139 lines stripped ...]