From 833b8d49f3ba55001e513666fce50eb1472cabcc Mon Sep 17 00:00:00 2001 From: Ricardo Sandi <50056806+RickySandi@users.noreply.github.com> Date: Tue, 20 Jan 2026 10:55:23 +0000 Subject: [PATCH] [sandisro] Adding tests --- .coverage | Bin 0 -> 53248 bytes __pycache__/diffusion2d.cpython-312.pyc | Bin 0 -> 6660 bytes coverage-report.pdf | Bin 0 -> 145854 bytes diffusion2d.py | 11 ++- requirements.txt | 4 + ...t_diffusion2d.cpython-312-pytest-9.0.2.pyc | Bin 0 -> 2415 bytes tests/integration/test_diffusion2d.py | 57 ++++++++++++--- ...n2d_functions.cpython-312-pytest-9.0.2.pyc | Bin 0 -> 2948 bytes tests/unit/test_diffusion2d_functions.py | 69 ++++++++++++++---- tox.ini | 10 +++ 10 files changed, 124 insertions(+), 27 deletions(-) create mode 100644 .coverage create mode 100644 __pycache__/diffusion2d.cpython-312.pyc create mode 100644 coverage-report.pdf create mode 100644 requirements.txt create mode 100644 tests/integration/__pycache__/test_diffusion2d.cpython-312-pytest-9.0.2.pyc create mode 100644 tests/unit/__pycache__/test_diffusion2d_functions.cpython-312-pytest-9.0.2.pyc create mode 100644 tox.ini diff --git a/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..9bb429d98c2be69dd53ab0e026b858ddba616293 GIT binary patch literal 53248 zcmeI)%WoS+90%}yxOVI~Y*1B9NUO}HBvx$)w<^yA1c*dMD_Up~LIQVfkK?8GuCu$& z1B8l8rNaLJe*>att{nOwa07Abr9~h(wFiE`efW{Yt#4K1?<%(UF*7^!nU~j&_oGYa zEnkX;+LQ#|qJ?7{UFDY6{#2fUg4y}({%_ya<@8^t=ec)2 zTwlAqE-tUVeSTep`@~8{&{8alHQ_qjq9a|=uv$`BcHOF(zGZI+zbWI;T~F3|&Z2!Z zYjMC*5TDm7R-Iz`a)XlSxK`VAcf~ciTL=O~XY=KbAMT(;q_tsl2(c1H&kI*Jq$};3 z^uk=MSoM4+|LyfmDtGj#dP@dnGTj>e&5o3Yb_|Mgu0aXa9JkK7uezpPYf7&m%zg=L z4&`&l4@>Jh?N#3qEz1syX?vD$Iku2Hvexxw{lEei7%g51Z@4s+)>SUh)i7pst|6U4 zSrYKk1>+3vQhME*s$-Qmii7~zS1XI#v2aeXH$?8J3*KwS>X zJ5rr7IoD_yt7}`EUD>bvf*8as1jVqOg5W|>3phEO%)NG0Rj5_U9dENmZ=EV;*LQ;L z3RQlkOi$UH&(5TBOH1ml&7h$$Po--4UVkM$(rEg-$21*2KEB;>FBxql+>2T*;WUCS z!?8tJInV9!J_dG;V_GhCSsH`G89;Erx=De}s?+s@_RE_=^W?c_kl!$Y z!FFsfRR}&$DP+Dypo2JL3khd(Vj?f++EQ?kATvS3+BQ8=b0r;& z=F%WzB-Y%Ut1y}O=tw+yK(XT*Z|#Kl4@c48N7@Evc#8sZ(mN8};CDaH@Fp zPM~eZWsNqqk(RaR;GmIxK%+FhMH+5g3_fJYo8cLFL=3CF8q&p~qBlsHJYV3e#sh`^ zus{F;5P$##AOHafKmY;|fB*y_aQFmtRZ~-Z{jV8+D8_wy!U6#ZKmY;|fB*y_009U< z00Izzz*8xZ)$|ia{BI#I&8zz2Li9fXuawGXN@e~hf6ch77F84c{{CM#RutoB<4bzM0s#m>00Izz00bZa z0SG_<0uY#Lfs1-V>788NcHC=Thwf$Mt@_gA+Y%K!yMEKLi*ySXw`O@V*zc{vxzf}p{-r%gJE1Q!fIFtZIyP#4=mL`eE8T3|zU;4Xr2PMbemmf-w zzyH^bykdN1+@=>S5P$##AOHafKmY;|fB*y_0Dn{<6L~QG%n_ z|JsE_Zz(-_MjmthkNf{kce6(6ApijgKmY;|fB*y_009U<;Lr=`s;SzkWP>{m3_prcr@svT7oo zKK|#YzdUp0;b&_2`~Q22@xb`kxObR9P!ZA@F|6~3SL1>1lj<|`3#NCI(MLZKv3(l&%J$dZ&UgeDD5>s@@WjfuZpw}8d@8?tQ7G0C69Zs zk=LY%jWBFO&ag0r)UXZdVH*oq(9C-ssrjp))OxY?7AW4vcx(WNU4q?#b(0*!5!dhm ziYtKK!3SuLg4#_xGp4r{DkW(7d{=tF<}L@GH3S-ggx`8x9f8Bcm_5_1mNMLGDLo@N zDd0ps)ufiv=c%>Po7!}nO8QMDW>cvkT^hq}M5wjUno1}9K2Z{a4#_WA{Z6aH!-}Fc zcWoK&URXIkqToXc!HvRiOd)*m^^GZbm!j*pJNzC_q5JJaehFG78?I0y?{SJ~wbrkj z8%O-YWih}ycsM^^lt6tNv{P^3M|r{F7Wu}^88&l=0%Hnex4V6A$!-r-<<9C*y2%LA zMWpTH*lHnGS{|it>XK#)`mE}(vI@xPlWMg-Pg&!KhKilQXn;(4HDn4?tRL#v(bhRK z8xI9^BxV2dmTLXQhyNXiHToH=3tzEVs^9pcJ}AH|RC%bMOkS$`cS&1T;ATjV&NN zD5Tpb3CNNPum+fjP=fM#I7PH}6)}Pta*7%0q?`4)L%f~yds(+HRJ%nzxA1^9#l$F( zaqMYvRbtOaZ!H$@ooCwS_qQ!FZQE4Ue#9>p@0(}Z=j+-RnRdjLQ?+a^MXH`meM)y| z`mTPSmRjO$qIS}G>jhN1sraE@D1*s3GN%j$v`$sC@BN=?_Wz)(*s$sxVI^59oVPXv z>xC9%Kyp(4TErirBNX6)MtKf!F`T`BDJiO4!~g(5ONYoEy}5a zVj5-XFF0e&rUUeFxey4IYqoexy+yUnxz#Jk2!!;UWPQ#0e#BNNSfDJFBZ9U@KzJ9> zgf_4vK-hsPbU*+IDLSWL03U7BsQ^-NZli}na-+>a#+pThE6wX@Agaj%NMLA8bURp& zJ-`aAmj|~mh8mxTs5~7GgM9I)K(>Wf-M#&b#Ruk@&iR9#i%ciN(*Apv#p3#TreogL zvB-3!u~fbb;9^Kx(w<;P5vVGIsC$77$S?W{$BfVVL8a)>!lckmf zIcZB=nQr;y$lW7Tp_y~DFW9+z&9Ope^DS;MFTTlDx-OLd~eGRL_e^gPpp zuvHSqST$lL=83DZt2aiY#Tt4tF$^pRZIp_hpJ?d8hqJK-jVPthG6FHraCUF48To`f zwJJU!F4_ihRH}26 z)!K)8m%~&LF3c0BVyAALiQ>yer4z20D?#1SPwC~N-C*yx)Br@PY7*=;k>I9}PY+Ia zC5Gin8z8Cse)nwurxzYwkY9W?35dBeDI}T_eTkO%=;ZF{rs?3!*%@J`f3|71Z?nZPs-+Akzad5E_-ACY``_t;Y2ZqkYeqho#*u010JHqTU>;ZVkb01U za6|`lLOPa{(xc-Tv}Z!N4W?~^Ib2rirs(e!N7Uyx6Qbxs0cq3;!%pu@^j zAPNchY8weo!^?t$x$1TM5M@V01@E^XYH~)bUeWz`*h`y1F|ZtG7lVW7-9*v3z2cC6 zM1_(<20W6&xWIQHFLE_=pys#ak`661C!{jV*E`@c3Qrh5 zh-vM1rOWko%ZA4RtpKq@pS@Kt{9z zxrVI~)pW&rn}M!buQt)PwHhN`xwgwdSFTs<>1wSr>gULIYN$eWl)r||ZRC*hI7$wG zmFRSUxWAN@o3vSntWTRYv_&rMhIF@Ss%`w;Gn(JSlef;BNE~lFQb}Xdd*T2u& zXg$4xPzs$H4?D>yU`go4nGYV;0hgnlC0`b;Qi@&~0rP)b2WxCm`-_=&wh00)$QiK>vP ziUc=LRV-3_lSSqUPt5b#&ZdQ;=JB2+WmuxhWvVg~=t-9G~1QG@_3 zB0k0=BnQ`yZ+7YtnnM>26mhF5oY7RcguwR0r2@-m#lsuA%D{Dkyow1Gz?sLMhiSM# z=))Pma0&1ep};#Z&$}Q*@S7bJCZRjDHZMAyrT3tzRPPE8EjCI(cw9jaYNZ(w4v1Q3 zGiW%^u?VV8A$tpURM?N0Gd4mClaS(o#VO9bORKgP?i9h76dgQ>@c~g`e0ELS6az?t zi$l-{*X<1z6;2?*^+57nIw6y=3MN}=;=i1vZ-j|eC+&)m^c1+fTw89lWJcT-P#eMEm!wLIE8X=Ac9_WRBQb;^Qva>Ul%Sz z9Wt;YI>c2H$MI(bg;VQB3@`gLw)>yDcW}J=8HVUun4t0EwUXWV&ebj)qm0qeXJpl% NDCT&w;m-v9e?_c}W>XU}<_^W@C)n=?!*QZnpd4qiN_{)M@5JTQn0WN&PR zCoIgVVd-K61F=ZjUxzsvnZrO%Fb8`lm-Bd>l1?xq7keiVi=w@!rHzddCm#nF=n9LX zk%^_9i@mdj5J=9>1!e;R4uF)^K{_BXmjRg10D9#-NZi4}2Br-&R3B@{uNO7>2+MmFCY@qTY4DGqOhYIJLR^v-Q^xq$i3#t~FEs6EFeaHU-;#9`a&0Q# zX&u7G5T|cT4>VPHZk*xy9&dlMyi#PQ45nsXy1oaE#2Tnh$RR9i2PF>^2Sd~*UD1YUcUbbB`=c74mlZP;3zq!K+g9rajhAS4tl9lvDYZQ(YnY;B-rzQZ95Js_Y;=0N03v**VY+ZWQIv@Nj^E zICYebtzafDfQVgcM1DU;K+GLVJ0-R`pCk;zw^i=@LeB~Jc`@d z*`soJ+0xD$APlb96827}fO_e30l(n_I8X!T0;Dg%#R265L4l0`SU`Xu1m=Ts@PYWb z_>ucSJ8=-)=^*Ay+{6ViU|<44oSJHKc<_HfEM}HAFhNdEPEBW+lQXB2rHQo%rxeWD z+Qr_1)568p#>D>X*${iSj${RN~*Z%|FOl*vto&T9JFbZR+-u!>Z7%w*n3gzYCMaql^;F2H80fqn) z{0)g&xVSht10n+?g9srUfL8%50A^}$;>=-b&k3{R1Ulp40RIm%;znVG`(MilU zha?^Z23Uar0SKXt{|Bt_ps?~chw;b8#LJB^CNP8p0v83~N08RVb6{P+!O-tmlc}Yd znX5BkiQJ|J4jxBY6E6yTDB*>bsT zi#|a?OL2Z3e=~X)RgUxKr-p;+ZA;B0ZjazRZkYEB>)=;i@15s~>lh6Zd{k{~rB?Ac zQtRVK^(UmvVYWW%>sxX6H4Mq-ZY$6esFKV=t{pStjqdW0m5h@r)t92elhRY1p`Z_Y zUM&@c?l+E!)%Kj2k@LPIe&}&+8+I#x^Eb86!KPXPg9gm%ntG!nQq`OF1P}X&Sq(Ux ztEBufO{l;0%ks+NX!|n?GM|nw{X)-SEBrAbPQkJI{cFryyyWVLQn~Ce4m4GUS@g z+1PqE$H{iAR@r;UAIG|!s9_LEJ)0Z-FmzOS$f>N@(Q{p?I>z6;3i;K_ zn<@A_#2V+C<>K<61`2|l$n z$E5DFxR|oN)gjWx6u?@+T-4EjSU$x1Oq(rF`_>e=KGwhwwlQ65Yq zALU9PJRs8}dR48eP2WpykIOa0)+<`6K{<=FNt9%A*Fp}~p)EKz`T7nq?%UaUN`;PV z{3%~9o66B$S}U%EJ$s!O=tdYa^^q7F-c4-u_7ejcxzMFfjs?oz+G6j?hFiVuw~xP! z)uozOfI3^;4=uFvK2V-rPvRI$A`cc#B@Cm!phm6(_{f3&rV_vYlai0RPnhEWGa z&Ii2;ZYP?LO)QenUCwZ-z|Jy|qEmOtx7E3be^<)#CjWCZ8%aLX`^D=4tr|D9xR)s8 z87D~?R!?mDWTum_@rw+m9=rKmEB(ZkF3K-m0*xlgE!k)l;DjA5$Bx)jwZ@kH661|C zZ!mDmV#q|rVEhp|=y)_CC7uE?L;qj&FM(srXtST?$D_pGMFt9|B-@lT0ua%e*-tuUfAjB;MXTBz!TLyoXTb52BKG8^*Vp23sV{VqlzZJBReg|D zHE3Zhd3>S#?KY#(1=vMDPuaOF4K`{UHSd_dGBmc9K}p)~b{h$7>379Vj%uBsoY*oF z`))s}GO!tqI9c{AjhNqAD!PRC^ag)t>Tw?9{4$>MnF6zuMQEKilqy}hDKU>fy)4gu z|8?LpbyUinut+uO&Fj_-m%f?o=J;mlTarA9qjTh>tWLm>Y+0O-5Y5wgE~&<)P^*sR zU+SKGk0eoV#Qf12DJ8n3xH!p|8piC5Ov40)9RYWmrS`H39-noFSW+89gEb@b)HQ9# z6qv})+RALQXTM7^CR^$?duZ@R>v_!(zUUyn9UsF5)5<%--7F@2r59E#Oj!b-SSl8w z;aisVU{L9VCMDk7m}I>F_O4YQqHy6k0dOj+dJ42y%>zUZ@(pi(l zJ}q3WPwqnsJKY{+m!IFU?(^c2C?2yZA8RJ|%zl#F87g8;WTn7ml#hioCSc<}|E@J) z$h4}jQkCS`sXasl>J4wuRXhul%M-d2a5A z>Sax{%6l$V=?2;43C20W=2z~m57@dB(Q#bc^Dg_sgI9NDnnQ3FqG^MvXeow6nx0dwo3tlmUd+|jvns)_i`A=MP zEgvAF+}qf$l4?^^H>c5T(SPoGqEg!CM7LQH({W3sM_Nh<|K^EdS`A@eSV;7b(U)Pvfj%W0=iXJMM5u9 z%j&K?hW}Zra|XJL?Q1+mW-G#`Vh!@yWX8 zeugcF1d^MC>py@KY*Z$}Ijq?J2Jez<+`DQbhX>kPVktJPG{d!ZNl~938qmX{DCsoG zrbKq#d2%jU-EH|u+t1hkw$XD{`y(%x4hgJrkO$AT;gR{-PaGC^UOc`xUd)uAum7s$ z1NvZf#c)DqzWzn_;}=}T`e;uUvEh}tk8FjNQP;3MHb+-?7A}+>Z{aPm z-LSl=IZ`B;`c+Uyn<^&6v9M>|r}!1lYZtVf4SZeQW340Cv;@s179;`xAMa7Gha0{| zZEY*`s4PnQ={tG|iK)28{dWqGa??n#*Ea(l(z~gTdpV^H#HY+<(WwLb_iSqV_>X__ zxRI#mX3JYqsJgn>@zy(R$TGet=)9-oJy&%3v1djG1!}e{tSs`~*bXp9d8IRk=8p1_ zR_uE!*J#WPh6Iahw2h_`pAxv9aHc+G-)Wm%#r32tp<}c)1v(As(M^7P(b356*ka^U zf;P6!Vj(*^yQW8KIgM$HHMUqyPHQ+R-6Li;#ksaJaAfxee)gNnq$s zrUO`8?X@ie4*oanEx*w}HY@0VN|yE}h1zp*<$B_24%V~Jb)L1z3|_X1JWdv7v>RXk zTtW(8E>g$<++3Vr+}t{nAjYGMLu3rI6jGINX)?^y7!ssRpjxn+%Id4g18IcaGko{x z#HYeX)ry%Ze3;d*ip&T#r(fGvf|M-{!kPSSWo^Q>R@ZBdb0%$XNUJI*r zUXw~N-Tb`wg_ADKmL{VTeL;JHxdaN3ILPH|vLiaf5`9>h)N<5@?2NWIt9vTZ_htHn za>!C3-cNffb(t?{S_j@OucW;2GK5$ye45O=>TOTsX>DtL{(M(WzEAq&Gz(|9%0PU5 z7UGr6Gz(GRWV>1v7y`-dGt~BH9C>^)QnS<9mg2Lh`BIf*g>W(6Y;`wvaoq4#YwbWQr4GyC8&lLf%f#QAIvKLtw7{>q?`TQjuS6z@YjUtT7^zE zzO9g>F}@5FCCeX(zKJ&JaX)9ZAM^3s_ZrUS3NF4OwfC9B*KFQ4oogn_kD@gGvTRcu zaJkamSV!!%N*3Q(#{BWel%oyV3p|S^+JX0#oJKT>@&GFVgcVF1rtPHk|HcU9=c-zgBf7_64}D@R)=f z`JU4PnMrkNj}P9X9_uUkCM`9W`3hA)H&)p(Y;WyI{R2F zu%jrSbKdrKo%g-VMT6AyJ8Yb2lS-b63#%iVO`6l0Cg0|Kf^i)MC|6e3ZPq-#TDsPl z@YM+^U%O@8%^S5o>i=yfB=Z5$X6ZSj*b>D#YxV7^6q4G?^K0!pBZ+m_^GdGH?VD(q zGfaOTlzw&NMcp}*F9NNeX}c>Mgo~HN_Qs!y?XT|WUfnJmfbNI5)a>UdFOS^*a%DNc z{*L^PC85_{j46;%;r560u7Zioy{(tVsccrsR}{Ux61c1G%ii8RM*3Er@-<`8>o=C2 z7h>NqPNZZ#7J0g7Yjzdace~rR-2o;UR6+3A_u1Q+aT|ZRR=#_>Yw{KIx)qhX1e_H z^)9ohkfmQ56sxH{Z>Koh&?@ujrBYvD-$~8lb(mKqW~)&B%4v@?+Sj$hKZQZ4He#`Gr|^dR zj>V(7rpQ4Fxlo}qJxWim%WMgg`e0GJ(^8k2ke|HXX0GD2`xKg>z&rXhyC#*+<@h&F zM@f&BtA$=SZJ&&tCX7LQOn6pV9G1OE_6C=fut>gtm%vgkkJGb;_*`g$y1|@!t@0ym z^otQN^7<`VhmwQ88_&ol(9u_VzJOb7?1_l=xR zi)?g%#X^8-Q$ln-y7pO#bK9D2ow?{+o`RwYf|B*^q2XP(v$Rv)*A*_i3>IQa_FCi{ z$5(b=*pxjlR+11Z;nRlC2+3RGkdci(osS)+xyyf|IBbe3Y|5kM{EW(%_hc>6*VLPK zFFp{9UtRS){&>nGuhE^rZ-g}r+uhmIwCjkMX$*HBYr6K}YVOJu zlVwKr2wqoVw&;Z5V~mGvJ^fxe6J34O>WRsTPOk-ML&lb@zMc}&ZtJ(3z1%L}v};i6 zp83wLb=4Qb`0(p&?h0q7FqF(w#I|uS$KUW%m(?Fo1km~v8ILJb$>)M+VZx6XtC4p35J2V5YkFPT}ee=$ZxpjK1 z??di!D!*91*INACbdn$9z4tZkjqMbFhVYAbrec>~Fl_f~*MF8Zd|&L@DMCBStGwuU zlhZDa&@ScNMyY}EBL_l{TpfdU5wcoB-)CLN*7=^cStp1Z8pM0mU})WVUc&FH?a`$_-Rr zr@YUx_?Qm5b|zHMxSn(6xRU%UR@mk2J&fW91L+C26SJ{S9$DTt?d&fM%IVs+JX#b; zmcnuQZ)3}wlhj}s_*|PCjnQZG(T568IMIwlMH_t4FKTsc{JjG7x7+V3h>DgP%-P=6 z$pq#MuiXG8Src^_Q0qZdV>vZo?k*rsMCnW7U@LjBl>=^2OS`*VQg?yZXn~(z;sL?$ zimTyqUg8D8Zy>|JK|t_ZifX_u#>0{tyr~XQa6{DG5GQ2pfr1WjRE7@(zX1#UOa=;q z9(>~m@gIB>0KqF*@Uvhpp#F3C9Sj1)OC*Tn+`wJ*!|yymec`@LHda5p&E!6K^}+~K^X|B#sHmxcoFn~coC$45I51`RZmGktU#&G8N_=)3u*z+ z8D2`)Ffw)qajFAA0Ax{*7eOe>?P&P^4@Et=#yZ2hc7@jf@i-MMO#$K%WL*9JJ3jb< zAAW}%TG|F?izrAc+1nwH07HZL4yIYf9CR?r3LunH4r3YH60OCW)9;F}nnWOp2gV`01lMld`;y;O&4W1rTC*xEDM? zBJll9<&RWd6g@#0HV8ohs-8gp$QB^KumzL?8RVa&_ruIX4*V4AWI?~Pia34LWFheg zDxhBxrH>#*4Tvs4;6Rorl_lhXAfRk)1wuM2V4@E!T2vIpa3KF=I6w063%d|N;Q@a7 zf6oKLIDi263m%Z3_J865E~cY~mF51?g!B<=08AIsRRc%|z;UBa%0DUYkCSo`ybk9V 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 z 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 literal 0 HcmV?d00001 diff --git a/tests/integration/test_diffusion2d.py b/tests/integration/test_diffusion2d.py index fd026b4..3c869ae 100644 --- a/tests/integration/test_diffusion2d.py +++ b/tests/integration/test_diffusion2d.py @@ -2,18 +2,55 @@ Tests for functionality checks in class SolveDiffusion2D """ +import unittest +import numpy as np from diffusion2d import SolveDiffusion2D +class TestDiffusion2D(unittest.TestCase): -def test_initialize_physical_parameters(): - """ - Checks function SolveDiffusion2D.initialize_domain - """ - solver = SolveDiffusion2D() + def setUp(self): + self.solver = SolveDiffusion2D() + def test_initialize_physical_parameters(self): + """ + Checks function initialize_physical_parameters. + """ + w = 10.0 + h = 10.0 + dx = 1.0 + dy = 1.0 + + self.solver.initialize_domain(w, h, dx, dy) -def test_set_initial_condition(): - """ - Checks function SolveDiffusion2D.get_initial_function - """ - solver = SolveDiffusion2D() + d = 1.0 + T_cold = 300.0 + T_hot = 700.0 + + # Expected result + # dt = dx*dy / ( 2*d * (dx^2 + dy^2) ) + # dt = 1 / (2 * 2) = 0.25 + expected_dt = 0.25 + + self.solver.initialize_physical_parameters(d, T_cold, T_hot) + + self.assertAlmostEqual(self.solver.dt, expected_dt) + + def test_set_initial_condition(self): + """ + Checks function set_initial_condition. + """ + w = 10.0 + h = 10.0 + dx = 1.0 + dy = 1.0 + d = 4.0 + T_cold = 300.0 + T_hot = 700.0 + + self.solver.initialize_domain(w, h, dx, dy) + self.solver.initialize_physical_parameters(d, T_cold, T_hot) + u = self.solver.set_initial_condition() + + self.assertEqual(u.shape, (10, 10)) + + self.assertEqual(u[0, 0], 300.0) \ No newline at end of file diff --git a/tests/unit/__pycache__/test_diffusion2d_functions.cpython-312-pytest-9.0.2.pyc b/tests/unit/__pycache__/test_diffusion2d_functions.cpython-312-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a08071a410c21fb5209f0af1365b0307362033a5 GIT binary patch literal 2948 zcmb7`O>7%Q6o6;fyX#HtG%;9}j1P7E`NI*zE@n+Y5b!}CQv~S=W;A=K;kNZ(kA!+U=JBdjn(bdOsY{hio+z23W4Kn{p^D`w zhOJYoe3-XCH!oY6Op!vt+~xiq)_Pv${GrYwqtypOTs^aY9F%*=L}?DD0#mq+(h)Xyvh^Sz?UeS z1A!q6)U-2{)l!~*Fnc{uuF-;Sm~_^KjxA?#y5PA>d1u;OHi=8Vsp)=HC>`#Y!AxN8gAQpN#4Yq|^2FohR8{yowhwvq%nX5qaE7~}z|M0O z*!K#LBb5jiDgqWOB9uet&{ZC(V*s5KYrIs%*s>-Dc{YpJuS~87mij`5EWkq+e;&_TqOvTV`qiE}{i4`MH zh-tXCH`8pi7&A+f7ZKeD2Gxz?A-0JDa@-PiNfDcSg^a6Zd)Z&!}*+UIerYl zH;H@Yv!ZVMyt53Sr$z~zgU?;}xh0>+V8osuGnWf63=?Zmt1aVE=DR){!uH=!GRCy$ zIxC&%M5cQ^h7V;Me+%u(XdqGLYVjcu14C6l5ZlR-YOIzVuEw_I_}$o@*p@uGAx}Qg z*Ai>*KH@j!GhpA6M>gb<`-fJ?SH@Q-RwmZQH|2A+ZuTegITC~Jo*|U66P&@{LFpv4 zJ4LNCiG?0D>O>)kSd|`ivTQj!Qb>0rngu+vh3-h*`^*OM_t~mt0ZR{~Eq|V@_La^z z@oF-OUB#j=V38aE-*x<~I*_R^Qe*(ki{GxW^wY&1www@^q=Ln%JC68Kg0F{mu6V*?jbt}Gww)@E3(4omgp#iY?;I2 zDEx7xEhI~7wDk7#_!pI&?hM4#M8M_D7Bmp^YF|kH zL1tl3mev^{$60m~gnt+=(?$RVtQ`z-JMWN}pbWf)$QLQ|swg4TV*%4$o0U#=MY(I; zIdDlG5COqs<1J*zT530tYe$cT6*lFu+L4zV`sj9i=tRL^W)~s;hB7s==LTKxgu&MazaK67}P$ zf~PfeqZ&M!;9{EzBN6P!3^A`0%QgMJrpb>sZ2izU*b|-jGJ96Bj2~-zR)tSCnQhJ` z9d6-Z+^@00v)d?`%TxKSa1kz$H^Ii9b94&CZiM5wzj&S#{*@3156v$Je?wD$3$JtP SH%nW|lN-sC{~*W&p8f-KTZ-oZ literal 0 HcmV?d00001 diff --git a/tests/unit/test_diffusion2d_functions.py b/tests/unit/test_diffusion2d_functions.py index c4277ff..2f43737 100644 --- a/tests/unit/test_diffusion2d_functions.py +++ b/tests/unit/test_diffusion2d_functions.py @@ -1,26 +1,63 @@ """ Tests for functions in class SolveDiffusion2D """ - +import unittest from diffusion2d import SolveDiffusion2D +class TestDiffusion2D(unittest.TestCase): + + def setUp(self): + self.solver = SolveDiffusion2D() + + def test_initialize_domain(self): + """ + Check if nx and ny are calculated correctly. + """ + w = 20.0 + h = 10.0 + dx = 2.0 + dy = 5.0 + + expected_nx = 10 + expected_ny = 2 + + self.solver.initialize_domain(w, h, dx, dy) + + self.assertEqual(self.solver.nx, expected_nx) + self.assertEqual(self.solver.ny, expected_ny) + + def test_initialize_physical_parameters(self): + """ + Check if dt is calculated correctly. + """ + d = 5.0 + T_cold = 200.0 + T_hot = 500.0 + + self.solver.dx = 2.0 + self.solver.dy = 2.0 + + # 2. Expected output + # dt = (dx^2 * dy^2) / (2 * d * (dx^2 + dy^2)) + # dt = (4 * 4) / (2 * 5 * (4 + 4)) + # dt = 16 / (10 * 8) = 16 / 80 = 0.2 + expected_dt = 0.2 -def test_initialize_domain(): - """ - Check function SolveDiffusion2D.initialize_domain - """ - solver = SolveDiffusion2D() + self.solver.initialize_physical_parameters(d, T_cold, T_hot) + self.assertAlmostEqual(self.solver.dt, expected_dt, places=5) -def test_initialize_physical_parameters(): - """ - Checks function SolveDiffusion2D.initialize_domain - """ - solver = SolveDiffusion2D() + def test_set_initial_condition(self): + """ + Check if u matrix is initialized correctly. + """ + self.solver.nx = 3 + self.solver.ny = 3 + self.solver.dx = 1.0 + self.solver.dy = 1.0 + self.solver.T_cold = 100.0 + self.solver.T_hot = 200.0 + u = self.solver.set_initial_condition() -def test_set_initial_condition(): - """ - Checks function SolveDiffusion2D.get_initial_function - """ - solver = SolveDiffusion2D() + self.assertEqual(u[0, 0], 100.0) \ No newline at end of file diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..3c88f76 --- /dev/null +++ b/tox.ini @@ -0,0 +1,10 @@ +[tox] +envlist = py3 +skipsdist = True + +[testenv] +deps = -rrequirements.txt +commands = + python3 -m pytest tests/ + coverage run -m pytest tests/ + coverage report