From 7bc9797a26c1ffdf96cfdfdb22a9d1b04372f3e3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 9 Jun 2026 16:37:32 +0000 Subject: [PATCH] test(modelling): pin non-gas->gas + already-insulated-cylinder boiler upgrades MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two more boiler-upgrade cascade pins, validating the existing generator across fuels and cylinder states (no source change): - oil combi: an oil boiler (fuel 28, code 130) on a mains-gas street converts to a gas condensing combi (fuel 28->26, code 104). Proves the non-gas -> gas conversion gated on a mains-gas connection (ADR-0024 revised). - already-insulated cylinder: a gas boiler heating a pre-jacketed cylinder (type 2 / 80 mm, no thermostat) gets a new boiler + a thermostat, with the jacket NOT re-applied. Proves the cylinder path's skip-jacket branch against a real cert. (Sourced from an LPG re-lodgement whose fuel the Summary mapper reads as mains gas 26 — a separate LPG fuel-mapping gap, noted in the test.) Both pin delta 0 (SAP/CO2/PE) against the relodged after. Co-Authored-By: Claude Opus 4.8 --- .../boiler_combi_oil_001431_after.pdf | Bin 0 -> 76968 bytes .../boiler_combi_oil_001431_before.pdf | Bin 0 -> 76966 bytes .../fixtures/boiler_cyl_lpg_001431_after.pdf | Bin 0 -> 77060 bytes .../fixtures/boiler_cyl_lpg_001431_before.pdf | Bin 0 -> 78774 bytes .../modelling/test_elmhurst_cascade_pins.py | 47 ++++++++++++++++++ 5 files changed, 47 insertions(+) create mode 100644 tests/domain/modelling/fixtures/boiler_combi_oil_001431_after.pdf create mode 100644 tests/domain/modelling/fixtures/boiler_combi_oil_001431_before.pdf create mode 100644 tests/domain/modelling/fixtures/boiler_cyl_lpg_001431_after.pdf create mode 100644 tests/domain/modelling/fixtures/boiler_cyl_lpg_001431_before.pdf diff --git a/tests/domain/modelling/fixtures/boiler_combi_oil_001431_after.pdf b/tests/domain/modelling/fixtures/boiler_combi_oil_001431_after.pdf new file mode 100644 index 0000000000000000000000000000000000000000..67894d886a07c7ed429eb865291edeed51a18df5 GIT binary patch literal 76968 zcmeF)1ymeCqA= zNg11)nmLiOu(3mvw6b+jvC}s+W)d@YF*h_;mK0$UF?VuQGIkKPwYIahF@|P|n@K_6 z8X6BXlZ3gIld%Jngq6ONv6!);t&uU4oUx55G-3`;R&D_SM<)kkeQU(`f%`fLj;fNe z_g_&i`pY=K@3{pzqg$b`+V6!E^>?=KxplqQ6A}@rKs6#FG;n$%f)o4(i75Ly(N?48 zv(FRb7KP&tSzyg|WwnXj4_;4L&&30u3yv3+e!EmtHz7*t$?^XWueRk*1-^Ut^>b4d zHrqOK)F#64;3Sbv#&@-z5RMqB`h9#JLYt2wxQ9PpD2HHyL+bax@er!_H-TenoX*nv zBy%1Ze109YCyJ7OWX?sKF;dp4o%IXGlx12EZfdkMcK2Gf22Cv6Ev?VYz`Oru^$FT+ zTY=0TUuDr+t~V|0?0AJ$I&)(c?C&M=oKEgmuO9!*Eb(%Z8+7@SZRBOSJ1{x1Jm0mm zv2onj!K(FvD$nag(r`Av=>|OL1F=1d7@t^H%04!4>W>yw|JCmDiY51}v7VIov8pu1 zRpRc<+xnaLQ62Y6s+5k;9kt6as;ZdLdMTVDBQ|qNQG;Ph{M%Sb1Q<%Cv}S%e^CyH| zJB~+KE3i0Tb*#3WzDz+lZ}7sy`B`7ZND$k_q&pzPPlSpapy0eW+nNwDP#m8kMJaoM z+o)uv-s{Az{qx4^(;v z%Rics^xLTU6_1ZDgfd$;D_s5)=XHML_B8HtZjz-XUMHse^ZK`wcA!JgG^e~`M6cKm zO&X!DyX#i$b;$>9=eCEE^O6##Z?+nopYy(kIa6d{Sbapx$rk7pib5O0&6#|F9Vmft zjh^*0{ieZ}fxzHsEMrr6UjNYAL_6ByTKrb;_u|Aow=th7f|C6b{`4i$`~oMovtTwa z&Cw2M`y_O9aTniZ#h1#prD!yGKluYWK^k47IZH*YqumpmuGO#@4j!~#yjir-cpeD# zx`-X@x*B-3;m7VnPr@jXWy?4(k2QUM8T;_<<8kq4z0xgoH^0bgWV{>7x3hS(>P1q$ zD+vqC3vc*dKxk*Z`^)Z!cNpkgs;UO_38@92&LmTS$x5^)NzC4EeV?biyE5=wK#?S; zVKa>ZNo{Y_b_!H)j9;}x3z_F6w&?e1wvZn&?R+qG{m5w&1uB!=6Q@8%sXuXFcYc78 zS8M;gg`Xuy9Ny@(H%q7F`f%fMUV;frk({9cp5G-vhKT8X_{7d$J%@ci?CV{wzCv?deqhqIPU_N0Ys(0WWNsgn9bxf|$p(2Q2Q+&A#&BCD^EHWLsQb ze|_ZXJ-hY(;f#JyET)!s zzWbzC7aQJr+J&g@eR9ZgX>%;dv5(Hm_`=TvUnWQ!d!9n#3&p+DzK~E+9H_6UKpn(p zQmpnY5tJ-;%X{qo;8@jD_PJu}0cPagL#8gdPh_Q8=zCc{h;m?J8oM0-DFjq8PA&`P zIAi_Rx@a?zPfvn_^2^Go3YY1XO)px8t%Wx`-#5O13e(xnA8rYATGMH!H$F~e={w_k z(eT;m-JDOIMpv+=rou>tA=c(+nev+}rH z8mO5oV&M8vz0!4ts|yYhqL85deeSzd8mPENXKch+ce5me$jp8;1{j zsecR(&AI{alXD&o)zVvZhJYO$@?!?)6uct~m*15Ob_D||mCAwrbOl=%75vuV0lWR$ z>$b1)Od`^qYq{;dU(TQ;!4;o2^(5iSUJ_P}? za;(#^tW;h>zzRM>{3f35Ft(9^p_!^|ziaqV9nY+sC*~kj?d1d(7M#>Y!$0hYtId0N zogHzXqcW&$V$w>tbhTb|eQ4rZ8LXKxIYoHZ@x#5N6o1}x)UY>7;I^XEWfOJ#rfTqk z_73b`aM~-TDvRBRQT9F3ycHAUCO?lNF8W8W?oFPl3eL^JDWV@Pr5!#~-T<8oQ!~~C zI#J;CbfzkqEuLhE{=f;X!GeleC3s&hghzq94}UL$ioaLa+G@0T$e+~5Wm9;oVY@^p zr>m&pxQ}6&fdE|WmcA_z76KB|?-Nz=K4V*x*dV%__l9AQ=_RS`!<#B(&P`21faK{i z?l!$ZBKKD}!Q4KUA;~1OrSl!&t2yfprd2xkpv;3a*?cR}^-x_(h61+kTBSjlzWO0( z{raVYG?UUa8my>5qiW8Ybj_1Y1jzlNOB|T4KyHU0XL4xPcY>xNpWIBg)-$TU55cJE%=XD3bMrEi!WrtBI_pmp3#z{^{xTy;64{yjx-MVF?Hnv@#Fi?3=&Ms*mo>w_ z3~fZS9PUd~Fa$j8_B6|fNPEd43;psq9!9NnV-^WdinKLm==XkLIH`)LH&5M`{O*56 zF~*T~&ai=%HI#yKJJ*%;tFrexQy`1eBoO3_8rFzs)LMije|d*QlBzYlSRsfEAxVL@ z-il3{oYT+9Y_%dXX126*W1+=_>+E9E$!WXr*!;ovR1Nhe{met_l5*k6d+_H)Jr-Z= zcs;Y%88k(sj@O6n<)*}Y*2~J)9IT=Yt((1Vapeg7O%9<<`#;Js^mpSBAVKVCnx&iF5w6B&Iu~J zOGj;=W1#IIv=KbK@7NdG-QP=4Ea=K>g*VweyB#v!94pmQFV3_xO1Qi34KQdjiedGo z-DA`Wx*0rVeRdo=?~Rh8$ot*&$AJJrS>dZXi5LdU)CL2H_PO7DDg!w1;(+K#790r@ z_>GjRHQis#pK!v+=i8v3&HygYuQDnMotG4Nr*xtre!e{_bL%gEHI{Nhn;2ajvFb*V zt$p#5roS+6Pt!NbGp=REfD$aci=Mw{b%a-KOvCiF+*0?#RpDW?v*~QoS^U?rOi-!9 zYcCDQuz`M=pjg!|na?|fG^e_d#S0d47`X~5Pk9&a_l%nu@7qqNe}%^m zKu_ErWGWJ=XMP`Z-$kRrnd+9ihXnlz-4Ke0?YC>Z)TGSFHyD?at&A?~aUKCV%gbzTWI8d zzKUNBBJMtZb`(`B(SY8;Zdb3|d~gzs>>4b8`BikG%Ic>3)!OroyyGKfHIIB6s=lIi z=kqTGnUUU(c)Buzqx4k2UtFTPHeL#b_4#{SR*m=W6s;zpUU>4J5qfEn#Z0tvTxDk= zymRZw{3-joM*`lXmLtM3c~7+<{mij`wA_&Ut}m0@0FCo1|NEpZE_;z?q5vABUHWQ7J;;=3IE23{&)qPge0PRo!sYeu;Bt14h>Sc zsj2et$QHbHib?7l9Gnlo5`*f7rxwhE@F{3@r%;GUvwk!jyv$8f21N4-Wi0*iX;k|M3ftjv!5U zVh#~YrIQ%ir=6auWxw@#OXxD}eo`DPK@mM0AoOl_fw^KAe_oh0zh3jqZJeJaA*_`R zem=F|pqUlk_c9ff2?@!5xk+TTZ+3?-NCgu1`&k3SMy&WO^ zouQle@(x-Qv`Rr63dVLex<5zE#I53Mhiv6XVuSZ7F;$4-)7LhP@o<7iuYW@O zyw*~!Y@ga2WXoT%+~QqLzIcyq=-t%XC|$1D znNimk_qX5$9525Gbf!}A>RSlk5~TR6GrP=X%7rkv(ZMiq9Xl{i$^je_sY5?^OlY6& zTzmSS!i@env_48C;vFjqk1N7J(rH%7e4Ur!bz=da4i4tkkDnri`A6rz58gUHT~160 zKI300yxkf}bMd2Uw-4e)HOoF?GdW?I+jwb{B23&3zHp_g)~*AIOp?VdP~lv98Xrx5>EmqrXgFhxDB6$hnV8CWU&xB1Ci- zF3w*3()P~Lf!E(Y_#yWTjygHQAsd3Acg3$SJHiqpx_!izUjxkLSKkg^BXg;fJDKkx56z*HhkN{n^g5TW=_uUe&S%c-afpWeBnFCc|x9x z>HV@2KHy~nR^-OovSK}cddAmbkLb;q0cwtP#)RGKt8F;Kw_-|I9FkFiIR&3!R>m_` z%!WQ6Kr3=-X*jT%#RVhve12)?rrS&K+Z|`3J4WNL+2(m+B4?k^>wMRu)pZlTq~$ym zH@(g*t0%AVg`xQtZ&y)3xQOeo;~KRn@HPl^6w!{kf}QFUP^T+*Nw^-fJ4AOD-bxp} zGgTd!g_TG^<>Q*G%9pb+F)uVyc{xP;En$c4R8#X6=zPK-AJLFevjAphR>I#w2TLJcSc0B0%@rTL{5QN@u0OOKCHa6`7!s+0Xtq8QnC5vv#!*1|*!9 z%L@50ft@C%j@QEv?~XFuL~Q7sE+?Y{+yt@%_pfBn2cmg2pUO)cpqJN^WBZ{PiwLNF ztI=C&Kedegs<)D`Ex|TGT47mn=GHNjmLq#rw}#kG7fWz$Mjp<@*wYs5MnOpgyGHu1 zI4x$>z@ZFTs3@L5VFmTMc8`ROBk91D$fqn4-CEkrkDg?T>*@|7_p3DrcHwV`335(8 zZ8GZ;OVUHO99V9=daUQWh40dZl)s3qViyZm<-WN!c109+7eD2=DPc+MDHdW9PB0ih z7OMYJ-g!amMN|U{0Zk&S##COfc?&A-%29m9UU5dm&WZY95h?v8R;JjA6i?+u&Ax!H zH|MnwN8$cn&|p+v4+8m_%caUze`|n|yK}A6kUX6hKSpfv?mJ9~+zmGthIl6A&fVE) z(f!kt=@J3TbgKXnkg5aR3idfdE!IrqLQyjO$gkCksnp?fq_lIQ$hGCkN} zk!1&xST<2F0rK_fU$bvAyqz0`yrmL9?R`ul94>Jb!2ASCyaCfgy6>3Mnr2tAEwfVH z#tq-&=0;1fLOdt%%zk>27iNI@At^hBx9IM>em`QIV}*9VwCneEcefM9iDw^$UJD? zQoUP$onO7uE)h&N^dmIJpoi|+z)}S?whp>XxpUskCmfy$wqy&WCPgWbhMBby)*G>koFHhD`3bb_}_zLzAky%YV`Zy5)+9t zhLK%-7FSaILW#wJU=g&XbuI1*86S{8W~P9&y3`}WuO&=HlD$hma-lV6d73hkC5bxG z+g^lc>$@eVF+O*KC{1<7Ce7C|N=Es$!6PP0xg3c|s>%ht%1_<%OGnSoZi)Vlz7m*% zLh<7kP6&kTT#xBdoi7&4sCMfiZh3!W{*s+;A6msuKm`q{9H8e*- z7y+3T0!(~XVbjBsw)tqwZFKH}eGl4MgGFnN4TW!Jc!E(YB$uD2~{3L&-FPrfV z=XqxW!L|{FN=(1SyhG-w?(19ma!(PPsfT4z-IukEJzBCr(oEp+m7qu~Oid1BUFgt) zfnXmMf6EKeul>9ZkGCxB{-Qm>$K-xCqB%o&BA*PFqJop$;s)ZTDyWoy5E)MY5V5?b z6JX3i?4;R2o(S0{u55i0?|8s}jNqIqCG@gnd&>_Fmaa!~eIcal9VYcr;!}zd1awlT z=;uFvxw;7Xw@mYlk<)${+Jqp{#au54#3RR%RF2kt7^)%U>f3Fqz>hfC-#-v+;d7Sz z4v&DvqO|DXV0Q#x!dB+tD7_66<}XURRagFu-SP%r%hhe@siCgmqR2(6C#^JRXwPkV zi0%5(f?xb;6eA8cd$mY47K_)Bw)%K>V{28QvnWof_lK4iVYvRM$$Djqfh|7*k3(2?qYZg`sI9}G`(v2!s0 zr{QUMCxXd@@l5OKc=-yCdY%y1$p&79bfc)aDdjzGo7g#uzC;F%z=lgi^)lCYSapbn zBIR6Vz73df-Z#Tx!0-x}eae}tD@%HX@boG2i&2~~_RCv;QPlhX2R6qCkIOr_m`~4O z5wWP1vW0yAexubtBqdiXtcZsWD&Ha{DfR#P7oo#SytZ%nkc7If6Eo((_W8Z0?dQVMG zK>-oQZ+ZE1uKhdCA+FR*`dikM`f zDBB1!l%KM%O`MGmD}WMPGh5EieoP^h>YKTlIg7NLoxZTVvz*R`Z=ri*N1rRpU!t`+ z;n}4ynbf+_JT;Zv4xV=m4BX_l{iO3bg1vII)+zSw5b6Nup;H3Qo=Y+Gl~VYb3;`k` z*-0sh+sY$pc-0jOH}Q_HdNFdOB&%DHA-QmVJ5*(AJUJ^XiBmm*4r?AKx2pDvvr&_0 zEp5z{LAHdrP3*o+a40EPh`?1HsED^PzhnaDWTZW3DsnmsBTFWP5(+r4%-p^ z5(Fa=WIGTQ;q(7_OdR!A##0vJ#k}0le4a|G;(NjvDO)>eEGV-&dFXI>%GS( z@D0}0Yem|ra=)jNlc~C6v{}pyH-*o43#ZquGun`q1L1<*YCXau!xs)KerlIi=BkNk z-`+8rK@43?;KD7|?4oxpEVZ;Wvn%y}N=QiL=;)IPwwCQ>v3c|xT`$DY279)pp`|1} z_<`@pr*buZ9wJ`0yDU6&gH_hhc>iVNvW}jQ0)^w8E{SpR(63PvT5g0yY`;gq1}?#* z;S+?wMB3xyf9P;PstOxEwF~rWMLn&MY}FF@_#x@6Ve?G0#gD?(LJP#V)BK^c<{I{m z~mROt!8UcULNHUVo=!R0%{2dCC+I89kM02iQ0Kq;B$q55Ab!Nuug75NvTQMje5l| zz$2DmR=S&-*Sj?}>mmC!u%V#dcYUS&9y?CT2BR)Gh&7Fopi7K`@ws1b&|kC**uN?* z%Q>x(7-@uQr2NGz1?$q{0?X0JaPg7pWe$0)>;QxV@q*$+zG@SP8cYL^9N1V&{F=dw z7ioX{Ao0R~6hYu+VOWy-GL}?pZq|EJ(beq+8%C^p2NokPr?kd*~Kq zb97x{pZnmVKCvE_WLG(roR)x{z^aS`8XW42YQ(^PiQ~OGbFOW|h#xPfaZ_*aUG#esd8U@aBvWQhU`gOGksBY(H}0ioUP=L<3H(3hlU6j;zLD6B`Yg~ z9(pq49?SQl$iXpr@(bk4U;$6}*vu&HZx>H1&?w|Vb(h~7WR|l3pmF;E32XOx7MbzMUbMTLFrC9R}h!HGs>3eZ3LG=fo*nS zp0KNvgNxm-@zIg7iHPt|$yrUj7XcpaZGs-x;m-#K6BHy(h#0K7YUvjI&Ny=2E9>i# z$+yicK4Ya;q9_DtG$-h6Gu}ozpPG-2jS9YX;?^nb5Gwk8_BE=nua`nn=w4CawxGV) zs$?z^#}u9_;=2V2@mu=sbs-Z1S-MI#Q|ppqe(m`^a~I7W{DS7dX3}mGBdJe{S9@O- ziS`MH4@^d#C@gZczIag=WSw0U zTnBfo*Q;de`GvA9y&IXB9F1N}*oOFOdu_>WeRMsv;$)@u%U(Zy)vvKSlJ^>5O75@e zpi55!L(?`pqkV+7UZ08*Pi>yU==AqYwe0uG!N+nQ5IvPjzYu0NPG6m!Jyqtrysux| zI(uhY28q2RxJ5eY(4TiL4-QK$BN>%GNB#IE`)P37Q=cU)CC%_xr0Qze8bSTx$PwRnczAeX>y*0bUJy^A&^aQtQujQUC&(Ne z3<|={XMWBWj3AJcn=6AG`quV_0869I zi|3ugLtSVQNXzxHmKX&lKckr1CAH`ox=!K)89{c?(Q^{A>W>;wZdiLeG+O(_pS6g|+>tKW z%Cc>rc^o0OzJf&2i}Hr&hZG`1?Bpp_-wcXm7RaB3#$+-M(Y^L+OXD)=R*+VZ8y%Zq z86FE3m3%{9QkYYIb4RKS8k3@-8V@>`?b^xjaa&h^DE4S$Bk}M)NnAhnKYQK8#$(4R zrPx8+(beJ09R1!+{e}J-W-&T=x^l}5=4Q+QUb2&pTjhuAr}q^V4wC`VoFZ>3kY7Oh z!;Reo-Htk)jYI7%>t*Dn$0tYPma)y^vXUTc^j9rQ*+@T;JBp7@@|a9N`@tRD3&{gjDA!N9~g zW~QT~g;<{^>{gkDcB9*Ss(5MLsGitI8$%hJ$)d; z1erndCqo1z1i=zH-W$bq^RV9H*R%VZ*gxz&w9?Lc*8U&0gM)~J=Zf38<>O!l_;N8@eo&=G;A>$1k zYxcdY&Y$+e1;6Yb8erpOMnpl4AuKE`92py#-}sG8%^ufMP*@5FX=Xg~6b0K8xR*ri z3vj>}Ydlc2(M5IU3zuAGMBWZu$oi>@eVATS_xG2C5Sx|(;Vz(UkX-zF|Sz+83x+C7n|{)$CPomJmQ z@X1>W3d#*5)35R^Fa0@b%PdR$&n!wBtyH@|v_xG_rEFE_L}15wo1Wkfpc`Tr1z5b= z*&fSCPmrgNdxev$WPP zd<%hgMq7)Vot=HZcrP@@epWPky)ov1j~}mka|7G-^)&?#o;?g36%{WXl8+EIdGC`t zO)brCxA9pg-s<~M*j-bftT$~RTE1_a-<%{ZRz9o{&9Im&lQozeUvS;y7rCmd6=S!5 zObnvbey&*?E}EX4{1JxVc_rtJnbA+|)54E<)$R1UV31o!&qdNl1|)2Ej?hT~zO!MG{BOi5*_TTOmjy-MkHcO7}FZh;H zj$rj{A*0~`drCaU?ZNjBJ9aXE41jm>7)|+Y+g_(n$a30yQ!^0T#7BsF3$ht&Ls{j44A3%DON)bNg&DkMy{ z^^F~Y;=lW|)fv)I=yncvf>aK;ARl`}Ly_S`Q$b>WEzS6s`72VDGQw#CsGvz~TS>tW^Q(+IZT^z8M8xvBTI4}2x-O3cJWpG{rV z)bNZy@7eF#>77x3#r(N}zd>b1xZp4{WqaHA-dh`!!OUKNb>QM9UJH|Lo2KlKms0fZ zVCgAXH8g*9W$pgbLf;&!w-j&jZ>G~(x9IS9?MV(WCt#cIipGyG39(+$wSv7?Ts%K0 z9A7a7!ec;x(a*fF(5OE4O&L;QL0R-xyxHbSt(JtylqAD9pS}5$UrD$E+@AwaHl)G)`20pe z5RZFb4Xp} zBOujL-@jrC#1QW79n&=2#x;+wtaNmDPfXMy3DWiU^3U_1IXi_=c*DRv6PB`jG0-^? zaj>(!v21p@v?50p6iP`+N&cE#qQg;JLrv}Hub^KRmX>vP0%oa3-uK|As_L3DGK_K1 zdK&Qru`jt2*J6=ItZ|yt}g(&?7SZ)@4`S zUO(n@rnj3}vfRcJQcJsVG6#~1W7(I|QX3~HEGmU?MO8KR?d>gaV}afgY!V7Gx2b_y zd`1F4^{aH<`i?!7iJXBK(b^4l!k=|bAV!hzq9`kd^r#=`QKzsTQ< zJ&E`CU2%2FruRrC;>&ir=VSz_$m@9ThfDD>P4=~o4Rvv`bE{S;6Z64aV=Xql$}Xx2 zG564_i{C$2LO>j0$8vW#F*i8D zczATwAjfuU_ViMN-M-v@vJ@;nRvN7t%;#TW>*m* zCod;6sRFG{w9TY54`uCZE&1^f#gwLoBmRLV&#Qt@Wp<93Y`?cJp|`NyrJkZ`YdJ>H z+ZY7M6B4GwtDoF~Da+C36IC7JIhJoP$cKNT6Ra2)N|fBnm^g|JB$*Uv5j)&ze>fQ@ zyT(!XY#;rRKzoGz>B9+3hXG!-mmjbD{Nn z5@<{3l+--De`K6}m;P%331-EnbA@g_$zZaqgn>TSwxqt8Fcb+Zc1T-YIdqeB)q>*<#9y^ydAMt{N+qM}6D{@yCwkAd-JwFo9H zhEic=}03GRRII@pGL-tWO|0hIC@7 zPE@Aa^3uXry$chJbf*V{%h^vAXlUu#|)!pN=a{Dpd9tk z=hyqm&(hN01-oF z+%FKFix)-S?3}D4`G!`LyX!$)AJqW^3d%RsYA2QrC?oVlr>R+*km1DUd_x&`Tzkr8y_^Yim7phljkZ{60Mj>avw z7>gC65I9@&zxp`mw@j{nKy3uV{?74vYN-4-RhQp_Pv1$}B>jT-cyVa6Hq;`+Ht{7 zYBKY4Zm+m_tzB%(z2<2KtqE~k)=hs(TGK<=?+_|>-4Gfw9maeZwlOw!oW$Ow^gctR zdJ79Hc20JD(nEpRU<@#a19x60rN7MOzMP_LHM`d25b0A9Z0SV-F&)a^>Tl3!vpu1s zWr#?K%5iZjD$06|2Pj)>No+hZ>1`j}qZ+f%6K#?^62m@4g?+CoQ?@TlZpLw=z_1mf zZD4d0rCv^un%mE_EBMs>YYoewr&4@6)GZ+)2H|Z;`!4GeOjlR+d9a=f+QD3nf0c$V zC@Coo$tCvtu| zA9Q#tWleO{RUHH!F2b4EbzuejV&Gfs7$tJjzrl)RC8zgP8o4G#NANZE(e=@`+RN<@ z>$P3ee{9pDmAcm*=z9D5DhLd|`xQ?MzTJDsujL%g?fv#-2v51aWe{9}EQ4ReBgf!8 zP&?BUH7BkU61za6NG2mYajyGviQUew@MySf8gIIEaC%x}xViP0c17{4dcOhvN$L%3 zB{hxQ!aRExRtGT|vGeou7MvF5*3IkRSFt6$VG%V5E3jABmDPeTp8GAnR>u(^TSda1 z(dD;0fX7>3Ja^r}-M~esNWn{6(s@HgxxQY?F!!kuW8KWuR`GirF)G|3JRBUnj*_>q z2`Z*of?y=>{{A-Xx<6=0%5-gW-ISSC4_wSZ|L(`x)aC7MePK+Dxx65u~7@H1rb}~p*RJ0Q=h+v^ZG_1C8iA&_N1IxzXD;b4QTku@q z{0l_BC{t9QuF}GotST7)n&qDl*?MK4GoAdOfq9t@Oy~<>Lsu|;`fO$EDk@q_O^Qy6 zaL^Ifjn`kK7ikptcx<3zE43C?Du5(S*K@pnmVZe&rhC{6rdC#eNkl}ngsp*#SoE#8 zr^VjJ1yc)!&r0ghA=}uqajbI6xx2UDZ;$E*XMv6EzJ(C|wvpLG5?xcDg@vLhfW(BJ zfnj=jcvPCxWvR+xKz^WV*_G$=Ew?{~Ur1&~X-Aa-^vO<-ZLCP=YYWn};e&%69OAs4 z#1S;MM0K1b5OFEVBr!3*ONDDaKK6Xes=R{2;9x&=hzTjM6*{hE6+>KSTG_kO@ z<=0(&C!TSHMJ;9M;!+j2I6X5u+G!nk%N@^0*-6Dss1P+uLXq=-_W<(m9!Um0z>}wB z1^oTP+ed2j-(ibb|G~psz!m|v=>Jo01lS_L76G;hutk6^0&EdrivU{$*do9d0k#OR zMSv{=Y!P6K09ypuBES{_w&?$lwutjz8=n5BZ4ui)7@h`f5nzh|TLjo5z!m|v2(U$f zEdp#2V2c1-1lS_L76G;hutk6^0&EdrivU{$*do9d0k#ORMSv{=Y!P6K09ypuqW|M< z(c=_H{~fl7{U1EM1#A&uivU{$%v%J^TjU7LTLjEo1k76m%v%J^TLjEo1k76m%v1GWgTMSv{=Y!P6K09ypuqW{shh=uuI8=wBCaS_)) z7@r1k5rB&TTm;}E02cwc2*5=EE&^~7fQtZJ1mGe77Xi2kz(oKq0&o$4ivU~%;35DQ z0k{ajMF1`Wa1nru09*v%qW|M@5ev(|_Vo6j) z1G)&%MSv~>bP=G709^#=B0v{;SN!_2BP=nZ+ecjaRdDr~JJb)*MSv~>bP=G709^#= zqW{^ti1l9^pZ=$H5zjvup9XXhpo;)q1n43_7Xi8m&_#eQ0(23eivV2&=psND0lEm# zMSv~>bP=G709^#=B0v`bx(LukfGz@b5ul3zT?FVNKo_z7=cl(4wl+>;#*T&#=5|iD z4or`4|I9rk>|m~MMK5A&WyB<5rEls;%EtQVpooaAn-&8*7Y``|7Z*Dz3p+bADGM_* zr;dPtv5k?ffdwK9``@R)q~dJgotopd|ClLu|CJ}u{6J`fuT(aXiNJXMv{2!py?) zC$Yx_xma2MERWlqP}Ri+&Di6<$CEjjng4`)Oo$trfj?oP`~RHxmvDbO4|>kyHV-@d z-{O9Z@2{D7T(fgRKM*vo#}D|o%tO=o>-L{C|MG>fKIQ?sJm%qX{h0n=!~J#rC!WXS zk9mDO54!!B$H(4t$I|?tu8_Z85ztf~OZnq5 zE;cSwHm<*1InY%9x{rf{m6V;C`R_~pV=?~^rJf7=7FrGR@iG0W=alqKjhU469UiB3 zd;G;2WhQxJBXj-7TJ-U=aPV+2vT{L_=4NMMgw|BtI?yTNY@DE>9Z6ZZ|AbdIcC>YN zFf?|AM)_D%KCYm3?&J5N%p}1=%JO(AKr_JfUeUn9*zobVH1tdRb6A>%^iMc}Kd--5 z(2w!{TNWkEt(=UZwZ4_Uld+gFwAM9dk~6k3buxn{&dwts;OOLFtZ$9@J}^T=-f@;2 zqhS}clw62Ec113HU~F;Aaa_88Jd@g^Z;Dn1Bb}}k@Lc(L>$2bcVVzSfG{8#QsxJ0h zJ2JS*hW+|8!Ea6(>f@$25!^513+N+9*=2i-+&{?o1QOkOoLR@);Jz%3{Zzy~t<#+v zI6%uqf*`E=CDkWNJZ$Mm(S+R+#DB|bux2dwRV+7lm^zT-2!4oq@%{VGn4q5fqkJ&&F0QYJSpdN}hvVFh$`19M6jUd5!2mfe9s&{t5qDT%e1JL(%RBeQ>vb zDV4ZD8j6D>KFjA(BE!{s#vmPZ2eh*ZanbnL3jX*!QrDvOIJ^Z@nz3rPZ&>LjG_Wz! zLDP2J^mTZYXeK7YgOQ;rc77|*x-I!_{qT#J7A{mtuduL`X-QV|{Bo1aj^ zCruv82uHMsmw{&ReV~T2sVfCY3poysuws|KJqs9zn(_tzsh@K)?{HS7qN<$@Rp* zO$>r&c;m;%LH;Y(ArxQLU?HrnMkis)?b)j!ioLd~>e;Dyx?sMPr}vXdqdzfuQ;IVk z{ohq^|7`A3NJ_}OqKOQj9Fn?dZZ2`rmAB5z84VPU?ki4;*sb`$iEL?roo^&T#VF%3!&+M22T==e~Bs7NnkV?sGBrY zbp3v%4ne5h0tp4~qs7X}=C#=>x>crJ73F&|Y16z;S{*&TPmFCPHW7}s-)}>;vGK<& zkw*5Zf;CiJuEwX!=ONi0# zvi~W>)bNWT+svXS3Hg2ra_n{dyG9*GQseu)*QQ1F++V=HUHn(-o5rpI@4PRj99vn1 z72i`p|G(9cVX0_tVH zkXH#I@b{+M`gSEW;++Y)NLi*?oJ=e~?p8*!?s>21VJC~w2LXL3bOEn~Q^Jt3-R6N{79+sJPz{-(nl zEPBp_3lW|7CO{o;lKg>%5U?{#{)?ma)?WmPuX=EO?DZGIPOPN^s}S>^6d#Zo*=1EP z*K_)CF1DkDX6qBx_sOR-Xu-}jPUL0WRYNe&xo(QLMWSIh72Q-}a3QiLAJ<e1Z(cnByTfaNi0rK~y%)5uDsM`5hh|nhYFKy^w8{hvjckKU0 z|A6(e1EI|Huk;U~9r=IjAFz@BrT6gILHJ7+|HS*h>>u!OF#m`CL9V8j>ntaR_avmb z?_w`Aj`b&c{n@}IyVm5ngp0>TOe|>_L8zT{Z|F_bHIu85##%EgtP+p=C(+Y1TV}RJ zWTCYoX|a&sn4=#tg{9MbNu@^v`X@;Q9UTg(9#U?3q%W9am?NJN_jP-}+XK%vsPQWV zklJG%dNXy<`L#iQ8U4PVNK(Xz|#c(`ckdy z@;DU(C-!DN013yA*x$pR@P)$i@=Dg&z=sSqrZvZ!U*m5r9dzz@?|tHmZZ1*Y8FnAZ zHm<^B+6(oNXuSI+NF+?@q1XL(38Ddxt&B&&KXH+t9IzH}RcPgz;^|*KHzH5N z4rNcJSN;0U8GI1&{yNYh>Ow|W(dg{kuLBL16k?FZo3D`^PZPXGK5XY!P{&gh(XVV% zCzQ8$&dK-aEcAmcj(vXxdiVB8vVz>7`rMR#UxS&i6d+xTm$NpBt+OVhGP{k$yiYZo z7v|LN-A^&b&!9vU4Qa`sUQo}G>kt-q8A`{d!HlGhO$pVWM4zi-_rd=XJ|^0G$Hry+ zYm)=^r8cf62uvHzDxd+2F;Gare_1LL&imRl*GBytc~}YU3~PF!h^^O__@XW2IO{AH zihBt>6BBwmTs$g85Q$6vK?*NRF%uUYec8~lbhrkQxW6`+hOiCSE?&DdldDAi#HVmO zv{B~$O$WtGTH9A63++?GN=9w*L}FDQ8{t;TXWNGTR*(~i&(&aYlGdEi0J&M|gAclh zyLVYShiw}#n|#y@`(dS3kWLD_?^#8--)d|LOtI)0lU~#n(rVGI1cu64+ikw^2(;@| zB(-?QKjO@3>$DDo;30qG=C=HyLUB3{^X07EW?KDww|5;l3DXQbyOAC0i5WzWQDHTK z|5qtj9aQDk^`+r}bV(kOJ^}|0r=$fbLAqPITaZRN1SCXKX^@UXhlB`-gmkAMacKm} z7ky{Gd&T?B_szY}%=6EhwfC&GX3bt}{eFA)X>pI*1g0Hys_bJ?w@>Q2Jk%}sUZe%E zxKLD~bB#-eLgRE?@x6at5#QwH@eIT;2 z9y)@)^#z%zAYkEUNK578ph*?r zEC`O=`OF@Jw{&ONSiJG-KO4sIG{4P!N_dFt{BE_Jx{zVBIL`yzp&>-QRLBr{tC#_Q zvw&f$n`}7XW~6d|O3XPqUZq0{z^?C{28rwM zz2OPtu;2(Z$MCOueJrUh=eRG>cUHwS8I(+w0cbJh9g)6o?}aGjEFLb_7i$H@njzxWp!& zhN!zpIftX(rb%iR&3Cvh-5KoXxv+>6lTEv$o~?S@Y7R5~M4NG3+Kc-^nk-ha^mCs^ zSa@}IBQ|I+JzZ?p$Abx9gt+)Mf*tpD91$hreCf^YmX!CN#YJ03MY04GG!5!Fsl8nv zoIq)tnRG`abq4f4MTXE7dTc==wVh0gKqVMxgKn4-FZ>8$pN1#7htLvuNl`wpKpu6c z(Vp|2bIWfvOJNiTfqKN<2RU}b_1IrpQ$u(U9tf@MWIto{)!}xgmLW2o^-~m%u@t{3 z)-aXtgS*aN7?d{@ot*ejSGlq4=s`ipA?T63ilv56?mH$&-w}Det$yh%j3__+y$RvF z_Qce`X+r)BYW$NXgdg|=D^cc=fdYRb9lwASS6Ji!1Ek=GLjKZ(ptPo(reMV0V;Y+e z%_nb3p}i|Kn_QEqrfZ0+eVa2nB&Gd~8OEI9r%LCmJa-bNC(DGYl5kAPjtl7kAJNfm zQgnSt=XrCs6yA(3B?{g-F+$)Py=-oFUFbRR+3?;B8j+gE_A$UppF10v@~%DY;r5Ke z@Mqlg*+zQe2eo`|dVf)PS|fy~AT)RsFn~2kv`c&T@Mhp7)4V#mBdO6i?IRKsE9>U5 zG4yQwp$7`cic(d-Dg0;6S(w~?Ew61p^H=mcq;N&bXEDJhh=y7`veqntO6Un^>65#6 z0$ongXQdpm;WTI!If4PiFK@W3`-80gcE5~31(Okjlv{`Qb<#e$fP$xuy2|jF{My$; zC;hglCA08!labL0egt#E4i;bL`Ttn{^h)8OXto2gim8Z8R+2i$QOV-t<2%(ygMv{2 zV`uC<5!~d|4f*s-gZG7&ez8{n|=y8s%)gC$-Th9u(=`w(VT9)72*%HiD(I}@qN*E^8&$Xx+(K*@Y zqHY)-pk+f8_JG3zO13jIn?HCXZLh)mNv=@;Tur?P*P47^4Tt^wAdH39R+cx=BjfbY zHvCyx)EIthsl5t$VEbB)$)xX^61jwfw9xkiM+uV2tS;yFEcUl!^;unb$x4B133e5= z?j?k4ht(r9Ym43EM07Jf_AcFfsdeY!le0;3H8Sdb<;zyZIu$m(Zh%>9oAxwReib=R zNF=Ec$VL#Pz{!R7WSU`2^zB{RxQWPf}+xdw6Z0n4HK%f5`y54IMmKFVN+GD$V_`PDIn#%bCbJ; zT%xMrFq&Ss)V1(1G{C!eHcW;IUqOeccpSM|i_@}6?5<{5s#d@%(O^A8R^mEQ!h#11 zuq|lYpqt?IFgFvnjBvfU+X<=bu#Rq*uPXgl!d+N7cser_q#qZ{$NMg}V zwH<&Rr19?jaJ*$@cRv*#r#ddD`qp~}LHugc6#MrKypEj70HWu`!-S@?zQGOhC!zdT zEmNB9L4OvLN90~#zJ?JQg#12&t}fi=UVPyNTOG4rbCT|}iI>Z7ttyzeHc)-F8rdQ} z{nSV8`I=v*rdCZ%)2YP`IMSH=hsl+c3p!8D6#BOLD8o z`gcCHer_pyMi+QQmO&yGRUBx0YBtbD+U^_EDGQIzTWkWo>HnrCT_Yy{O-=eQHvUg) z5)AlbKEJ9-SA5~m@%q=I^kd`yYcl3X@cyMHJy+4QPXUvAAC=Zdrwo%!`Q22A%N#_h zR7Kw(39%&N=4}Nr7C5Tz#(m@Q#KV)Xu8I&vH|Rqi9qaB(V+Jh%@;|iZ0hb0MG7--j z)AjI=hhrI+Ur2ZoV=BAr1}{>xOU;K?fEG`IL3Ax47g4RdajfqNUH6l~?o7jEd;mWW zlE*u(#yvFviwB?M0M2~)#QZi8} zr(D}v^A?%dG|J3?fdP?aW8e7s;VcL9WEK-zPkWm4U{U@ZUd~%(VXrN%6D)xnW2Gt+ z(x!vFN29ZaH3SOhUiTcU)n_ayM%CTw9U1$rynuVC8Qv&X7<0Q@Ww8wVw^bv9Lg|y& zx=HTc3C1OB+N+Xk4h0n2qcd9V84D4(v=UZoYK)(C)o4mia%}sho42`THHhYq#1nPI2eL#RX>ss4L3|4NS>rM_=3gJo$ zVYKpCtD7k!w_&-Xw7XR?$T8yu1lJ{}oQ4uFj#&58hZzx!;&n2+zscikwCBIc6ViL@x@99_p8?fY2S%! zV@w9`%2$%_tt4P1!=NaFoddx`{nCI04yVwg|J*y5ZcF;kC zwCbU>vyxgB_dPMI(yt#3ONlyX*?bU~a}g+P^}=Ac!JUJZfC15Joj#|%-nF6k9D?yp zt4&gb(zi!f#b?Uz-+o(D%y@9Xo*^1Az7#&4{KDGh|U3~d>N_2lG8bHrnHBJIL*N%!c@Ltm~Y60>5QOU9b1 zSdAyUb+3OqFv~LCB&ZR!=7bB(6D$agPA;mxVVtO=28^*JB#3HxJYGnLPI9rNmFW&^ z14?ex5L*-kr!L-X%b4a-6v(lJHu01kF6R9q8T+iQ(lE8>p<;GsnH~FUf@r>t?v2=C zS}QecBTkS-aqmcQe)~uL8)kpR7QS3-Oubj2wEp~wg+*dd=sPY56_09itlU!KKZFKNVusTcLl=a>Miy(Ta3k>)EboFel~)U6=P{Neh8kAtr!n^vjH zwnCqCeG9)+E%_Bc$Uwv=@C9mT(GzD;#EVm4Y~}pu`*gnowf25rQhuoNlD=rCZ0?qH zhQ0S0&c__Tjj52KZZd_ajEKAy<^xtbdU5!gctfS}_5==7`5;{Gi*CN;=Sxmn3QS8g zUPjE^KV)>o@0C^qC67Khf-|atk4_aK*$<3zod%qa`=7}y-v1)8D~zV^X#U-*sa(tx z4eslxT&VMyp{<7Z{(GI!39}Lb5 zy}lL(=YwAN0|tk~f0rR(*L{N_pugD+L%@*NZH9wk;On-)!EpF*dVFx?^*CQe1?4Hl|JhK|uhIilv9?k9^@#wzqcy fUMT^U0m8xnXBQ(Um!H`Lhe2R`02Y=93X=Z;b5DFO literal 0 HcmV?d00001 diff --git a/tests/domain/modelling/fixtures/boiler_combi_oil_001431_before.pdf b/tests/domain/modelling/fixtures/boiler_combi_oil_001431_before.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9f7a6994c493f95db0de351a92d1fd9425cb9cd9 GIT binary patch literal 76966 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 literal 0 HcmV?d00001 diff --git a/tests/domain/modelling/fixtures/boiler_cyl_lpg_001431_after.pdf b/tests/domain/modelling/fixtures/boiler_cyl_lpg_001431_after.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6dc4fdf8f74fddf9585b831b7a98460bb49b5cf9 GIT binary patch literal 77060 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 P6e0)~#A9ZbRh9cMD3hoW literal 0 HcmV?d00001 diff --git a/tests/domain/modelling/fixtures/boiler_cyl_lpg_001431_before.pdf b/tests/domain/modelling/fixtures/boiler_cyl_lpg_001431_before.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2b7a72872eff91ad1e1c95760ba210dddb1b713e GIT binary patch literal 78774 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 s_w2l^e&1JOI%xD+LGE0QbyFIsgCw literal 0 HcmV?d00001 diff --git a/tests/domain/modelling/test_elmhurst_cascade_pins.py b/tests/domain/modelling/test_elmhurst_cascade_pins.py index 9d8ce4ff..a5cec154 100644 --- a/tests/domain/modelling/test_elmhurst_cascade_pins.py +++ b/tests/domain/modelling/test_elmhurst_cascade_pins.py @@ -809,6 +809,53 @@ def test_boiler_combi_overlay_reproduces_the_relodged_after() -> None: _assert_overlay_reproduces_after(before, after, option.overlay) +def test_oil_combi_overlay_reproduces_the_relodged_after() -> None: + # Arrange — an OIL combi (fuel 28, SAP code 130, no cylinder) on a mains-gas + # street re-lodged as a gas condensing combi (fuel 28->26, code 104, fanned + # flue). Validates the non-gas -> gas conversion: the upgrade targets gas + # because a mains-gas connection is present (ADR-0024 revised). Controls are + # already adequate (2106), so they are unchanged. + before: EpcPropertyData = parse_recommendation_summary( + "boiler_combi_oil_001431_before.pdf" + ) + after: EpcPropertyData = parse_recommendation_summary( + "boiler_combi_oil_001431_after.pdf" + ) + recommendation: Recommendation | None = recommend_heating(before, _AnyProduct()) + assert recommendation is not None + option = next( + o for o in recommendation.options if o.measure_type == "gas_boiler_upgrade" + ) + + # Act / Assert + _assert_overlay_reproduces_after(before, after, option.overlay) + + +def test_boiler_with_already_insulated_cylinder_overlay_reproduces_the_relodged_after() -> None: + # Arrange — a gas boiler heating an ALREADY-jacketed cylinder (insulation + # type 2 / 80 mm) with no thermostat, re-lodged as a new gas condensing + # boiler (code 102) with a cylinder thermostat added. Validates the cylinder + # path's skip-jacket branch (the 80 mm jacket is not re-applied) while the + # thermostat is still added. (Sourced from an LPG re-lodgement; the Summary + # mapper reads its fuel as mains gas — fuel 26 — so this exercises the gas + # cylinder path, not a true LPG conversion. The LPG fuel-mapping gap is a + # separate mapper-front concern.) + before: EpcPropertyData = parse_recommendation_summary( + "boiler_cyl_lpg_001431_before.pdf" + ) + after: EpcPropertyData = parse_recommendation_summary( + "boiler_cyl_lpg_001431_after.pdf" + ) + recommendation: Recommendation | None = recommend_heating(before, _AnyProduct()) + assert recommendation is not None + option = next( + o for o in recommendation.options if o.measure_type == "gas_boiler_upgrade" + ) + + # Act / Assert + _assert_overlay_reproduces_after(before, after, option.overlay) + + # --- Solar PV cascade pins (ADR-0026) ------------------------------------- # # The solar before/after Summaries lodge *synthetic* PV arrays (each 1.00 kWp,