<?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%2Fdiff_probe.py</id>
	<title>The Principia Machina/TPC-PY/diff probe.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%2Fdiff_probe.py"/>
	<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/diff_probe.py&amp;action=history"/>
	<updated>2026-10-21T12:59:28Z</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/diff_probe.py&amp;diff=4813&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/diff_probe.py&amp;diff=4813&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;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 02:11, 30 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/diff_probe.py&amp;diff=4812&amp;oldid=prev</id>
		<title>BFP Rauch: TPC-PY source diff_probe.py (0.1.0), SHA-256 955adce109baf21e; 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/diff_probe.py&amp;diff=4812&amp;oldid=prev"/>
		<updated>2026-09-30T02:10:58Z</updated>

		<summary type="html">&lt;p&gt;TPC-PY source diff_probe.py (0.1.0), SHA-256 955adce109baf21e; 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-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&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;boundary and malformed records, the params fixture varied), both&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;boundary and malformed records, the params fixture varied), both&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;residences on the same inputs, every render compared byte for byte; 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;residences on the same inputs, every render compared byte for byte; 0&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;differences is the pass. Usage: python3 diff_probe.py [seed] [cases].&quot;&quot;&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;differences is the pass. Usage: python3 diff_probe.py [seed] [cases]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Increment 12 (tpc_probe 0.2.0): compare&#039;s L findings also of type&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;EQUATION (EQS below)&lt;/ins&gt;.&quot;&quot;&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;import json&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;import json&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;import os&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;import os&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-l21&quot;&gt;Line 21:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&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;TEXTS = [&amp;quot;x = 1&amp;quot;, &amp;quot;x=1&amp;quot;, &amp;quot;café&amp;quot;, &amp;quot;café&amp;quot;, &amp;quot;a|b&amp;quot;, &amp;quot;a\\b&amp;quot;, &amp;quot;line\nline&amp;quot;, &amp;quot;a\r\nb&amp;quot;, &amp;quot;&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;TEXTS = [&amp;quot;x = 1&amp;quot;, &amp;quot;x=1&amp;quot;, &amp;quot;café&amp;quot;, &amp;quot;café&amp;quot;, &amp;quot;a|b&amp;quot;, &amp;quot;a\\b&amp;quot;, &amp;quot;line\nline&amp;quot;, &amp;quot;a\r\nb&amp;quot;, &amp;quot;&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;          &amp;quot;Å&amp;quot;, &amp;quot;Å&amp;quot;, &amp;quot;가&amp;quot;, &amp;quot;가&amp;quot;, &amp;quot;tab\there&amp;quot;, &amp;quot;́x&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;          &amp;quot;Å&amp;quot;, &amp;quot;Å&amp;quot;, &amp;quot;가&amp;quot;, &amp;quot;가&amp;quot;, &amp;quot;tab\there&amp;quot;, &amp;quot;́x&amp;quot;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;EQS = [&quot;x=1&quot;, &quot;x*2=y&quot;, &quot;2*x=y&quot;, &quot;x = 1&quot;, &quot;x==y&quot;, &quot;m*D(v,t)=-k_s*x&quot;, &quot;sin(x)=cos(x)&quot;, &quot;&quot;, &quot;x=1\n&quot;, &quot;x&quot;]&lt;/ins&gt;&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;DECS = [&amp;quot;0&amp;quot;, &amp;quot;5&amp;quot;, &amp;quot;15e2&amp;quot;, &amp;quot;1500&amp;quot;, &amp;quot;-5e-2&amp;quot;, &amp;quot;5e0&amp;quot;, &amp;quot;05&amp;quot;, &amp;quot;-0&amp;quot;, &amp;quot;123&amp;quot;, &amp;quot;12e1&amp;quot;, &amp;quot;1e-1&amp;quot;, &amp;quot;-1&amp;quot;, &amp;quot;10&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;DECS = [&amp;quot;0&amp;quot;, &amp;quot;5&amp;quot;, &amp;quot;15e2&amp;quot;, &amp;quot;1500&amp;quot;, &amp;quot;-5e-2&amp;quot;, &amp;quot;5e0&amp;quot;, &amp;quot;05&amp;quot;, &amp;quot;-0&amp;quot;, &amp;quot;123&amp;quot;, &amp;quot;12e1&amp;quot;, &amp;quot;1e-1&amp;quot;, &amp;quot;-1&amp;quot;, &amp;quot;10&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;         &amp;quot;1e+1&amp;quot;, &amp;quot;7e7&amp;quot;, &amp;quot;-&amp;quot;, &amp;quot;e5&amp;quot;, &amp;quot;1.5&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;         &amp;quot;1e+1&amp;quot;, &amp;quot;7e7&amp;quot;, &amp;quot;-&amp;quot;, &amp;quot;e5&amp;quot;, &amp;quot;1.5&amp;quot;]&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-l106&quot;&gt;Line 106:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 109:&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 fn == &amp;quot;compare&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;     if fn == &amp;quot;compare&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 rnd.random() &amp;lt; 0.5:&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 rnd.random() &amp;lt; 0.5:&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;             t = kind([&quot;TEXT&quot;, &quot;DECIMAL&quot;], [&quot;PROSE&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;             t = kind([&quot;TEXT&quot;, &quot;DECIMAL&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;, &quot;EQUATION&lt;/ins&gt;&quot;], [&quot;PROSE&quot;])&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;             vals = TEXTS if t == &quot;TEXT&quot; else DECS&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;             vals = TEXTS if t == &quot;TEXT&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; else EQS if t == &quot;EQUATION&lt;/ins&gt;&quot; else DECS&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;             v1 = pick(vals)&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;             v1 = pick(vals)&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;             v2 = v1 if rnd.random() &amp;lt; 0.5 else pick(vals)&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;             v2 = v1 if rnd.random() &amp;lt; 0.5 else pick(vals)&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/diff_probe.py&amp;diff=4065&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/diff_probe.py&amp;diff=4065&amp;oldid=prev"/>
		<updated>2026-09-28T04:32:52Z</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/diff_probe.py&amp;diff=4064&amp;oldid=prev</id>
		<title>BFP Rauch: TPC-PY source diff_probe.py (0.1.0), SHA-256 21d1ac46f0e4e908; 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/diff_probe.py&amp;diff=4064&amp;oldid=prev"/>
		<updated>2026-09-27T15:43:18Z</updated>

		<summary type="html">&lt;p&gt;TPC-PY source diff_probe.py (0.1.0), SHA-256 21d1ac46f0e4e908; 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;diff_probe 0.1.0: the cross-residence differential for tpc_probe 0.1.0.&lt;br /&gt;
