<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://invarians.org/index.php?action=history&amp;feed=atom&amp;title=The_Principia_Machina%2FTPC-PY%2Fgen_cluster_corpus.py</id>
	<title>The Principia Machina/TPC-PY/gen cluster corpus.py - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://invarians.org/index.php?action=history&amp;feed=atom&amp;title=The_Principia_Machina%2FTPC-PY%2Fgen_cluster_corpus.py"/>
	<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/gen_cluster_corpus.py&amp;action=history"/>
	<updated>2026-10-21T11:16:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/gen_cluster_corpus.py&amp;diff=4819&amp;oldid=prev</id>
		<title>BFP Rauch: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/gen_cluster_corpus.py&amp;diff=4819&amp;oldid=prev"/>
		<updated>2026-09-30T02:11:02Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:11, 30 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key pma_cutover_20261020t051351z-soft_:diff:1.41:old-4818:rev-4819 --&gt;
&lt;/table&gt;</summary>
		<author><name>BFP Rauch</name></author>
	</entry>
	<entry>
		<id>https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/gen_cluster_corpus.py&amp;diff=4818&amp;oldid=prev</id>
		<title>BFP Rauch: TPC-PY source gen_cluster_corpus.py (0.3.0), SHA-256 f9c06c6035e7a1fa; conformed TPS 0.4.0; PROPOSED, not declared (TPC-PY 0.2.0)</title>
		<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/gen_cluster_corpus.py&amp;diff=4818&amp;oldid=prev"/>
		<updated>2026-09-30T02:10:58Z</updated>

		<summary type="html">&lt;p&gt;TPC-PY source gen_cluster_corpus.py (0.3.0), SHA-256 f9c06c6035e7a1fa; conformed TPS 0.4.0; PROPOSED, not declared (TPC-PY 0.2.0)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:10, 30 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l141&quot;&gt;Line 141:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 141:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;here = os.path.dirname(os.path.abspath(__file__))&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;here = os.path.dirname(os.path.abspath(__file__))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;json.dump({&amp;quot;corpus&amp;quot;: &amp;quot;cluster&amp;quot;, &amp;quot;version&amp;quot;: &amp;quot;0.3.0&amp;quot;, &amp;quot;cases&amp;quot;: out},&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;json.dump({&amp;quot;corpus&amp;quot;: &amp;quot;cluster&amp;quot;, &amp;quot;version&amp;quot;: &amp;quot;0.3.0&amp;quot;, &amp;quot;cases&amp;quot;: out},&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           open(os.path.join(here, &quot;cluster_corpus.json&quot;), &quot;w&quot;), indent=1,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           open(os.path.join(here, &quot;cluster_corpus.json&quot;), &quot;w&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;, encoding=&quot;utf-8&quot;, newline=&quot;\n&lt;/ins&gt;&quot;), indent=1,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           sort_keys=True)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           sort_keys=True)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;print(&amp;quot;cases&amp;quot;, len(out))&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;print(&amp;quot;cases&amp;quot;, len(out))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l148&quot;&gt;Line 148:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 148:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;old_path = os.path.join(here, &amp;quot;cluster_corpus_0_2_0.json&amp;quot;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;old_path = os.path.join(here, &amp;quot;cluster_corpus_0_2_0.json&amp;quot;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if os.path.exists(old_path):&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if os.path.exists(old_path):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     old = json.load(open(old_path))[&quot;cases&quot;]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     old = json.load(open(old_path&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, encoding=&quot;utf-8&quot;&lt;/ins&gt;))[&quot;cases&quot;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     same = 0&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     same = 0&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     for a, b in zip(old, out[:26]):&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     for a, b in zip(old, out[:26]):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>BFP Rauch</name></author>
	</entry>
	<entry>
		<id>https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/gen_cluster_corpus.py&amp;diff=4143&amp;oldid=prev</id>
		<title>BFP Rauch: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/gen_cluster_corpus.py&amp;diff=4143&amp;oldid=prev"/>
		<updated>2026-09-28T04:32:53Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:32, 28 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>BFP Rauch</name></author>
	</entry>
	<entry>
		<id>https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/gen_cluster_corpus.py&amp;diff=4142&amp;oldid=prev</id>
		<title>BFP Rauch: TPC-PY source gen_cluster_corpus.py (0.3.0), SHA-256 3ca95a2f20b2809a; conformed TPS 0.3.0; PROPOSED, not declared (CO-8)</title>
		<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/gen_cluster_corpus.py&amp;diff=4142&amp;oldid=prev"/>
		<updated>2026-09-27T15:43:18Z</updated>

		<summary type="html">&lt;p&gt;TPC-PY source gen_cluster_corpus.py (0.3.0), SHA-256 3ca95a2f20b2809a; conformed TPS 0.3.0; PROPOSED, not declared (CO-8)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;quot;&amp;quot;&amp;quot;gen_cluster_corpus 0.3.0: builds cluster_corpus.json for tpc_cluster 0.3.0.&lt;br /&gt;
The 26 cases of 0.2.0 (C01-C26) are carried verbatim, computed by the&lt;br /&gt;
amended function without a paired input, and proved byte-identical to&lt;br /&gt;
cluster_corpus_0_2_0.json (names, rows, params, expected) when that file&lt;br /&gt;
sits beside this script; the FIXED-SET cases (P01-P20) and the&lt;br /&gt;
resolving_step cases (R01-R20) are new. Expectations are computed by&lt;br /&gt;
tpc_cluster.py and pinned; hand_checked cases were also worked by hand&lt;br /&gt;
(the cluster speculation&amp;#039;s appendix A, the docs&amp;#039; specimen, F30&amp;#039;s table).&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
import json&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))&lt;br /&gt;
from tpc_cluster import run_case  # noqa: E402&lt;br /&gt;
&lt;br /&gt;
P = {&amp;quot;in_max&amp;quot;: 2.5, &amp;quot;cusp_max&amp;quot;: 3.5, &amp;quot;z&amp;quot;: 1.645, &amp;quot;spacing_floor&amp;quot;: 0.0}&lt;br /&gt;
PF = {&amp;quot;in_max&amp;quot;: 2.5, &amp;quot;cusp_max&amp;quot;: 3.5, &amp;quot;z&amp;quot;: 1.645, &amp;quot;spacing_floor&amp;quot;: 0.5}&lt;br /&gt;
P1 = {&amp;quot;in_max&amp;quot;: 2.5, &amp;quot;cusp_max&amp;quot;: 3.5, &amp;quot;z&amp;quot;: 1.0, &amp;quot;spacing_floor&amp;quot;: 0.0}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def one(*triples):  # single-configuration rows&lt;br /&gt;
    return [[t[0], &amp;quot;default&amp;quot;, t[1], t[2]] for t in triples]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def rows(*quads):&lt;br /&gt;
    return [list(q) for q in quads]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# ---- the 26 cases of 0.2.0, verbatim ------------------------------------&lt;br /&gt;
cases = [&lt;br /&gt;
 (&amp;quot;C01 user example A&amp;quot;, one((&amp;quot;A1&amp;quot;,10.0,0.0),(&amp;quot;A2&amp;quot;,9.0,0.0),(&amp;quot;A3&amp;quot;,7.0,0.0),(&amp;quot;A4&amp;quot;,3.0,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C02 user example B&amp;quot;, one((&amp;quot;B1&amp;quot;,10.0,0.0),(&amp;quot;B2&amp;quot;,9.0,0.0),(&amp;quot;B3&amp;quot;,6.0,0.0),(&amp;quot;B4&amp;quot;,3.0,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C03 one model&amp;quot;, one((&amp;quot;solo&amp;quot;,50.0,2.0)), P, True),&lt;br /&gt;
 (&amp;quot;C04 two models far apart&amp;quot;, one((&amp;quot;x&amp;quot;,80.0,1.0),(&amp;quot;y&amp;quot;,20.0,1.0)), P, True),&lt;br /&gt;
 (&amp;quot;C05 three tied, zero se, then lower&amp;quot;, one((&amp;quot;t1&amp;quot;,10.0,0.0),(&amp;quot;t2&amp;quot;,10.0,0.0),(&amp;quot;t3&amp;quot;,10.0,0.0),(&amp;quot;t4&amp;quot;,9.9,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C06 leader far ahead&amp;quot;, one((&amp;quot;L&amp;quot;,90.0,0.0),(&amp;quot;p2&amp;quot;,60.0,0.0),(&amp;quot;p3&amp;quot;,55.0,0.0),(&amp;quot;p4&amp;quot;,50.0,0.0),(&amp;quot;p5&amp;quot;,45.0,0.0),(&amp;quot;p6&amp;quot;,40.0,0.0),(&amp;quot;p7&amp;quot;,20.0,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C07 constant steps after the first&amp;quot;, one((&amp;quot;a&amp;quot;,10.0,0.0),(&amp;quot;b&amp;quot;,9.0,0.0),(&amp;quot;c&amp;quot;,7.0,0.0),(&amp;quot;d&amp;quot;,5.0,0.0),(&amp;quot;e&amp;quot;,3.0,0.0),(&amp;quot;f&amp;quot;,1.0,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C08 a tie with the cusp row shares it&amp;quot;, one((&amp;quot;aa&amp;quot;,6.0,0.0),(&amp;quot;b1&amp;quot;,10.0,0.0),(&amp;quot;b2&amp;quot;,9.0,0.0),(&amp;quot;zz&amp;quot;,6.0,0.0),(&amp;quot;z3&amp;quot;,2.0,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C09 one model&amp;#039;s two configurations at the top&amp;quot;, rows((&amp;quot;X&amp;quot;,&amp;quot;high&amp;quot;,40.0,0.0),(&amp;quot;X&amp;quot;,&amp;quot;med&amp;quot;,38.0,0.0),(&amp;quot;Y&amp;quot;,&amp;quot;default&amp;quot;,30.0,0.0),(&amp;quot;Z&amp;quot;,&amp;quot;default&amp;quot;,29.5,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C10 verifier case: two configurations and one other model&amp;quot;, rows((&amp;quot;X&amp;quot;,&amp;quot;high&amp;quot;,40.0,1.0),(&amp;quot;X&amp;quot;,&amp;quot;med&amp;quot;,38.0,1.0),(&amp;quot;Y&amp;quot;,&amp;quot;d&amp;quot;,30.0,1.0)), PF, True),&lt;br /&gt;
 (&amp;quot;C11 noise sets the spacing (SE 1)&amp;quot;, one((&amp;quot;a&amp;quot;,40.0,1.0),(&amp;quot;b&amp;quot;,38.0,1.0),(&amp;quot;c&amp;quot;,37.9,1.0),(&amp;quot;d&amp;quot;,34.0,1.0),(&amp;quot;e&amp;quot;,32.0,1.0)), PF, True),&lt;br /&gt;
 (&amp;quot;C12 step exactly 2.5 spacings is IN&amp;quot;, one((&amp;quot;b1&amp;quot;,10.0,0.0),(&amp;quot;b2&amp;quot;,9.0,0.0),(&amp;quot;b3&amp;quot;,6.5,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C13 step exactly 3.5 spacings is CUSP&amp;quot;, one((&amp;quot;b1&amp;quot;,10.0,0.0),(&amp;quot;b2&amp;quot;,9.0,0.0),(&amp;quot;b3&amp;quot;,5.5,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C14 step 3.6 spacings is OUT&amp;quot;, one((&amp;quot;b1&amp;quot;,10.0,0.0),(&amp;quot;b2&amp;quot;,9.0,0.0),(&amp;quot;b3&amp;quot;,5.4,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C15 spacing zero, positive step&amp;quot;, one((&amp;quot;u1&amp;quot;,5.0,0.0),(&amp;quot;u2&amp;quot;,5.0,0.0),(&amp;quot;u3&amp;quot;,5.0,0.0),(&amp;quot;u4&amp;quot;,4.9,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C16 worked month (specimen)&amp;quot;, rows((&amp;quot;Model A&amp;quot;,&amp;quot;high&amp;quot;,38.0,0.6),(&amp;quot;Model B&amp;quot;,&amp;quot;high&amp;quot;,35.5,0.6),(&amp;quot;Model C&amp;quot;,&amp;quot;default&amp;quot;,33.9,0.6),(&amp;quot;Model D&amp;quot;,&amp;quot;high&amp;quot;,32.0,0.6),(&amp;quot;Model E&amp;quot;,&amp;quot;default&amp;quot;,25.8,0.6),(&amp;quot;Model F&amp;quot;,&amp;quot;default&amp;quot;,17.5,0.7),(&amp;quot;Model A&amp;quot;,&amp;quot;low&amp;quot;,33.5,0.6),(&amp;quot;Model D&amp;quot;,&amp;quot;default&amp;quot;,27.0,0.6)), PF, True),&lt;br /&gt;
 (&amp;quot;C17 a similar month with SE about 1.2: nothing resolves&amp;quot;, rows((&amp;quot;Model A&amp;quot;,&amp;quot;high&amp;quot;,38.0,1.2),(&amp;quot;Model B&amp;quot;,&amp;quot;high&amp;quot;,35.5,1.1),(&amp;quot;Model C&amp;quot;,&amp;quot;default&amp;quot;,33.9,1.2),(&amp;quot;Model D&amp;quot;,&amp;quot;high&amp;quot;,32.0,1.2),(&amp;quot;Model E&amp;quot;,&amp;quot;default&amp;quot;,27.6,1.2),(&amp;quot;Model F&amp;quot;,&amp;quot;default&amp;quot;,21.5,1.3)), PF, False),&lt;br /&gt;
 (&amp;quot;C18 empty&amp;quot;, [], P, True),&lt;br /&gt;
 (&amp;quot;C19 stricter thresholds&amp;quot;, one((&amp;quot;A1&amp;quot;,10.0,0.0),(&amp;quot;A2&amp;quot;,9.0,0.0),(&amp;quot;A3&amp;quot;,7.0,0.0),(&amp;quot;A4&amp;quot;,3.0,0.0)), {&amp;quot;in_max&amp;quot;: 1.5, &amp;quot;cusp_max&amp;quot;: 2.0, &amp;quot;z&amp;quot;: 1.645, &amp;quot;spacing_floor&amp;quot;: 0.0}, False),&lt;br /&gt;
 (&amp;quot;C20 bad parameters&amp;quot;, one((&amp;quot;A1&amp;quot;,10.0,0.0),(&amp;quot;A2&amp;quot;,9.0,0.0)), {&amp;quot;in_max&amp;quot;: 3.5, &amp;quot;cusp_max&amp;quot;: 2.5, &amp;quot;z&amp;quot;: 1.645, &amp;quot;spacing_floor&amp;quot;: 0.0}, True),&lt;br /&gt;
 (&amp;quot;C21 negative se&amp;quot;, one((&amp;quot;A1&amp;quot;,10.0,-1.0),(&amp;quot;A2&amp;quot;,9.0,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C22 duplicate model and configuration&amp;quot;, rows((&amp;quot;A&amp;quot;,&amp;quot;d&amp;quot;,10.0,0.0),(&amp;quot;A&amp;quot;,&amp;quot;d&amp;quot;,9.0,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C23 empty configuration id&amp;quot;, rows((&amp;quot;A&amp;quot;,&amp;quot;&amp;quot;,10.0,0.0)), P, True),&lt;br /&gt;
 (&amp;quot;C24 lower configuration within noise of the cusp row&amp;quot;, rows((&amp;quot;a&amp;quot;,&amp;quot;d&amp;quot;,40.0,0.5),(&amp;quot;b&amp;quot;,&amp;quot;d&amp;quot;,38.0,0.5),(&amp;quot;c&amp;quot;,&amp;quot;d&amp;quot;,36.0,0.5),(&amp;quot;e&amp;quot;,&amp;quot;d&amp;quot;,29.0,0.5),(&amp;quot;c&amp;quot;,&amp;quot;low&amp;quot;,28.5,0.5),(&amp;quot;f&amp;quot;,&amp;quot;d&amp;quot;,10.0,0.5)), PF, True),&lt;br /&gt;
 (&amp;quot;C25 unsorted input; score ties by se then id&amp;quot;, one((&amp;quot;zeta&amp;quot;,7.0,0.5),(&amp;quot;beta&amp;quot;,9.0,0.2),(&amp;quot;alpha&amp;quot;,9.0,0.2),(&amp;quot;gamma&amp;quot;,9.0,0.1),(&amp;quot;eta&amp;quot;,8.0,0.0)), PF, False),&lt;br /&gt;
 (&amp;quot;C26 after an OUT below a cusp, a noisy row level with the cusp row is OUT&amp;quot;, one((&amp;quot;a&amp;quot;,40.0,0.1),(&amp;quot;b&amp;quot;,38.0,0.1),(&amp;quot;c&amp;quot;,36.0,0.1),(&amp;quot;d&amp;quot;,29.0,0.1),(&amp;quot;e&amp;quot;,28.0,0.1),(&amp;quot;f&amp;quot;,27.9,5.0)), PF, True),&lt;br /&gt;
]&lt;br /&gt;
out = []&lt;br /&gt;
for name, rs, p, hand in cases:&lt;br /&gt;
    case = {&amp;quot;name&amp;quot;: name, &amp;quot;rows&amp;quot;: rs, &amp;quot;params&amp;quot;: p, &amp;quot;hand_checked&amp;quot;: hand}&lt;br /&gt;
    case[&amp;quot;expected&amp;quot;] = run_case(case)&lt;br /&gt;
    out.append(case)&lt;br /&gt;
&lt;br /&gt;
# ---- FIXED-SET: the paired noise input (D143.1 (e), R7) -------------------&lt;br /&gt;
def all_pairs(rs, sd):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Every unordered pair of rows at one paired SE.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    ps = []&lt;br /&gt;
    for i in range(len(rs)):&lt;br /&gt;
        for j in range(i + 1, len(rs)):&lt;br /&gt;
            ps.append([rs[i][0], rs[i][1], rs[j][0], rs[j][1], sd])&lt;br /&gt;
    return ps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
specimen = rows((&amp;quot;Model A&amp;quot;,&amp;quot;high&amp;quot;,38.0,0.6),(&amp;quot;Model B&amp;quot;,&amp;quot;high&amp;quot;,35.5,0.6),(&amp;quot;Model C&amp;quot;,&amp;quot;default&amp;quot;,33.9,0.6),(&amp;quot;Model D&amp;quot;,&amp;quot;high&amp;quot;,32.0,0.6),(&amp;quot;Model E&amp;quot;,&amp;quot;default&amp;quot;,25.8,0.6),(&amp;quot;Model F&amp;quot;,&amp;quot;default&amp;quot;,17.5,0.7),(&amp;quot;Model A&amp;quot;,&amp;quot;low&amp;quot;,33.5,0.6),(&amp;quot;Model D&amp;quot;,&amp;quot;default&amp;quot;,27.0,0.6))&lt;br /&gt;
exA = one((&amp;quot;A1&amp;quot;,10.0,0.0),(&amp;quot;A2&amp;quot;,9.0,0.0),(&amp;quot;A3&amp;quot;,7.0,0.0),(&amp;quot;A4&amp;quot;,3.0,0.0))&lt;br /&gt;
band = one((&amp;quot;a&amp;quot;,40.0,1.0),(&amp;quot;b&amp;quot;,38.0,1.0),(&amp;quot;c&amp;quot;,37.9,1.0),(&amp;quot;d&amp;quot;,34.0,1.0),(&amp;quot;e&amp;quot;,32.0,1.0))&lt;br /&gt;
bnd = one((&amp;quot;b1&amp;quot;,10.0,0.0),(&amp;quot;b2&amp;quot;,9.0,0.0),(&amp;quot;b3&amp;quot;,6.0,0.0))&lt;br /&gt;
uni = rows((&amp;quot;Modèle É&amp;quot;,&amp;quot;défaut&amp;quot;,10.0,0.0),(&amp;quot;模型乙&amp;quot;,&amp;quot;默认&amp;quot;,9.0,0.0),(&amp;quot;μ-3&amp;quot;,&amp;quot;α&amp;quot;,7.0,0.0),(&amp;quot;μ-4&amp;quot;,&amp;quot;α&amp;quot;,3.0,0.0))&lt;br /&gt;
pcases = [&lt;br /&gt;
 (&amp;quot;P01 example A under FIXED-SET, paired SEs zero: as ITEM-SAMPLING&amp;quot;, exA, P, all_pairs(exA, 0.0), True),&lt;br /&gt;
 (&amp;quot;P02 specimen under FIXED-SET, paired SE 0.4 everywhere: Model E&amp;#039;s step 0.6 past CUSP MAX inside its paired noise 0.658, CUSP&amp;quot;, specimen, PF, all_pairs(specimen, 0.4), True),&lt;br /&gt;
 (&amp;quot;P03 specimen under FIXED-SET, paired SE 0.3: Model E&amp;#039;s step 0.6 past CUSP MAX outside its noise 0.494, OUT&amp;quot;, specimen, PF, all_pairs(specimen, 0.3), True),&lt;br /&gt;
 (&amp;quot;P04 specimen under FIXED-SET, paired SE 1.2 (wider than unpaired 0.85): noise sets the spacing&amp;quot;, specimen, PF, all_pairs(specimen, 1.2), False),&lt;br /&gt;
 (&amp;quot;P05 band month (C11) under FIXED-SET, paired SE 0.2: the spacing is the gap 0.1 raised to the floor 0.5; d and e resolve&amp;quot;, band, PF, all_pairs(band, 0.2), False),&lt;br /&gt;
 (&amp;quot;P06 a missing pair the rule tests (ranks 4 and 5) is refused&amp;quot;, specimen, PF, [x for x in all_pairs(specimen, 0.4) if not (x[0] == &amp;quot;Model D&amp;quot; and x[1] == &amp;quot;high&amp;quot; and x[2] == &amp;quot;Model E&amp;quot;)], True),&lt;br /&gt;
 (&amp;quot;P06b a missing pair the rule never tests (two non-representatives) is not needed&amp;quot;, specimen, PF, all_pairs(specimen, 0.4)[:-1], True),&lt;br /&gt;
 (&amp;quot;P07 a pair given twice, the second in reverse order, is refused&amp;quot;, exA, P, all_pairs(exA, 0.0) + [[&amp;quot;A2&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;A1&amp;quot;,&amp;quot;default&amp;quot;,0.1]], True),&lt;br /&gt;
 (&amp;quot;P08 a self pair is refused&amp;quot;, exA, P, all_pairs(exA, 0.0) + [[&amp;quot;A1&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;A1&amp;quot;,&amp;quot;default&amp;quot;,0.0]], True),&lt;br /&gt;
 (&amp;quot;P09 a pair naming an unknown row is refused&amp;quot;, exA, P, all_pairs(exA, 0.0) + [[&amp;quot;A9&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;A1&amp;quot;,&amp;quot;default&amp;quot;,0.0]], True),&lt;br /&gt;
 (&amp;quot;P10 a negative paired SE is refused&amp;quot;, exA, P, [[&amp;quot;A1&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;A2&amp;quot;,&amp;quot;default&amp;quot;,-0.1]] + all_pairs(exA, 0.0)[1:], True),&lt;br /&gt;
 (&amp;quot;P11 a paired entry of the wrong length is refused&amp;quot;, exA, P, [[&amp;quot;A1&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;A2&amp;quot;,&amp;quot;default&amp;quot;]] + all_pairs(exA, 0.0)[1:], True),&lt;br /&gt;
 (&amp;quot;P12 two models under FIXED-SET need no pair&amp;quot;, one((&amp;quot;x&amp;quot;,80.0,1.0),(&amp;quot;y&amp;quot;,20.0,1.0)), P, [], True),&lt;br /&gt;
 (&amp;quot;P13 one model under FIXED-SET: NONE&amp;quot;, one((&amp;quot;solo&amp;quot;,50.0,2.0)), P, [], True),&lt;br /&gt;
 (&amp;quot;P14 FIXED-SET boundary: step - CUSP MAX x u equal to the paired noise is not OUT (CUSP)&amp;quot;, one((&amp;quot;b1&amp;quot;,10.0,0.0),(&amp;quot;b2&amp;quot;,9.0,0.0),(&amp;quot;b3&amp;quot;,5.0,0.0)), P1, all_pairs(one((&amp;quot;b1&amp;quot;,10.0,0.0),(&amp;quot;b2&amp;quot;,9.0,0.0),(&amp;quot;b3&amp;quot;,5.0,0.0)), 0.5), True),&lt;br /&gt;
 (&amp;quot;P15 FIXED-SET boundary: step - CUSP MAX x u past the paired noise by 0.01 is OUT&amp;quot;, one((&amp;quot;b1&amp;quot;,10.0,0.0),(&amp;quot;b2&amp;quot;,9.0,0.0),(&amp;quot;b3&amp;quot;,4.99,0.0)), P1, all_pairs(one((&amp;quot;b1&amp;quot;,10.0,0.0),(&amp;quot;b2&amp;quot;,9.0,0.0),(&amp;quot;b3&amp;quot;,4.99,0.0)), 0.5), True),&lt;br /&gt;
 (&amp;quot;P16 FIXED-SET boundary: step - IN MAX x u equal to the paired noise is IN&amp;quot;, bnd, P1, all_pairs(bnd, 0.5), True),&lt;br /&gt;
 (&amp;quot;P17 non-representative rows judged by their paired SE against the lowest IN and CUSP representatives&amp;quot;, rows((&amp;quot;a&amp;quot;,&amp;quot;d&amp;quot;,40.0,0.5),(&amp;quot;b&amp;quot;,&amp;quot;d&amp;quot;,38.0,0.5),(&amp;quot;c&amp;quot;,&amp;quot;d&amp;quot;,36.0,0.5),(&amp;quot;e&amp;quot;,&amp;quot;d&amp;quot;,29.0,0.5),(&amp;quot;c&amp;quot;,&amp;quot;low&amp;quot;,28.5,0.5),(&amp;quot;f&amp;quot;,&amp;quot;d&amp;quot;,10.0,0.5)), PF,&lt;br /&gt;
  all_pairs(rows((&amp;quot;a&amp;quot;,&amp;quot;d&amp;quot;,40.0,0.5),(&amp;quot;b&amp;quot;,&amp;quot;d&amp;quot;,38.0,0.5),(&amp;quot;c&amp;quot;,&amp;quot;d&amp;quot;,36.0,0.5),(&amp;quot;e&amp;quot;,&amp;quot;d&amp;quot;,29.0,0.5),(&amp;quot;c&amp;quot;,&amp;quot;low&amp;quot;,28.5,0.5),(&amp;quot;f&amp;quot;,&amp;quot;d&amp;quot;,10.0,0.5)), 0.2)&lt;br /&gt;
  , True),&lt;br /&gt;
 (&amp;quot;P18 below a CUSP, a row level with it by its paired SE shares it; the next is OUT by its paired SE&amp;quot;, one((&amp;quot;a&amp;quot;,40.0,0.1),(&amp;quot;b&amp;quot;,38.0,0.1),(&amp;quot;c&amp;quot;,36.0,0.1),(&amp;quot;d&amp;quot;,29.0,0.1),(&amp;quot;e&amp;quot;,28.0,0.1),(&amp;quot;f&amp;quot;,27.9,5.0)), PF,&lt;br /&gt;
  [[&amp;quot;a&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;default&amp;quot;,0.1],[&amp;quot;a&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;c&amp;quot;,&amp;quot;default&amp;quot;,0.1],[&amp;quot;a&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;d&amp;quot;,&amp;quot;default&amp;quot;,0.1],[&amp;quot;a&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;e&amp;quot;,&amp;quot;default&amp;quot;,0.1],[&amp;quot;a&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;f&amp;quot;,&amp;quot;default&amp;quot;,0.1],[&amp;quot;b&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;c&amp;quot;,&amp;quot;default&amp;quot;,0.1],[&amp;quot;b&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;d&amp;quot;,&amp;quot;default&amp;quot;,0.1],[&amp;quot;b&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;e&amp;quot;,&amp;quot;default&amp;quot;,0.1],[&amp;quot;b&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;f&amp;quot;,&amp;quot;default&amp;quot;,0.1],[&amp;quot;c&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;d&amp;quot;,&amp;quot;default&amp;quot;,0.1],[&amp;quot;c&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;e&amp;quot;,&amp;quot;default&amp;quot;,0.1],[&amp;quot;c&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;f&amp;quot;,&amp;quot;default&amp;quot;,0.1],[&amp;quot;d&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;e&amp;quot;,&amp;quot;default&amp;quot;,0.8],[&amp;quot;d&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;f&amp;quot;,&amp;quot;default&amp;quot;,0.5],[&amp;quot;e&amp;quot;,&amp;quot;default&amp;quot;,&amp;quot;f&amp;quot;,&amp;quot;default&amp;quot;,0.1]], True),&lt;br /&gt;
 (&amp;quot;P19 unicode identifiers under FIXED-SET&amp;quot;, uni, P, all_pairs(uni, 0.0), True),&lt;br /&gt;
 (&amp;quot;P20 an extra pair beyond those the rule tests is accepted&amp;quot;, one((&amp;quot;x&amp;quot;,10.0,0.0),(&amp;quot;y&amp;quot;,9.0,0.0),(&amp;quot;z&amp;quot;,7.0,0.0)), P, all_pairs(one((&amp;quot;x&amp;quot;,10.0,0.0),(&amp;quot;y&amp;quot;,9.0,0.0),(&amp;quot;z&amp;quot;,7.0,0.0)), 0.0), True),&lt;br /&gt;
]&lt;br /&gt;
for name, rs, p, paired, hand in pcases:&lt;br /&gt;
    case = {&amp;quot;name&amp;quot;: name, &amp;quot;rows&amp;quot;: rs, &amp;quot;params&amp;quot;: p, &amp;quot;paired&amp;quot;: paired,&lt;br /&gt;
            &amp;quot;hand_checked&amp;quot;: hand, &amp;quot;fn&amp;quot;: &amp;quot;cluster&amp;quot;}&lt;br /&gt;
    case[&amp;quot;expected&amp;quot;] = run_case(case)&lt;br /&gt;
    out.append(case)&lt;br /&gt;
&lt;br /&gt;
# ---- resolving_step (D144.1 (i); RS1-RS3) ---------------------------------&lt;br /&gt;
R = {&amp;quot;in_max&amp;quot;: 2.5, &amp;quot;cusp_max&amp;quot;: 3.5, &amp;quot;z&amp;quot;: 1.645}&lt;br /&gt;
rcases = [&lt;br /&gt;
 (&amp;quot;R01 the docs&amp;#039; specimen: u 1.6, SEs 0.6 with rank 6 at 0.7: 6.996 points, 4.37 spacings; the greatest 7.116&amp;quot;, 1.6, [0.6,0.6,0.6,0.6,0.6,0.7], R, None, True),&lt;br /&gt;
 (&amp;quot;R02 F30 row: ECI, SE 2.00, spacing 4.65: CUSP at 16.3, OUT at 20.9&amp;quot;, 4.65, [2.0,2.0,2.0], R, None, True),&lt;br /&gt;
 (&amp;quot;R03 F30 row: composite with CritPt, SE 1.66, spacing 3.86: 13.5 / 17.4&amp;quot;, 3.86, [1.66,1.66,1.66], R, None, True),&lt;br /&gt;
 (&amp;quot;R04 F30 row: composite, item sampling, SE 0.96, spacing 2.23: 7.8 / 10.0&amp;quot;, 2.23, [0.96,0.96,0.96], R, None, True),&lt;br /&gt;
 (&amp;quot;R05 F30 row: composite paired, SE 0.68, spacing 1.58: 5.5 / 7.1&amp;quot;, 1.58, [0.68,0.68,0.68], R, None, True),&lt;br /&gt;
 (&amp;quot;R06 F30 row: fixed item set, SE 0.28, spacing 1.00: 3.2 / 4.2&amp;quot;, 1.0, [0.28,0.28,0.28], R, None, True),&lt;br /&gt;
 (&amp;quot;R07 example A: u 1, SEs zero: 3.5 points, 3.5 spacings; CUSP at 2.5&amp;quot;, 1.0, [0.0,0.0,0.0,0.0], R, None, True),&lt;br /&gt;
 (&amp;quot;R08 fewer than three ranks: NONE (two)&amp;quot;, 1.0, [0.5,0.5], R, None, True),&lt;br /&gt;
 (&amp;quot;R09 fewer than three ranks: NONE (none)&amp;quot;, 0.0, [], R, None, True),&lt;br /&gt;
 (&amp;quot;R10 spacing zero: points only, spacings undefined&amp;quot;, 0.0, [0.5,0.5,0.5], R, None, True),&lt;br /&gt;
 (&amp;quot;R11 z zero: the thresholds are the spacing multiples alone&amp;quot;, 2.0, [1.0,3.0,2.0], {&amp;quot;in_max&amp;quot;: 2.5, &amp;quot;cusp_max&amp;quot;: 3.5, &amp;quot;z&amp;quot;: 0.0}, None, True),&lt;br /&gt;
 (&amp;quot;R12 varying SEs: the least pair sets the step, the greatest pair the greatest&amp;quot;, 1.0, [0.1,0.2,0.9,0.05,0.3], R, None, True),&lt;br /&gt;
 (&amp;quot;R13 FIXED-SET: paired SEs of the adjacent differences replace the unpaired terms&amp;quot;, 1.6, [0.6,0.6,0.6,0.6,0.6,0.7], R, [0.5,0.4,0.4,0.4,0.6], True),&lt;br /&gt;
 (&amp;quot;R14 FIXED-SET: paired list of the wrong length is refused&amp;quot;, 1.6, [0.6,0.6,0.6], R, [0.4], True),&lt;br /&gt;
 (&amp;quot;R15 FIXED-SET: a negative paired SE is refused&amp;quot;, 1.6, [0.6,0.6,0.6], R, [0.4,-0.1], True),&lt;br /&gt;
 (&amp;quot;R16 a negative SE is refused&amp;quot;, 1.0, [0.5,-0.5,0.5], R, None, True),&lt;br /&gt;
 (&amp;quot;R17 a negative spacing is refused&amp;quot;, -1.0, [0.5,0.5,0.5], R, None, True),&lt;br /&gt;
 (&amp;quot;R18 bad parameters (IN MAX above CUSP MAX) are refused&amp;quot;, 1.0, [0.5,0.5,0.5], {&amp;quot;in_max&amp;quot;: 3.5, &amp;quot;cusp_max&amp;quot;: 2.5, &amp;quot;z&amp;quot;: 1.645}, None, True),&lt;br /&gt;
 (&amp;quot;R19 a boolean SE is refused&amp;quot;, 1.0, [0.5, True, 0.5], R, None, True),&lt;br /&gt;
 (&amp;quot;R20 ECI top twelve as F30 read them: u 6.01 by NOISE, SE 2.0 to 2.74&amp;quot;, 6.01, [2.74,2.0,1.44,2.1,2.0,1.9,2.3,2.0,1.8,1.7,2.2,2.5], R, None, False),&lt;br /&gt;
]&lt;br /&gt;
for name, u, ses, p, paired, hand in rcases:&lt;br /&gt;
    case = {&amp;quot;name&amp;quot;: name, &amp;quot;fn&amp;quot;: &amp;quot;resolving&amp;quot;, &amp;quot;spacing&amp;quot;: u, &amp;quot;ses&amp;quot;: ses,&lt;br /&gt;
            &amp;quot;params&amp;quot;: p, &amp;quot;paired&amp;quot;: paired, &amp;quot;hand_checked&amp;quot;: hand}&lt;br /&gt;
    case[&amp;quot;expected&amp;quot;] = run_case(case)&lt;br /&gt;
    out.append(case)&lt;br /&gt;
&lt;br /&gt;
here = os.path.dirname(os.path.abspath(__file__))&lt;br /&gt;
json.dump({&amp;quot;corpus&amp;quot;: &amp;quot;cluster&amp;quot;, &amp;quot;version&amp;quot;: &amp;quot;0.3.0&amp;quot;, &amp;quot;cases&amp;quot;: out},&lt;br /&gt;
          open(os.path.join(here, &amp;quot;cluster_corpus.json&amp;quot;), &amp;quot;w&amp;quot;), indent=1,&lt;br /&gt;
          sort_keys=True)&lt;br /&gt;
print(&amp;quot;cases&amp;quot;, len(out))&lt;br /&gt;
&lt;br /&gt;
# ---- the 0.2.0 proof -------------------------------------------------------&lt;br /&gt;
old_path = os.path.join(here, &amp;quot;cluster_corpus_0_2_0.json&amp;quot;)&lt;br /&gt;
if os.path.exists(old_path):&lt;br /&gt;
    old = json.load(open(old_path))[&amp;quot;cases&amp;quot;]&lt;br /&gt;
    same = 0&lt;br /&gt;
    for a, b in zip(old, out[:26]):&lt;br /&gt;
        if (a[&amp;quot;name&amp;quot;] == b[&amp;quot;name&amp;quot;] and a[&amp;quot;rows&amp;quot;] == b[&amp;quot;rows&amp;quot;]&lt;br /&gt;
                and a[&amp;quot;params&amp;quot;] == b[&amp;quot;params&amp;quot;] and a[&amp;quot;expected&amp;quot;] == b[&amp;quot;expected&amp;quot;]&lt;br /&gt;
                and a[&amp;quot;hand_checked&amp;quot;] == b[&amp;quot;hand_checked&amp;quot;]):&lt;br /&gt;
            same += 1&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;CHANGED&amp;quot;, a[&amp;quot;name&amp;quot;])&lt;br /&gt;
    print(&amp;quot;0.2.0 cases unchanged: %d/%d&amp;quot; % (same, len(old)))&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>BFP Rauch</name></author>
	</entry>
</feed>