Random inputs from a seed over every function (random r values, valid,&lt;br /&gt;
boundary and malformed records, the params fixture varied), both&lt;br /&gt;
residences on the same inputs, every render compared byte for byte; 0&lt;br /&gt;
differences is the pass. Usage: python3 diff_probe.py [seed] [cases].&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
import json&lt;br /&gt;
import os&lt;br /&gt;
import random&lt;br /&gt;
import subprocess&lt;br /&gt;
import sys&lt;br /&gt;
import tempfile&lt;br /&gt;
&lt;br /&gt;
here = os.path.dirname(os.path.abspath(__file__))&lt;br /&gt;
sys.path.insert(0, here)&lt;br /&gt;
from params_fixture import FLEET, fleet  # noqa: E402&lt;br /&gt;
from tpc_probe import run_case, FNS  # noqa: E402&lt;br /&gt;
&lt;br /&gt;
seed = int(sys.argv[1]) if len(sys.argv) &amp;gt; 1 else 1&lt;br /&gt;
count = int(sys.argv[2]) if len(sys.argv) &amp;gt; 2 else 20000&lt;br /&gt;
rnd = random.Random(seed)&lt;br /&gt;
TEXTS = [&amp;quot;x = 1&amp;quot;, &amp;quot;x=1&amp;quot;, &amp;quot;café&amp;quot;, &amp;quot;café&amp;quot;, &amp;quot;a|b&amp;quot;, &amp;quot;a\\b&amp;quot;, &amp;quot;line\nline&amp;quot;, &amp;quot;a\r\nb&amp;quot;, &amp;quot;&amp;quot;,&lt;br /&gt;
         &amp;quot;Å&amp;quot;, &amp;quot;Å&amp;quot;, &amp;quot;가&amp;quot;, &amp;quot;가&amp;quot;, &amp;quot;tab\there&amp;quot;, &amp;quot;́x&amp;quot;]&lt;br /&gt;
DECS = [&amp;quot;0&amp;quot;, &amp;quot;5&amp;quot;, &amp;quot;15e2&amp;quot;, &amp;quot;1500&amp;quot;, &amp;quot;-5e-2&amp;quot;, &amp;quot;5e0&amp;quot;, &amp;quot;05&amp;quot;, &amp;quot;-0&amp;quot;, &amp;quot;123&amp;quot;, &amp;quot;12e1&amp;quot;, &amp;quot;1e-1&amp;quot;, &amp;quot;-1&amp;quot;, &amp;quot;10&amp;quot;,&lt;br /&gt;
        &amp;quot;1e+1&amp;quot;, &amp;quot;7e7&amp;quot;, &amp;quot;-&amp;quot;, &amp;quot;e5&amp;quot;, &amp;quot;1.5&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def pick(xs):&lt;br /&gt;
    return xs[rnd.randrange(len(xs))]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def bad():&lt;br /&gt;
    return rnd.random() &amp;lt; 0.03&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def kind(good, more):&lt;br /&gt;
    return pick(more) if bad() else pick(good)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def rhex():&lt;br /&gt;
    if bad():&lt;br /&gt;
        return pick([&amp;quot;&amp;quot;, &amp;quot;zz&amp;quot;, &amp;quot;0&amp;quot; * 31, &amp;quot;0&amp;quot; * 33, &amp;quot;A&amp;quot; * 32, 5, None])&lt;br /&gt;
    return &amp;quot;%032x&amp;quot; % rnd.getrandbits(128)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def cnt(lo, hi):&lt;br /&gt;
    if bad():&lt;br /&gt;
        return pick([True, None, &amp;quot;5&amp;quot;, 1.5, -1])&lt;br /&gt;
    return rnd.randint(lo, hi)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def num(lo, hi):&lt;br /&gt;
    if bad():&lt;br /&gt;
        return pick([True, None, &amp;quot;1&amp;quot;, -1])&lt;br /&gt;
    return round(rnd.uniform(lo, hi), rnd.randint(0, 6))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def flag():&lt;br /&gt;
    return (rnd.random() &amp;lt; 0.5) if not bad() else pick([1, &amp;quot;x&amp;quot;, None])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def params():&lt;br /&gt;
    p = fleet()&lt;br /&gt;
    r = rnd.random()&lt;br /&gt;
    if r &amp;lt; 0.6:&lt;br /&gt;
        return p&lt;br /&gt;
    invalid = r &amp;gt; 0.93&lt;br /&gt;
    if rnd.random() &amp;lt; 0.5:&lt;br /&gt;
        sets = [[0.5, 1 / 3, 0.2, 1 / 7], [0.5, 1 / 3], [0.25], [1, 2, 3]]&lt;br /&gt;
        st = pick(sets)&lt;br /&gt;
        ws = [1.0 / len(st)] * len(st) if rnd.random() &amp;lt; 0.5 else [round(x, 4) for x in [0.3, 0.5, 0.15, 0.05][:len(st)]]&lt;br /&gt;
        tot = sum(ws)&lt;br /&gt;
        ws = [w / tot for w in ws]&lt;br /&gt;
        if invalid:&lt;br /&gt;
            ws = pick([ws[:-1] + [ws[-1] + 0.1], [0] * len(st), ws])&lt;br /&gt;
        p[&amp;quot;PARROT RATIO&amp;quot;] = {&amp;quot;set&amp;quot;: st, &amp;quot;weights&amp;quot;: ws, &amp;quot;epoch&amp;quot;: pick([[50, 100], [1, 1], [3, 9], [10, 10]] + ([[100, 50], [0, 5]] if invalid else []))}&lt;br /&gt;
    if rnd.random() &amp;lt; 0.5:&lt;br /&gt;
        p[&amp;quot;CANARY SCHEDULE&amp;quot;] = {&amp;quot;tiers&amp;quot;: pick([[[1, 100, 5], [101, 1000, 10], [1001, None, 20]], [[1, 100, 5], [101, None, 20]],&lt;br /&gt;
                                               [[1, None, 3]], [[1, 10, 2], [11, 20, 4], [21, None, 8]]]&lt;br /&gt;
                                              + ([[[1, 100, 5], [102, None, 20]], [[1, 100, 5], [101, 1000, 20]], []] if invalid else [])),&lt;br /&gt;
                                &amp;quot;burst_rates&amp;quot;: pick([[5, 10], [5], [2, 3, 4]] + ([[], [0]] if invalid else [])),&lt;br /&gt;
                                &amp;quot;burst_duration&amp;quot;: pick([[50, 200], [1, 1], [2, 5]] + ([[5, 2]] if invalid else [])),&lt;br /&gt;
                                &amp;quot;burst_gap&amp;quot;: pick([[200, 500], [1, 3], [2, 2]] + ([[0, 1]] if invalid else []))}&lt;br /&gt;
    if rnd.random() &amp;lt; 0.3:&lt;br /&gt;
        p[&amp;quot;RESET RULE&amp;quot;] = pick([5, 2, 1, 3] + ([0, &amp;quot;5&amp;quot;] if invalid else []))&lt;br /&gt;
    if rnd.random() &amp;lt; 0.3:&lt;br /&gt;
        p[&amp;quot;CONSISTENCY SHARE&amp;quot;] = pick([0.1, 0.5, 1, 0] + ([1.5, -0.1] if invalid else []))&lt;br /&gt;
    if rnd.random() &amp;lt; 0.3:&lt;br /&gt;
        p[&amp;quot;ORANGE PASSES&amp;quot;] = pick([3, 1, 5] + ([0] if invalid else []))&lt;br /&gt;
    if invalid and rnd.random() &amp;lt; 0.3:&lt;br /&gt;
        del p[pick([&amp;quot;PARROT RATIO&amp;quot;, &amp;quot;CANARY SCHEDULE&amp;quot;, &amp;quot;RESET RULE&amp;quot;, &amp;quot;ORANGE PASSES&amp;quot;])]&lt;br /&gt;
    return p&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def mrec():&lt;br /&gt;
    r = {&amp;quot;x&amp;quot;: num(-10, 10), &amp;quot;u&amp;quot;: kind([0.1, 0.2, 0.05, 1, 0.5, round(rnd.uniform(0.01, 3), 4)], [0, -1, &amp;quot;0.1&amp;quot;]),&lt;br /&gt;
         &amp;quot;unit&amp;quot;: kind([&amp;quot;m&amp;quot;, &amp;quot;m s-1&amp;quot;, &amp;quot;kg&amp;quot;], [5, &amp;quot;m|s&amp;quot;])}&lt;br /&gt;
    if bad():&lt;br /&gt;
        del r[&amp;quot;unit&amp;quot;]&lt;br /&gt;
    return r&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def gen(fn):&lt;br /&gt;
    p = params()&lt;br /&gt;
    if fn == &amp;quot;uniform&amp;quot;:&lt;br /&gt;
        return {&amp;quot;tag&amp;quot;: kind([&amp;quot;TPC-PROBE&amp;quot;, &amp;quot;T&amp;quot;, &amp;quot;x&amp;quot;], [&amp;quot;&amp;quot;, 5]), &amp;quot;r&amp;quot;: rhex(), &amp;quot;counter&amp;quot;: cnt(0, 1000)}&lt;br /&gt;
    if fn == &amp;quot;compare&amp;quot;:&lt;br /&gt;
        if rnd.random() &amp;lt; 0.5:&lt;br /&gt;
            t = kind([&amp;quot;TEXT&amp;quot;, &amp;quot;DECIMAL&amp;quot;], [&amp;quot;PROSE&amp;quot;])&lt;br /&gt;
            vals = TEXTS if t == &amp;quot;TEXT&amp;quot; else DECS&lt;br /&gt;
            v1 = pick(vals)&lt;br /&gt;
            v2 = v1 if rnd.random() &amp;lt; 0.5 else pick(vals)&lt;br /&gt;
            o = {&amp;quot;finding&amp;quot;: {&amp;quot;type&amp;quot;: t, &amp;quot;value&amp;quot;: v1}}&lt;br /&gt;
            rp = {&amp;quot;finding&amp;quot;: {&amp;quot;type&amp;quot;: t if not bad() else &amp;quot;TEXT&amp;quot;, &amp;quot;value&amp;quot;: v2}}&lt;br /&gt;
            if bad():&lt;br /&gt;
                o = {&amp;quot;finding&amp;quot;: {&amp;quot;type&amp;quot;: t}}&lt;br /&gt;
            return {&amp;quot;kind&amp;quot;: kind([&amp;quot;L&amp;quot;], [&amp;quot;M&amp;quot;, &amp;quot;X&amp;quot;]), &amp;quot;original&amp;quot;: o, &amp;quot;reproduction&amp;quot;: rp}&lt;br /&gt;
        o = mrec()&lt;br /&gt;
        rp = mrec()&lt;br /&gt;
        if rnd.random() &amp;lt; 0.7 and isinstance(o.get(&amp;quot;unit&amp;quot;), str):&lt;br /&gt;
            rp[&amp;quot;unit&amp;quot;] = o[&amp;quot;unit&amp;quot;]&lt;br /&gt;
        if rnd.random() &amp;lt; 0.5 and isinstance(o[&amp;quot;x&amp;quot;], float):&lt;br /&gt;
            rp[&amp;quot;x&amp;quot;] = round(o[&amp;quot;x&amp;quot;] + rnd.uniform(-0.5, 0.5), 4)&lt;br /&gt;
        standing = [{&amp;quot;x&amp;quot;: num(-10, 10), &amp;quot;u&amp;quot;: kind([0.1, 0.2, 0.5, 1, 50], [0])} for _ in range(rnd.randint(0, 5))]&lt;br /&gt;
        if rnd.random() &amp;lt; 0.5 and standing:&lt;br /&gt;
            standing[0] = {&amp;quot;x&amp;quot;: o[&amp;quot;x&amp;quot;], &amp;quot;u&amp;quot;: o[&amp;quot;u&amp;quot;]}&lt;br /&gt;
        return {&amp;quot;kind&amp;quot;: kind([&amp;quot;M&amp;quot;], [&amp;quot;L&amp;quot;]), &amp;quot;original&amp;quot;: o, &amp;quot;reproduction&amp;quot;: rp, &amp;quot;standing&amp;quot;: standing if not bad() else {},&lt;br /&gt;
                &amp;quot;k&amp;quot;: kind([2, 3, 1, 2.5], [0, -1, &amp;quot;2&amp;quot;]), &amp;quot;material_ratio&amp;quot;: kind([2, 1.5, 1, 3], [0.5, &amp;quot;2&amp;quot;])}&lt;br /&gt;
    if fn == &amp;quot;load&amp;quot;:&lt;br /&gt;
        ids = [&amp;quot;r%d&amp;quot; % i for i in range(rnd.randint(1, 9))]&lt;br /&gt;
        recs = {}&lt;br /&gt;
        for i in ids:&lt;br /&gt;
            recs[i] = {&amp;quot;cites&amp;quot;: [pick(ids + [&amp;quot;TFK-1&amp;quot;]) for _ in range(rnd.randint(0, 2))],&lt;br /&gt;
                       &amp;quot;assumptions&amp;quot;: [pick(ids) for _ in range(rnd.randint(0, 2))], &amp;quot;standing&amp;quot;: flag()}&lt;br /&gt;
            if bad():&lt;br /&gt;
                recs[i][&amp;quot;cites&amp;quot;] = &amp;quot;x&amp;quot;&lt;br /&gt;
        return {&amp;quot;records&amp;quot;: recs if not bad() else [], &amp;quot;r&amp;quot;: kind(ids, [&amp;quot;zz&amp;quot;, &amp;quot;&amp;quot;])}&lt;br /&gt;
    if fn == &amp;quot;el&amp;quot;:&lt;br /&gt;
        return {&amp;quot;e_lo&amp;quot;: kind([0.025, 0.5, 0.84, 1, 0, round(rnd.random(), 5)], [1.5, &amp;quot;x&amp;quot;]), &amp;quot;load&amp;quot;: cnt(0, 50)}&lt;br /&gt;
    if fn == &amp;quot;ratio&amp;quot;:&lt;br /&gt;
        return {&amp;quot;state&amp;quot;: {&amp;quot;k&amp;quot;: kind([None, 0.5, 1 / 3, 0.2], [-1, &amp;quot;x&amp;quot;]), &amp;quot;remaining&amp;quot;: cnt(0, 100)}, &amp;quot;r&amp;quot;: rhex(),&lt;br /&gt;
                &amp;quot;params&amp;quot;: p}&lt;br /&gt;
    if fn == &amp;quot;schedule&amp;quot;:&lt;br /&gt;
        b = kind([0, 99, 100, 999, 1000, 1001, 1500, rnd.randint(0, 3000)], [-1, 1.5])&lt;br /&gt;
        burst = None&lt;br /&gt;
        gap = None&lt;br /&gt;
        r = rnd.random()&lt;br /&gt;
        if r &amp;lt; 0.3:&lt;br /&gt;
            burst = {&amp;quot;rate&amp;quot;: kind([5, 10], [0]), &amp;quot;remaining&amp;quot;: kind([1, 2, 40, 199], [0])}&lt;br /&gt;
        elif r &amp;lt; 0.6:&lt;br /&gt;
            gap = kind([1, 2, 100, 499], [0])&lt;br /&gt;
        elif r &amp;lt; 0.63:&lt;br /&gt;
            burst = {&amp;quot;rate&amp;quot;: 5, &amp;quot;remaining&amp;quot;: 3}&lt;br /&gt;
            gap = 4&lt;br /&gt;
        return {&amp;quot;state&amp;quot;: {&amp;quot;blocks&amp;quot;: b, &amp;quot;burst&amp;quot;: burst, &amp;quot;gap&amp;quot;: gap}, &amp;quot;r&amp;quot;: rhex(), &amp;quot;params&amp;quot;: p}&lt;br /&gt;
    if fn == &amp;quot;probe&amp;quot;:&lt;br /&gt;
        return {&amp;quot;schedule&amp;quot;: {&amp;quot;tier&amp;quot;: kind([1, 2, 3], [0]), &amp;quot;rate&amp;quot;: kind([5, 10, 20, 1, 2], [0]), &amp;quot;burst&amp;quot;: flag()},&lt;br /&gt;
                &amp;quot;ratio&amp;quot;: kind([1 / 3, 0.5, 0.2, 1 / 7, 1000, 0.000001], [0, &amp;quot;x&amp;quot;]),&lt;br /&gt;
                &amp;quot;reset&amp;quot;: {&amp;quot;in_force&amp;quot;: flag(), &amp;quot;passes&amp;quot;: cnt(0, 5)}, &amp;quot;has_own_record&amp;quot;: flag(), &amp;quot;r&amp;quot;: rhex(), &amp;quot;params&amp;quot;: p}&lt;br /&gt;
    if fn == &amp;quot;step&amp;quot;:&lt;br /&gt;
        return {&amp;quot;state&amp;quot;: {&amp;quot;schedule&amp;quot;: {&amp;quot;blocks&amp;quot;: cnt(0, 2500), &amp;quot;burst&amp;quot;: None if rnd.random() &amp;lt; 0.7 else {&amp;quot;rate&amp;quot;: 5, &amp;quot;remaining&amp;quot;: cnt(1, 50)},&lt;br /&gt;
                                       &amp;quot;gap&amp;quot;: None if rnd.random() &amp;lt; 0.7 else cnt(1, 300)},&lt;br /&gt;
                          &amp;quot;ratio&amp;quot;: {&amp;quot;k&amp;quot;: pick([None, 0.5, 1 / 3]), &amp;quot;remaining&amp;quot;: cnt(0, 80)},&lt;br /&gt;
                          &amp;quot;reset&amp;quot;: {&amp;quot;in_force&amp;quot;: flag(), &amp;quot;passes&amp;quot;: cnt(0, 3)}} if not bad() else {},&lt;br /&gt;
                &amp;quot;r&amp;quot;: rhex(), &amp;quot;params&amp;quot;: p, &amp;quot;has_own_record&amp;quot;: flag()}&lt;br /&gt;
    if fn == &amp;quot;reset&amp;quot;:&lt;br /&gt;
        return {&amp;quot;reset&amp;quot;: {&amp;quot;in_force&amp;quot;: flag(), &amp;quot;passes&amp;quot;: cnt(0, 5)},&lt;br /&gt;
                &amp;quot;event&amp;quot;: kind([&amp;quot;NON-CORROBORATION&amp;quot;, &amp;quot;CANARY PASS&amp;quot;, &amp;quot;CANARY FAIL&amp;quot;, &amp;quot;PARROT PASS&amp;quot;, &amp;quot;AUDIT FINDING&amp;quot;], [&amp;quot;X&amp;quot;]),&lt;br /&gt;
                &amp;quot;account_state&amp;quot;: kind([&amp;quot;GREEN&amp;quot;, &amp;quot;YELLOW&amp;quot;, &amp;quot;ORANGE&amp;quot;, &amp;quot;SUSPENDED&amp;quot;], [&amp;quot;RED&amp;quot;]), &amp;quot;params&amp;quot;: p}&lt;br /&gt;
    revs = []&lt;br /&gt;
    rev = 0&lt;br /&gt;
    allids = []&lt;br /&gt;
    for _ in range(rnd.randint(0, 6)):&lt;br /&gt;
        rev += rnd.randint(0, 4) if not bad() else 0&lt;br /&gt;
        ids = [&amp;quot;v%d_%d&amp;quot; % (rev, m) for m in range(rnd.randint(0, 3))]&lt;br /&gt;
        if bad() and allids:&lt;br /&gt;
            ids.append(pick(allids))&lt;br /&gt;
        allids += ids&lt;br /&gt;
        revs.append({&amp;quot;rev&amp;quot;: rev, &amp;quot;allocated&amp;quot;: ids if not bad() else &amp;quot;x&amp;quot;})&lt;br /&gt;
    return {&amp;quot;revisions&amp;quot;: revs, &amp;quot;target&amp;quot;: kind(allids or [&amp;quot;none&amp;quot;], [&amp;quot;zz&amp;quot;, &amp;quot;&amp;quot;])}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cases = []&lt;br /&gt;
for _ in range(count):&lt;br /&gt;
    fn = pick(FNS)&lt;br /&gt;
    cases.append({&amp;quot;fn&amp;quot;: fn, &amp;quot;args&amp;quot;: gen(fn)})&lt;br /&gt;
CASES_PATH = os.environ.get(&amp;quot;TPC_DIFF_CASES&amp;quot;)  # named: kept, for crosspy.py&lt;br /&gt;
if not CASES_PATH:&lt;br /&gt;
    fd, CASES_PATH = tempfile.mkstemp(prefix=&amp;quot;tpc_diff_&amp;quot;, suffix=&amp;quot;.json&amp;quot;)  # outside the tree&lt;br /&gt;
    os.close(fd)&lt;br /&gt;
with open(CASES_PATH, &amp;quot;w&amp;quot;, encoding=&amp;quot;utf-8&amp;quot;) as f:&lt;br /&gt;
    json.dump(cases, f, ensure_ascii=False)&lt;br /&gt;
py = [run_case(c[&amp;quot;fn&amp;quot;], c[&amp;quot;args&amp;quot;]) for c in cases]&lt;br /&gt;
php = json.loads(subprocess.run([&amp;quot;php&amp;quot;, os.path.join(here, &amp;quot;diff_probe.php&amp;quot;), CASES_PATH], capture_output=True,&lt;br /&gt;
                                text=True, check=True).stdout)&lt;br /&gt;
if not os.environ.get(&amp;quot;TPC_DIFF_CASES&amp;quot;):&lt;br /&gt;
    os.remove(CASES_PATH)&lt;br /&gt;
diffs = sum(1 for a, b in zip(py, php) if a != b)&lt;br /&gt;
outcomes = {}&lt;br /&gt;
for c, a in zip(cases, py):&lt;br /&gt;
    k = c[&amp;quot;fn&amp;quot;] + (&amp;quot;/ERROR&amp;quot; if a.startswith(&amp;quot;ERROR&amp;quot;) else &amp;quot;&amp;quot;)&lt;br /&gt;
    outcomes[k] = outcomes.get(k, 0) + 1&lt;br /&gt;
print(&amp;quot;seed&amp;quot;, seed, &amp;quot;cases&amp;quot;, len(cases), &amp;quot;differences&amp;quot;, diffs, &amp;quot;php_len&amp;quot;, len(php),&lt;br /&gt;
      json.dumps(outcomes, sort_keys=True))&lt;br /&gt;
for c, a, b in zip(cases, py, php):&lt;br /&gt;
    if a != b:&lt;br /&gt;
        print(json.dumps(c, ensure_ascii=False)); print(a); print(&amp;quot;---&amp;quot;); print(b); break&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>BFP Rauch</name></author>
	</entry>
</feed>