From 13719e04aab6b0f29a19b077699b5be54bc494f4 Mon Sep 17 00:00:00 2001
From: melisdamlasahin <melis-damla.SAHIN@etu.univ-amu.fr>
Date: Sun, 26 Jan 2025 01:47:29 +0100
Subject: [PATCH] TP

---
 .../8.8/executionHistory/executionHistory.bin | Bin 123663 -> 144855 bytes
 .../executionHistory/executionHistory.lock    | Bin 17 -> 17 bytes
 .gradle/8.8/fileHashes/fileHashes.bin         | Bin 24447 -> 24447 bytes
 .gradle/8.8/fileHashes/fileHashes.lock        | Bin 17 -> 17 bytes
 .../8.8/fileHashes/resourceHashesCache.bin    | Bin 24685 -> 24855 bytes
 .../buildOutputCleanup.lock                   | Bin 17 -> 17 bytes
 .../classes/java/main/matrix/ListMatrix.class | Bin 2388 -> 2971 bytes
 .../matrix.ConstantMatrixInitializerTest.html |   2 +-
 .../matrix.CoordinateIteratorTest.html        |  10 +++++-----
 .../test/classes/matrix.CoordinateTest.html   |  12 ++++++------
 .../test/classes/matrix.ListMatrixTest.html   |   6 +++---
 .../tests/test/classes/model.CellTest.html    |   6 +++---
 ...model.CellularAutomatonSimulationTest.html |  10 +++++-----
 .../model.NextGenerationInitializerTest.html  |  10 +++++-----
 .../tests/test/classes/model.StateTest.html   |   2 +-
 .../model.automata.GameOfLifeStateTest.html   |   6 +++---
 build/reports/tests/test/index.html           |  18 +++++++++---------
 build/reports/tests/test/packages/matrix.html |   8 ++++----
 .../tests/test/packages/model.automata.html   |   2 +-
 build/reports/tests/test/packages/model.html  |  10 +++++-----
 ...T-matrix.ConstantMatrixInitializerTest.xml |   2 +-
 .../TEST-matrix.CoordinateIteratorTest.xml    |   8 ++++----
 .../test/TEST-matrix.CoordinateTest.xml       |  10 +++++-----
 .../test/TEST-matrix.ListMatrixTest.xml       |   4 ++--
 .../test-results/test/TEST-model.CellTest.xml |   4 ++--
 ...-model.CellularAutomatonSimulationTest.xml |   8 ++++----
 ...ST-model.NextGenerationInitializerTest.xml |   8 ++++----
 .../test/TEST-model.StateTest.xml             |   2 +-
 ...EST-model.automata.GameOfLifeStateTest.xml |   6 +++---
 build/test-results/test/binary/results.bin    | Bin 3267 -> 3267 bytes
 .../compileJava/previous-compilation-data.bin | Bin 22013 -> 22014 bytes
 .../previous-compilation-data.bin             | Bin 4499 -> 4500 bytes
 src/main/java/matrix/ListMatrix.java          |  10 +++++++++-
 33 files changed, 86 insertions(+), 78 deletions(-)

diff --git a/.gradle/8.8/executionHistory/executionHistory.bin b/.gradle/8.8/executionHistory/executionHistory.bin
index a5c9e9cdea3798469a1177a4bba0911f48354d83..a71519ded6c9ebee252cee8cb3687c2ada0bd953 100644
GIT binary patch
delta 1757
zcmb`HeKgc*6vyW=sATzROurGCN}J8gh!Kfdgi5Hkr5A0D84ZoM8D<7)cawy|h>4#@
zG=&oqjj5f~YO?68yyeuYwoEdiVu{#nUfLhOJ!j8q+rRcX=Q-z|`@Q!*_kPYjPsW{j
z5Bukz(qF5Nn?0Ldak$lnm_62l!}*+?wSn6%)K0_fQz{&8hXrbTNL}y2A_J0{S~*AL
zLE5OM(v_u?lJ?P<EL%Hv7?o|u42lT}V)4RwY(Zoc*FMe`BARCxo0;4^*u4MEPETe7
z-~J<y2vm_}oajt_DE(;?rQ}4GbS&w-=R8g2VG)!X4>{}<G%f9Lh)p}8VL(%I%4CvM
zsScFlL6l~WvaUIDpTdv#G$>>YaW8OBi+#*GJl(KoyqO%lq;ojA_d;v@U7I#-km=3l
z@qHNlD0VC*FpR<D;h>)q30fXr9|D?$H-t5#b?G%jGqHKFDD~_zeC<%HsN(E-D80^I
zC-UkK)=!9iQnu2rRz}a~sNv;9t+MuWE7hRJEi8qnj`^CsrN2Em6Q|rH^XGH}_%cnU
z2#?+~=*?}~NVhb*+%Q{tS~gu6JKx<=jKevK^FpXLoVdWC=-`Opumi!i;k<Ark9oi@
zlFfkPbB+%A4#reXt2z!5UliSO`^fVbu|5rv@#H~3L0l_9jBI*x5Wm(lg8h#%@ld$w
zwg!jG8-m)D-+Jk*|GWU?hR<TK`a2YHt^$Xk&DP;1J$J9e8BDOeqVUu@xefrrC3<s5
z{6!R5xJee!r&5<cTn4fh;vb0HMAH|u@jc=;Sx(6fys?n)+neh@aUWtiJsuuQOnfbF
zL&2UlQ3vSc7v&6Vpjse;#zJJlBPDOVspxJg&?}$0|AnQNyb6}lo0r>ITJ^WC7OZGj
zgXX&AR+%7!2%O|s3P8d<MB)qlMDbIQXkc=Y+=2oAmCxLj`6QpY`+}f+QsmoZ;HJ?h
zA?0h~N5ySOdkR?PT9ZG60f4k97Echy=TVsK2pm+@dMvN%$XZy~pK)oJEM{O)bq07G
zv~^1N^vnBc&1R7!45+kG52<tnH3XNJhGz_gPE+?**frN}nv~zpZ$s8U1?F&|b7SKX
za&>8)tYBQy!u_Lm_Pqk6)(Mbd+uy6-lF46DD)b#1Bg>tIm?%NwPXaR0-kXxUGNwv<
z<0Eoq{hI;atcaM?00pLnM0~IR{>FTvcAf5qLW`|fo)Y2G0Eze=;YkNQD{=9QM{a}1
zUDQ*synGt4hF`S^B<zvU3T{$vFrW8<jO9rYNhh$}Th!>BRm~HKci)1CBzrGvVPYx)
zWQTJOu)-)`^BH`WFN?>g9OQ?G;UIFQRi3G1Z_7>p(hqL#y)rERl^)9I<-PI93k@~z
z^o4fCLsKsAL@sXyq&4+<@(2xM4s%Vt#*UszA&Lkke`&d><*gq<>&s$lxuwHrM_ae-
z_f6e4ffhrSJ_AO9`&H1TOhc++LN7fw8!mUiUg_2asaRK7FUB^~*ks<FY;ucskZm%1
z7^^)+Kzj*wDH>_bR+v0Iw~&O#D}qqhYV(+t2D=uTB@w{0^3qTdeN_5?F2uA8uqHVB
z)cd$L5xV@AczbAT7k1u42b$;tRs=uy;oB>Y4)k{#6;rOeZ~taSpgjksaK}|R$vNPP
z|AJLrugz4wU!VfYX8<|;9GDQB6?r*P%67kKxBg>vu|929MBcjs8^W=GyJocs)p6ro
zQc|70bl*(D@#kO}OuKeG$1ZT6@<Q1JSF!%{QLJDeV$}_(aE29Cl9Oz4deF#yak`h+
z04A0phq}={*|yb9vy#pz+X*(C_GpqqG4WTVwi_(9?o!j!WCZVq2F9u^3l^<=f{7&>
cDA*qpt{B{psZLx>b^TJHjH{pdTXxj{3HwVKbpQYW

delta 568
zcmccqnxp?1`veh9W(F|uaAaW6l!ma^<TEgM#(~+4&fyFUzCA#;<;K7h;u8}@CQC|a
zF?~Hd*;T@gX~N^py%KG)wxuO$8K!ypsoAE<sag3+g^7t}*#*g&NoghmjOP};RbxEy
z<)B5}i+h^duT(HZCNpl5-<)4IQAFUbanYo2t4?u>SJ@xDQG9aQWP$F6%{H-JOq-?p
z%y|TOy-GgKVR-de%&q*0sP)@|&55&~F-r8kyBe;nx5iz5sqd~IGajaHKXantl+k&f
z$=ul=1h((K_3vx!qEpLWPJbzOZr$F^@pJQ;CM)Ou+k9q$CZj;Yfn>St+&qpW*Eb)&
z^5@~t%~AP}7{vw68EUxR9#KksAbi)jWy-C+U=#mt{<pY-gH6|zfkD?~`iBXOGD^$;
zzsYretKVvMh^=1#;#tK&0dx_l-*N;P<t7Urbeg;%N^<g>KircG+F3TcwXbBJT;DB-
z<iiceT55JTT%2;)b;Yw}-piYTKD@%XnKxU2adY9^SR{wLJXW;}DNf`#bR}u(jy2^{
zV23OGIxFyAxQ*#}{mO5@zF$+ZI`e4{FesL;W@KRmI@-}`dSWo6(R2erM)~cWhZ&i8
z1;1=*P;8r+rYGCEZ?2Ti9-ga{3m3ajPpD<&n%*GJ#Io7p@>Q1Yd>Tx<SSJg7&Dxy)
HX~hQsu=Dg|

diff --git a/.gradle/8.8/executionHistory/executionHistory.lock b/.gradle/8.8/executionHistory/executionHistory.lock
index f8138d670b0911747c80a8831e8d96aeb8709c20..2ee55492caacc80bf3821a740172ad1b136c2ca0 100644
GIT binary patch
literal 17
VcmZP;c*mU9v(VuN0~jze0st%|1F`@B

literal 17
UcmZP;c*mU9v(VuN0|a~q04)>*qW}N^

diff --git a/.gradle/8.8/fileHashes/fileHashes.bin b/.gradle/8.8/fileHashes/fileHashes.bin
index 7702a663a9d6c9513b7af89fc14367f58ad72d8d..6f6b4210b51935cf8d9baa1ad9e31aecbf6ebc34 100644
GIT binary patch
delta 1325
zcmeyrkMaLL#tr5^3QIO9uiT#N&9HCQXFl$qtWpdNj8hf}Z+B$?0}k%Z;Xd0LnT5A+
z-z?}S&H`i{oU9!rrEsW4n9J4sf5Pd$U447M9PWi`+Y8agJ$rItfUvyn<Ndj1k?(v8
zPP@hHYORH;ISNq|`fu{@Al1!#f?hE*3!hD$yfQ2iNQX@34fpZtD+zfvBkK2MfmEBD
zAHTM=Ky;qXg6I^S0;KhffrKUyD}u1Vl5@?oH`SYp_r304{ZW2aB1Ffzy^|M*>oW@j
z>8s)Tw!&vifQn%N%>;uZv$yB5%H<~+9AOQ5`lk<S!U2eKfz^{8Bgz!aee`CilyBm3
zyCJ{+$cHz@P(=qJinwAYUypF9=dxRByhhiOxAB};Tu8V7Z!|^xK*eZwpV>cqTG73W
zp=Hjmo8xDR*g|#egBZ(v98-tMx1FEm<pcHBiCCU2Tw@P&Eyy82zcX+xz|?YWi+G!T
z!iFeLwFj@X9zWASv*Zn?4%@7}I+0(yIQn=F^E)lp@q>9}^6yBg`j=-*7i50QURTgI
zBfX^fzdTG5XbceW7y=12U)BoWz7{{JMeNB9=Xb3REFGvi*dJl)aCjj-Q@YRQ?*%2Z
zGl$*(Y=`PN08}}7N|bp0l9Tq6b{3b;ir6RqenIqdE>sgayD?2nwm*5YUVi7w!<*;*
zSa7!BC#nvPd6+un*Xz$#w|;hZcht)N&Mwb3Bk8CIs^)l!sU_~Q!0L(8#?npC;wz?#
zudzhZ0#uC6qjE+YE82^XO_e{(lV;MM`4Ot)08lv)aQ+1nXo2~FNsvt>F+D=y&DTx3
z^MovJL$&Oiyf<1(BGl#M0j0(_ukXq%)!X3`5CfNd50td`J>u(lTKGYzl#eS9&*Hmq
zNyQkc`sRdFS_hkUR{bcDXgh4aF%~8Xb_fI0F-(`(Zf%`rmK=L;(W>7C`>j;Jpz2_J
zj;W(x-*~~acAY8jWL(60y}f}c4^-xy10{EJAZA^Ksm0&VnQeW1;;Jx45A~;P64^*v
zfQp%;Hh+w<U<%9lKS!?eSL)L@e|MJmFct8CRSC7^0hIs&i!P8r3&x&`o2k|Rjz<1C
WBcCpH_hUQ6+=*#m4Ge7lARPcB8-r>9

delta 1300
zcmeyrkMaLL#tr5^3Nx9Go_C*a+Sxemnc|$+z7-4%j8hgc{=Lco25iZj!+o|hGPAO7
z-7M%Q&ce+2Pkpj>kW|pg(=z!pWh(xA-V~aC>+Z>Q5N-d|Alf)XfV7@5kkABTMGzJc
zG-s&cdV54E@qzGN<CZD6z&eD~Y=M$M5c+rW?;zF9dxBmuGc!wFoxCzE5lCN{%p30G
zb?=a|;^Z$1+jEk+IINQ#W`lLI?F)kF6r2pC(d^oDwqx^zr-hQq&i^BB*OV}Vb?{p)
zn7lY#pBY474cE8jw@iVU04C8)SU2lOPW0({Q#JHByY@$H-vBjXIYfuR`pJ$FWeU11
z!fcy*<BeZFzN9n1Pmd3(Xaz(OSLEdD5ia$8$u%pluTRlnzc|t4(^IP=RFk;)fr`=W
zHn?wLv6Xev2Ig&BeXk~eN`UHE0x_2PD5j3zoIM3o|1my%WxDA29$U!^NDfH^s^$W@
z2+fl3RzKcI_Oh|u%4qEiTzFj<s%0tEk`I_Ves`aEWS6V{BWee)&eg0B&tR5J{v9c$
z@PGP`-BK2BCAKeL77=53#}Ot8F^)%b^2RV>&!gA>q_1oW5)hhp?9`LZdr;M|zrwUq
z>%BzP45_w-nIXN3eCLW5!gNfY7$sHjnEf`nr-%1{YSrDd_2q`Z6bnqb{8rG==WNF`
z&iRV!j-M}?@`@jB|JGk?V~47PV;-gsBb_xG5B);|b@P;LFI+yb9;ySB4D^AR<0Yn+
z2H8hdM^1#^DHNPP@6SiBGMFWk<D;a!I{bd6h-jFkGelfv_;mhS0ZbBT3=nVu6DoQ<
z`AC)*A5xB1e=zaX{bigkmQWo_C-04xl33~8=W_e{x4S1fSwBbgTEaqf>E!o7N!cCm
zd^qGzIMjY(dt>Nv{SREHVvJP1`jM-D<Jvguep#_EK9(8F3X=r8gMsN7rbBkyMSCnY
zVeb96jq`k)Zv`wJLsKQ=YfK%#8s`dLJ2rF6)!r^I))3R1P&+_6%z>D78K#zLm4985
z4w@_!pIDa^!E7mx>MZ7n%^zbdn8KbKmAT*8na+JCP<E~2%;*PTRYIz#f#v}Liw2ND
jOYME{u7)e?t#OxM>bvX5jEAWZ9cmzF00EmnkkA7F5-V}2

diff --git a/.gradle/8.8/fileHashes/fileHashes.lock b/.gradle/8.8/fileHashes/fileHashes.lock
index 42ee81c069a4416a3173c85f5e7204b1af4f6016..1110c77d973f4879b4b7228337f829dab05f45d7 100644
GIT binary patch
literal 17
VcmZR6yJ<_YY^TIA1~6cI4FEY!1wQ})

literal 17
VcmZR6yJ<_YY^TIA1~6dT1OPb{1qJ{B

diff --git a/.gradle/8.8/fileHashes/resourceHashesCache.bin b/.gradle/8.8/fileHashes/resourceHashesCache.bin
index 11ff398c19af08399b9a4ba87a776efd04b4b1d4..dc6ec36208e7e1d9cf3b3f288bce65fc33a813a9 100644
GIT binary patch
delta 308
zcmaERfN}aE#tkMCjJr3RN_21t@W{Mk-C?wM83Pz3Y}~w6VF!zVPe<q331!jRP|^O$
zsj8OznSQZlyHtKa#V&82s(OP-pfKHUrWeCLN2uu6$*CGA_-lT|W>x%mZ-fd?R?*a9
zoVii)hxkT=2DZ(P9y${B#y~kqAQl8+f!;f9dMi37ZT#A{(373*UNulq4pl{nv2gak
zW5*VUykm+`UTDRRslqa>^t9|X%Zi>(R!Q4?`KvHh<f{80wOs3zcK%+Cwzmk&2~JEU
X9)`Iqo}Stv-k-#%xNh+T3y=x`i3?Li

delta 53
zcmV-50LuTD!U65T0kAX}0k*R>7>Ee7)gZ70lbt0ov*snw0+Y=sz>}pZBLN|?A@~=u
LF!%<uK}akZX44hx

diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index f3d5c8e530b4598ce790c3d7e58feb54aad95b37..75e7290f6d8a761f6959371c7dda40b95e33f29e 100644
GIT binary patch
literal 17
VcmZQxvHzU+UZ<Ad3}C?G4*)+51yuk5

literal 17
VcmZQxvHzU+UZ<Ad3}C>b3IIOh1uFmm

diff --git a/build/classes/java/main/matrix/ListMatrix.class b/build/classes/java/main/matrix/ListMatrix.class
index 7ee826551990188fb0835ab104f5c6e6c65acbd8..2a03bc38d6c0b51a2e3ce90fd8efff54a67a47d1 100644
GIT binary patch
delta 1411
zcma)6OHUI~6#j1CltBoOqLxa-%R-|KVvJI#0v0Jxk(UKU20E0%GR1aEz)g3qOk8xy
z#zb8!(TGZ-d)NLC)*4^u-f2rw7iN-~dtTr7opVp-OZ9HO^YhOS9|81ZYtOl8$~w`C
zpoAXuGO%q1v#&kEeOD!16TTfg`Wc$m<t;gokhORql1M0VInkGjXEqc~4{xt1o4T6R
z9JtQlo60Po+mQ8?y6ugr6i-tm?UhrCH<{7B$yM)iGNZ-P=bh-opoFXyHyG-Cqeu8t
zRIJ5=?Xz}77~BR}fN;kIY(!IaRZgf6m6Q`h7?EJbC_}4nG@ogt1q<dtGMS30nyf1X
zS&mMOOPIh->NKtBEVpCwvs<rUm>w~^Z6%q=Y-qV|%S7&pr8!%cE^som72!+pB9Zn2
zOP-X0KvJ5LVyG#EN(vYpggK|i^fd+!KcuMfHJ!o#5BU1vU-&)K)4@>gr6nDhgc;SS
z$4M|u(RG?IO?EjXI#;7od>s_CqJ?5Jxk+nhV3uO1VH0l)+$ci>PQXLHGian|jv^hf
z(A$gKi01aJ?yh+(5Yrv<xd_LI+@&u+&0~>b2Kzn1wIsNHS-p*%%PA_Fh@-g#yHa3>
zZ0;@@%g3;J#K5kEjFlpGjBwnfmG|-3w#;U8hqkj>uJ$7JcM5H^sS@dSk*&}~%#=A!
z8!ZX`NzTUwW0DjvkWSu>m$HofRXXulftzP7QdXS2HL!e#iT!}fj!yOstzS`<Z@7Go
za>~(5@0r|FyXy+?*hUs`L3AsLvo+7oIgdQNOGdY3R39FzzVx5fm!XP@gdDBeBkmqi
z&AS6?i=EesX>e_|Vpb+G149qb;(CmGTqj-kk>JSWdk=@$hp_)Gx_8k+pU^Hm+-g|r
zcmw-0RFRPldAL>a92E!Xi&hWpBmC(Aj%b7D07KCZ|2~HI(e#QCE#O*RbZ;OfmGl#6
zpkI*>12nb4k}U}rwTH0*P0TWkWd2UW*rb!Om()cYf$;*~2ER57Oun*wLl3BQ0>)y#
zb9l02X3XtTj#&sXR&*G37%3rl70F%2!MXB-<Kk0)EH2MC7MI74FRn4xG<4!LA@duC
C?(VVx

delta 847
zcma)4xlS8V6g_XoGd5$$NR}Ch0AWGc+=NXiN(?b32@qDZhgFDz21uGHN#%|Y;FbA>
zG>C|Tf<CG9ANhbtz`5^PV}U4Ac;?PK_nqbXesB7d34Y&PT>~g#?>yLbf;0y3svZT5
z>OFT*y}meePgSVCDfkB;k3JutD5$Tx-CIbwy?xXA$m`O1|I_m^xX7Rh%}^+k&cQgp
z)2L^iL1^AdVji9mE9qbUfSS<%{Pyq-JMu{InZsMW(|yU7p-D`UZ<=QjyDjpbZ>c6R
zL#)W!!K`7NGmKx7xyl4j19PJTPtb`PcPQLMK`-J;nM!;Ke~5W3+*6c(t0>rFtXO7$
z3tB~y_io@b5m0tVTk}7mqtqf(9j1ErMR}OmQ*>jADhVbT#xm#Q^6orVs><cqSDDGC
z=u1-P*k$`yS&=_>BV9A>TGM}1&6OfC2kZP!V}noeG|soA^JpmfgM|wji*F7G%}8u~
zuPQBqwG#=gIFQHa8XnN~W8^>iUf_d_OkdV@t=8NW%xwt^WaB|(&2S__){M?EBe4#p
zOB@#YbFfLL1=zp;HfXE7bg_O;#3r_jP(mZ~*A^j)b)r}&s_MwPZ9P~7>9>m@*!@MY
LF1E2_-0a=~$fQu`

diff --git a/build/reports/tests/test/classes/matrix.ConstantMatrixInitializerTest.html b/build/reports/tests/test/classes/matrix.ConstantMatrixInitializerTest.html
index 8977fcd..c3e1464 100644
--- a/build/reports/tests/test/classes/matrix.ConstantMatrixInitializerTest.html
+++ b/build/reports/tests/test/classes/matrix.ConstantMatrixInitializerTest.html
@@ -94,7 +94,7 @@
 <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 </label>
 </div>Generated by 
-<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:42:20 AM</p>
+<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:47:20 AM</p>
 </div>
 </div>
 </body>
diff --git a/build/reports/tests/test/classes/matrix.CoordinateIteratorTest.html b/build/reports/tests/test/classes/matrix.CoordinateIteratorTest.html
index 22565e9..399971f 100644
--- a/build/reports/tests/test/classes/matrix.CoordinateIteratorTest.html
+++ b/build/reports/tests/test/classes/matrix.CoordinateIteratorTest.html
@@ -41,7 +41,7 @@
 </td>
 <td>
 <div class="infoBox" id="duration">
-<div class="counter">0.006s</div>
+<div class="counter">0.007s</div>
 <p>duration</p>
 </div>
 </td>
@@ -76,17 +76,17 @@
 </thead>
 <tr>
 <td class="success">testIteratorWithOneDimension()</td>
-<td class="success">0.001s</td>
+<td class="success">0s</td>
 <td class="success">passed</td>
 </tr>
 <tr>
 <td class="success">testIteratorWithTwoDimensions()</td>
-<td class="success">0.005s</td>
+<td class="success">0.006s</td>
 <td class="success">passed</td>
 </tr>
 <tr>
 <td class="success">testIteratorWithZeroDimensions()</td>
-<td class="success">0s</td>
+<td class="success">0.001s</td>
 <td class="success">passed</td>
 </tr>
 </table>
@@ -99,7 +99,7 @@
 <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 </label>
 </div>Generated by 
-<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:42:20 AM</p>
+<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:47:20 AM</p>
 </div>
 </div>
 </body>
diff --git a/build/reports/tests/test/classes/matrix.CoordinateTest.html b/build/reports/tests/test/classes/matrix.CoordinateTest.html
index 1dc511c..1d7ed28 100644
--- a/build/reports/tests/test/classes/matrix.CoordinateTest.html
+++ b/build/reports/tests/test/classes/matrix.CoordinateTest.html
@@ -41,7 +41,7 @@
 </td>
 <td>
 <div class="infoBox" id="duration">
-<div class="counter">0.004s</div>
+<div class="counter">0.002s</div>
 <p>duration</p>
 </div>
 </td>
@@ -81,7 +81,7 @@
 </tr>
 <tr>
 <td class="success">testBelow()</td>
-<td class="success">0.001s</td>
+<td class="success">0s</td>
 <td class="success">passed</td>
 </tr>
 <tr>
@@ -96,7 +96,7 @@
 </tr>
 <tr>
 <td class="success">testLeft()</td>
-<td class="success">0.001s</td>
+<td class="success">0s</td>
 <td class="success">passed</td>
 </tr>
 <tr>
@@ -106,12 +106,12 @@
 </tr>
 <tr>
 <td class="success">testOrthogonalNeighbours()</td>
-<td class="success">0.001s</td>
+<td class="success">0s</td>
 <td class="success">passed</td>
 </tr>
 <tr>
 <td class="success">testRight()</td>
-<td class="success">0s</td>
+<td class="success">0.001s</td>
 <td class="success">passed</td>
 </tr>
 </table>
@@ -124,7 +124,7 @@
 <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 </label>
 </div>Generated by 
-<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:42:20 AM</p>
+<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:47:20 AM</p>
 </div>
 </div>
 </body>
diff --git a/build/reports/tests/test/classes/matrix.ListMatrixTest.html b/build/reports/tests/test/classes/matrix.ListMatrixTest.html
index 27f94eb..be26e14 100644
--- a/build/reports/tests/test/classes/matrix.ListMatrixTest.html
+++ b/build/reports/tests/test/classes/matrix.ListMatrixTest.html
@@ -41,7 +41,7 @@
 </td>
 <td>
 <div class="infoBox" id="duration">
-<div class="counter">0.001s</div>
+<div class="counter">0.002s</div>
 <p>duration</p>
 </div>
 </td>
@@ -91,7 +91,7 @@
 </tr>
 <tr>
 <td class="success">testMatrixIterator()</td>
-<td class="success">0s</td>
+<td class="success">0.001s</td>
 <td class="success">passed</td>
 </tr>
 <tr>
@@ -119,7 +119,7 @@
 <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 </label>
 </div>Generated by 
-<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:42:20 AM</p>
+<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:47:20 AM</p>
 </div>
 </div>
 </body>
diff --git a/build/reports/tests/test/classes/model.CellTest.html b/build/reports/tests/test/classes/model.CellTest.html
index 301fbcc..e52fa05 100644
--- a/build/reports/tests/test/classes/model.CellTest.html
+++ b/build/reports/tests/test/classes/model.CellTest.html
@@ -41,7 +41,7 @@
 </td>
 <td>
 <div class="infoBox" id="duration">
-<div class="counter">0.001s</div>
+<div class="counter">0s</div>
 <p>duration</p>
 </div>
 </td>
@@ -81,7 +81,7 @@
 </tr>
 <tr>
 <td class="success">testCellWithoutListener()</td>
-<td class="success">0.001s</td>
+<td class="success">0s</td>
 <td class="success">passed</td>
 </tr>
 </table>
@@ -94,7 +94,7 @@
 <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 </label>
 </div>Generated by 
-<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:42:20 AM</p>
+<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:47:20 AM</p>
 </div>
 </div>
 </body>
diff --git a/build/reports/tests/test/classes/model.CellularAutomatonSimulationTest.html b/build/reports/tests/test/classes/model.CellularAutomatonSimulationTest.html
index 28fa398..306dc1d 100644
--- a/build/reports/tests/test/classes/model.CellularAutomatonSimulationTest.html
+++ b/build/reports/tests/test/classes/model.CellularAutomatonSimulationTest.html
@@ -41,7 +41,7 @@
 </td>
 <td>
 <div class="infoBox" id="duration">
-<div class="counter">0.009s</div>
+<div class="counter">0.010s</div>
 <p>duration</p>
 </div>
 </td>
@@ -86,12 +86,12 @@
 </tr>
 <tr>
 <td class="success">testColor()</td>
-<td class="success">0.005s</td>
+<td class="success">0.004s</td>
 <td class="success">passed</td>
 </tr>
 <tr>
 <td class="success">testCopy()</td>
-<td class="success">0s</td>
+<td class="success">0.001s</td>
 <td class="success">passed</td>
 </tr>
 <tr>
@@ -116,7 +116,7 @@
 </tr>
 <tr>
 <td class="success">testSetChangeListener()</td>
-<td class="success">0s</td>
+<td class="success">0.001s</td>
 <td class="success">passed</td>
 </tr>
 <tr>
@@ -139,7 +139,7 @@
 <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 </label>
 </div>Generated by 
-<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:42:20 AM</p>
+<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:47:20 AM</p>
 </div>
 </div>
 </body>
diff --git a/build/reports/tests/test/classes/model.NextGenerationInitializerTest.html b/build/reports/tests/test/classes/model.NextGenerationInitializerTest.html
index fb7f132..f0df886 100644
--- a/build/reports/tests/test/classes/model.NextGenerationInitializerTest.html
+++ b/build/reports/tests/test/classes/model.NextGenerationInitializerTest.html
@@ -41,7 +41,7 @@
 </td>
 <td>
 <div class="infoBox" id="duration">
-<div class="counter">0.001s</div>
+<div class="counter">0.002s</div>
 <p>duration</p>
 </div>
 </td>
@@ -86,17 +86,17 @@
 </tr>
 <tr>
 <td class="success">testModuloPositive()</td>
-<td class="success">0s</td>
+<td class="success">0.001s</td>
 <td class="success">passed</td>
 </tr>
 <tr>
 <td class="success">testWrapCoordinateInsideGrid()</td>
-<td class="success">0.001s</td>
+<td class="success">0s</td>
 <td class="success">passed</td>
 </tr>
 <tr>
 <td class="success">testWrapCoordinateOutsideGrid()</td>
-<td class="success">0s</td>
+<td class="success">0.001s</td>
 <td class="success">passed</td>
 </tr>
 </table>
@@ -109,7 +109,7 @@
 <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 </label>
 </div>Generated by 
-<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:42:20 AM</p>
+<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:47:20 AM</p>
 </div>
 </div>
 </body>
diff --git a/build/reports/tests/test/classes/model.StateTest.html b/build/reports/tests/test/classes/model.StateTest.html
index 9432f2c..c00746a 100644
--- a/build/reports/tests/test/classes/model.StateTest.html
+++ b/build/reports/tests/test/classes/model.StateTest.html
@@ -104,7 +104,7 @@
 <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 </label>
 </div>Generated by 
-<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:42:20 AM</p>
+<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:47:20 AM</p>
 </div>
 </div>
 </body>
diff --git a/build/reports/tests/test/classes/model.automata.GameOfLifeStateTest.html b/build/reports/tests/test/classes/model.automata.GameOfLifeStateTest.html
index 98d5cd9..1ea05de 100644
--- a/build/reports/tests/test/classes/model.automata.GameOfLifeStateTest.html
+++ b/build/reports/tests/test/classes/model.automata.GameOfLifeStateTest.html
@@ -76,12 +76,12 @@
 </thead>
 <tr>
 <td class="success">testAliveUpdate()</td>
-<td class="success">0s</td>
+<td class="success">0.001s</td>
 <td class="success">passed</td>
 </tr>
 <tr>
 <td class="success">testDeadUpdate()</td>
-<td class="success">0.001s</td>
+<td class="success">0s</td>
 <td class="success">passed</td>
 </tr>
 <tr>
@@ -104,7 +104,7 @@
 <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 </label>
 </div>Generated by 
-<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:42:20 AM</p>
+<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:47:20 AM</p>
 </div>
 </div>
 </body>
diff --git a/build/reports/tests/test/index.html b/build/reports/tests/test/index.html
index 72a92be..fd24e67 100644
--- a/build/reports/tests/test/index.html
+++ b/build/reports/tests/test/index.html
@@ -38,7 +38,7 @@
 </td>
 <td>
 <div class="infoBox" id="duration">
-<div class="counter">0.028s</div>
+<div class="counter">0.029s</div>
 <p>duration</p>
 </div>
 </td>
@@ -95,7 +95,7 @@
 <td>22</td>
 <td>0</td>
 <td>0</td>
-<td>0.011s</td>
+<td>0.012s</td>
 <td class="success">100%</td>
 </tr>
 <tr>
@@ -142,7 +142,7 @@
 <td>3</td>
 <td>0</td>
 <td>0</td>
-<td>0.006s</td>
+<td>0.007s</td>
 <td class="success">100%</td>
 </tr>
 <tr>
@@ -152,7 +152,7 @@
 <td>8</td>
 <td>0</td>
 <td>0</td>
-<td>0.004s</td>
+<td>0.002s</td>
 <td class="success">100%</td>
 </tr>
 <tr>
@@ -162,7 +162,7 @@
 <td>7</td>
 <td>0</td>
 <td>0</td>
-<td>0.001s</td>
+<td>0.002s</td>
 <td class="success">100%</td>
 </tr>
 <tr>
@@ -172,7 +172,7 @@
 <td>2</td>
 <td>0</td>
 <td>0</td>
-<td>0.001s</td>
+<td>0s</td>
 <td class="success">100%</td>
 </tr>
 <tr>
@@ -182,7 +182,7 @@
 <td>11</td>
 <td>0</td>
 <td>0</td>
-<td>0.009s</td>
+<td>0.010s</td>
 <td class="success">100%</td>
 </tr>
 <tr>
@@ -192,7 +192,7 @@
 <td>5</td>
 <td>0</td>
 <td>0</td>
-<td>0.001s</td>
+<td>0.002s</td>
 <td class="success">100%</td>
 </tr>
 <tr>
@@ -226,7 +226,7 @@
 <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 </label>
 </div>Generated by 
-<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:42:20 AM</p>
+<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:47:20 AM</p>
 </div>
 </div>
 </body>
diff --git a/build/reports/tests/test/packages/matrix.html b/build/reports/tests/test/packages/matrix.html
index f85ff8a..69a198c 100644
--- a/build/reports/tests/test/packages/matrix.html
+++ b/build/reports/tests/test/packages/matrix.html
@@ -93,7 +93,7 @@
 <td>3</td>
 <td>0</td>
 <td>0</td>
-<td>0.006s</td>
+<td>0.007s</td>
 <td class="success">100%</td>
 </tr>
 <tr>
@@ -103,7 +103,7 @@
 <td>8</td>
 <td>0</td>
 <td>0</td>
-<td>0.004s</td>
+<td>0.002s</td>
 <td class="success">100%</td>
 </tr>
 <tr>
@@ -113,7 +113,7 @@
 <td>7</td>
 <td>0</td>
 <td>0</td>
-<td>0.001s</td>
+<td>0.002s</td>
 <td class="success">100%</td>
 </tr>
 </table>
@@ -126,7 +126,7 @@
 <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 </label>
 </div>Generated by 
-<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:42:20 AM</p>
+<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:47:20 AM</p>
 </div>
 </div>
 </body>
diff --git a/build/reports/tests/test/packages/model.automata.html b/build/reports/tests/test/packages/model.automata.html
index 5d6594c..41e72d2 100644
--- a/build/reports/tests/test/packages/model.automata.html
+++ b/build/reports/tests/test/packages/model.automata.html
@@ -96,7 +96,7 @@
 <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 </label>
 </div>Generated by 
-<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:42:20 AM</p>
+<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:47:20 AM</p>
 </div>
 </div>
 </body>
diff --git a/build/reports/tests/test/packages/model.html b/build/reports/tests/test/packages/model.html
index 8774882..5fcbdcd 100644
--- a/build/reports/tests/test/packages/model.html
+++ b/build/reports/tests/test/packages/model.html
@@ -40,7 +40,7 @@
 </td>
 <td>
 <div class="infoBox" id="duration">
-<div class="counter">0.011s</div>
+<div class="counter">0.012s</div>
 <p>duration</p>
 </div>
 </td>
@@ -83,7 +83,7 @@
 <td>2</td>
 <td>0</td>
 <td>0</td>
-<td>0.001s</td>
+<td>0s</td>
 <td class="success">100%</td>
 </tr>
 <tr>
@@ -93,7 +93,7 @@
 <td>11</td>
 <td>0</td>
 <td>0</td>
-<td>0.009s</td>
+<td>0.010s</td>
 <td class="success">100%</td>
 </tr>
 <tr>
@@ -103,7 +103,7 @@
 <td>5</td>
 <td>0</td>
 <td>0</td>
-<td>0.001s</td>
+<td>0.002s</td>
 <td class="success">100%</td>
 </tr>
 <tr>
@@ -126,7 +126,7 @@
 <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 </label>
 </div>Generated by 
-<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:42:20 AM</p>
+<a href="http://www.gradle.org">Gradle 8.8</a> at Jan 26, 2025, 1:47:20 AM</p>
 </div>
 </div>
 </body>
diff --git a/build/test-results/test/TEST-matrix.ConstantMatrixInitializerTest.xml b/build/test-results/test/TEST-matrix.ConstantMatrixInitializerTest.xml
index 7ad82e8..30160d3 100644
--- a/build/test-results/test/TEST-matrix.ConstantMatrixInitializerTest.xml
+++ b/build/test-results/test/TEST-matrix.ConstantMatrixInitializerTest.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testsuite name="matrix.ConstantMatrixInitializerTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:42:20" hostname="MacBook-Pro-de-Melis.local" time="0.006">
+<testsuite name="matrix.ConstantMatrixInitializerTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:47:20" hostname="MacBook-Pro-de-Melis.local" time="0.006">
   <properties/>
   <testcase name="testMatrixInitializationWithConstantValue()" classname="matrix.ConstantMatrixInitializerTest" time="0.005"/>
   <testcase name="testMatrixInitializationWithConstantValue2()" classname="matrix.ConstantMatrixInitializerTest" time="0.0"/>
diff --git a/build/test-results/test/TEST-matrix.CoordinateIteratorTest.xml b/build/test-results/test/TEST-matrix.CoordinateIteratorTest.xml
index 9301f51..c1f4ed6 100644
--- a/build/test-results/test/TEST-matrix.CoordinateIteratorTest.xml
+++ b/build/test-results/test/TEST-matrix.CoordinateIteratorTest.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testsuite name="matrix.CoordinateIteratorTest" tests="3" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:42:20" hostname="MacBook-Pro-de-Melis.local" time="0.007">
+<testsuite name="matrix.CoordinateIteratorTest" tests="3" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:47:20" hostname="MacBook-Pro-de-Melis.local" time="0.007">
   <properties/>
-  <testcase name="testIteratorWithZeroDimensions()" classname="matrix.CoordinateIteratorTest" time="0.0"/>
-  <testcase name="testIteratorWithTwoDimensions()" classname="matrix.CoordinateIteratorTest" time="0.005"/>
-  <testcase name="testIteratorWithOneDimension()" classname="matrix.CoordinateIteratorTest" time="0.001"/>
+  <testcase name="testIteratorWithZeroDimensions()" classname="matrix.CoordinateIteratorTest" time="0.001"/>
+  <testcase name="testIteratorWithTwoDimensions()" classname="matrix.CoordinateIteratorTest" time="0.006"/>
+  <testcase name="testIteratorWithOneDimension()" classname="matrix.CoordinateIteratorTest" time="0.0"/>
   <system-out><![CDATA[]]></system-out>
   <system-err><![CDATA[]]></system-err>
 </testsuite>
diff --git a/build/test-results/test/TEST-matrix.CoordinateTest.xml b/build/test-results/test/TEST-matrix.CoordinateTest.xml
index 80cf2f5..81c31c2 100644
--- a/build/test-results/test/TEST-matrix.CoordinateTest.xml
+++ b/build/test-results/test/TEST-matrix.CoordinateTest.xml
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testsuite name="matrix.CoordinateTest" tests="8" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:42:20" hostname="MacBook-Pro-de-Melis.local" time="0.004">
+<testsuite name="matrix.CoordinateTest" tests="8" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:47:20" hostname="MacBook-Pro-de-Melis.local" time="0.004">
   <properties/>
   <testcase name="testAbove()" classname="matrix.CoordinateTest" time="0.0"/>
-  <testcase name="testBelow()" classname="matrix.CoordinateTest" time="0.001"/>
-  <testcase name="testRight()" classname="matrix.CoordinateTest" time="0.0"/>
-  <testcase name="testLeft()" classname="matrix.CoordinateTest" time="0.001"/>
+  <testcase name="testBelow()" classname="matrix.CoordinateTest" time="0.0"/>
+  <testcase name="testRight()" classname="matrix.CoordinateTest" time="0.001"/>
+  <testcase name="testLeft()" classname="matrix.CoordinateTest" time="0.0"/>
   <testcase name="testDiagonalNeighbours()" classname="matrix.CoordinateTest" time="0.001"/>
   <testcase name="testCoordinateCreation()" classname="matrix.CoordinateTest" time="0.0"/>
-  <testcase name="testOrthogonalNeighbours()" classname="matrix.CoordinateTest" time="0.001"/>
+  <testcase name="testOrthogonalNeighbours()" classname="matrix.CoordinateTest" time="0.0"/>
   <testcase name="testOrthodiagonalNeighbours()" classname="matrix.CoordinateTest" time="0.0"/>
   <system-out><![CDATA[]]></system-out>
   <system-err><![CDATA[]]></system-err>
diff --git a/build/test-results/test/TEST-matrix.ListMatrixTest.xml b/build/test-results/test/TEST-matrix.ListMatrixTest.xml
index f7c7b31..6c2a6ad 100644
--- a/build/test-results/test/TEST-matrix.ListMatrixTest.xml
+++ b/build/test-results/test/TEST-matrix.ListMatrixTest.xml
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testsuite name="matrix.ListMatrixTest" tests="7" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:42:20" hostname="MacBook-Pro-de-Melis.local" time="0.004">
+<testsuite name="matrix.ListMatrixTest" tests="7" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:47:20" hostname="MacBook-Pro-de-Melis.local" time="0.004">
   <properties/>
   <testcase name="testMatrixWidthAndHeight()" classname="matrix.ListMatrixTest" time="0.0"/>
   <testcase name="testMatrixCoordinates()" classname="matrix.ListMatrixTest" time="0.0"/>
   <testcase name="testMatrixCreationWithInitialValue()" classname="matrix.ListMatrixTest" time="0.001"/>
   <testcase name="testSubMatrix()" classname="matrix.ListMatrixTest" time="0.0"/>
-  <testcase name="testMatrixIterator()" classname="matrix.ListMatrixTest" time="0.0"/>
+  <testcase name="testMatrixIterator()" classname="matrix.ListMatrixTest" time="0.001"/>
   <testcase name="testMatrixCreationWithInitializer()" classname="matrix.ListMatrixTest" time="0.0"/>
   <testcase name="testMatrixSetAndGet()" classname="matrix.ListMatrixTest" time="0.0"/>
   <system-out><![CDATA[]]></system-out>
diff --git a/build/test-results/test/TEST-model.CellTest.xml b/build/test-results/test/TEST-model.CellTest.xml
index 85fc223..068c656 100644
--- a/build/test-results/test/TEST-model.CellTest.xml
+++ b/build/test-results/test/TEST-model.CellTest.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testsuite name="model.CellTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:42:20" hostname="MacBook-Pro-de-Melis.local" time="0.001">
+<testsuite name="model.CellTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:47:20" hostname="MacBook-Pro-de-Melis.local" time="0.0">
   <properties/>
   <testcase name="testCellValueChangeWithListener()" classname="model.CellTest" time="0.0"/>
-  <testcase name="testCellWithoutListener()" classname="model.CellTest" time="0.001"/>
+  <testcase name="testCellWithoutListener()" classname="model.CellTest" time="0.0"/>
   <system-out><![CDATA[]]></system-out>
   <system-err><![CDATA[]]></system-err>
 </testsuite>
diff --git a/build/test-results/test/TEST-model.CellularAutomatonSimulationTest.xml b/build/test-results/test/TEST-model.CellularAutomatonSimulationTest.xml
index e00b5d7..ed6bd09 100644
--- a/build/test-results/test/TEST-model.CellularAutomatonSimulationTest.xml
+++ b/build/test-results/test/TEST-model.CellularAutomatonSimulationTest.xml
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testsuite name="model.CellularAutomatonSimulationTest" tests="11" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:42:20" hostname="MacBook-Pro-de-Melis.local" time="0.012">
+<testsuite name="model.CellularAutomatonSimulationTest" tests="11" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:47:20" hostname="MacBook-Pro-de-Melis.local" time="0.012">
   <properties/>
   <testcase name="testNumberOfColumns()" classname="model.CellularAutomatonSimulationTest" time="0.0"/>
   <testcase name="testSetGenerationNumberChangeListener()" classname="model.CellularAutomatonSimulationTest" time="0.001"/>
   <testcase name="testClear()" classname="model.CellularAutomatonSimulationTest" time="0.0"/>
-  <testcase name="testColor()" classname="model.CellularAutomatonSimulationTest" time="0.005"/>
+  <testcase name="testColor()" classname="model.CellularAutomatonSimulationTest" time="0.004"/>
   <testcase name="testReset()" classname="model.CellularAutomatonSimulationTest" time="0.0"/>
-  <testcase name="testCopy()" classname="model.CellularAutomatonSimulationTest" time="0.0"/>
+  <testcase name="testCopy()" classname="model.CellularAutomatonSimulationTest" time="0.001"/>
   <testcase name="testNext()" classname="model.CellularAutomatonSimulationTest" time="0.0"/>
   <testcase name="testAt()" classname="model.CellularAutomatonSimulationTest" time="0.001"/>
   <testcase name="testUpdateToNextGeneration()" classname="model.CellularAutomatonSimulationTest" time="0.002"/>
-  <testcase name="testSetChangeListener()" classname="model.CellularAutomatonSimulationTest" time="0.0"/>
+  <testcase name="testSetChangeListener()" classname="model.CellularAutomatonSimulationTest" time="0.001"/>
   <testcase name="testNumberOfRows()" classname="model.CellularAutomatonSimulationTest" time="0.0"/>
   <system-out><![CDATA[]]></system-out>
   <system-err><![CDATA[]]></system-err>
diff --git a/build/test-results/test/TEST-model.NextGenerationInitializerTest.xml b/build/test-results/test/TEST-model.NextGenerationInitializerTest.xml
index 9487710..63fd85f 100644
--- a/build/test-results/test/TEST-model.NextGenerationInitializerTest.xml
+++ b/build/test-results/test/TEST-model.NextGenerationInitializerTest.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testsuite name="model.NextGenerationInitializerTest" tests="5" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:42:20" hostname="MacBook-Pro-de-Melis.local" time="0.003">
+<testsuite name="model.NextGenerationInitializerTest" tests="5" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:47:20" hostname="MacBook-Pro-de-Melis.local" time="0.002">
   <properties/>
-  <testcase name="testWrapCoordinateInsideGrid()" classname="model.NextGenerationInitializerTest" time="0.001"/>
-  <testcase name="testModuloPositive()" classname="model.NextGenerationInitializerTest" time="0.0"/>
+  <testcase name="testWrapCoordinateInsideGrid()" classname="model.NextGenerationInitializerTest" time="0.0"/>
+  <testcase name="testModuloPositive()" classname="model.NextGenerationInitializerTest" time="0.001"/>
   <testcase name="testModuloNegative()" classname="model.NextGenerationInitializerTest" time="0.0"/>
-  <testcase name="testWrapCoordinateOutsideGrid()" classname="model.NextGenerationInitializerTest" time="0.0"/>
+  <testcase name="testWrapCoordinateOutsideGrid()" classname="model.NextGenerationInitializerTest" time="0.001"/>
   <testcase name="initialValueAt()" classname="model.NextGenerationInitializerTest" time="0.0"/>
   <system-out><![CDATA[]]></system-out>
   <system-err><![CDATA[]]></system-err>
diff --git a/build/test-results/test/TEST-model.StateTest.xml b/build/test-results/test/TEST-model.StateTest.xml
index 3a6a86f..58dcd4d 100644
--- a/build/test-results/test/TEST-model.StateTest.xml
+++ b/build/test-results/test/TEST-model.StateTest.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testsuite name="model.StateTest" tests="4" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:42:20" hostname="MacBook-Pro-de-Melis.local" time="0.001">
+<testsuite name="model.StateTest" tests="4" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:47:20" hostname="MacBook-Pro-de-Melis.local" time="0.001">
   <properties/>
   <testcase name="testCountMethodWithNoMatchingElements()" classname="model.StateTest" time="0.0"/>
   <testcase name="testCountMethodWithInteger()" classname="model.StateTest" time="0.0"/>
diff --git a/build/test-results/test/TEST-model.automata.GameOfLifeStateTest.xml b/build/test-results/test/TEST-model.automata.GameOfLifeStateTest.xml
index 28c0739..c913b35 100644
--- a/build/test-results/test/TEST-model.automata.GameOfLifeStateTest.xml
+++ b/build/test-results/test/TEST-model.automata.GameOfLifeStateTest.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testsuite name="model.automata.GameOfLifeStateTest" tests="4" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:42:20" hostname="MacBook-Pro-de-Melis.local" time="0.001">
+<testsuite name="model.automata.GameOfLifeStateTest" tests="4" skipped="0" failures="0" errors="0" timestamp="2025-01-26T00:47:20" hostname="MacBook-Pro-de-Melis.local" time="0.001">
   <properties/>
   <testcase name="testGetColor()" classname="model.automata.GameOfLifeStateTest" time="0.0"/>
   <testcase name="testNext()" classname="model.automata.GameOfLifeStateTest" time="0.0"/>
-  <testcase name="testDeadUpdate()" classname="model.automata.GameOfLifeStateTest" time="0.001"/>
-  <testcase name="testAliveUpdate()" classname="model.automata.GameOfLifeStateTest" time="0.0"/>
+  <testcase name="testDeadUpdate()" classname="model.automata.GameOfLifeStateTest" time="0.0"/>
+  <testcase name="testAliveUpdate()" classname="model.automata.GameOfLifeStateTest" time="0.001"/>
   <system-out><![CDATA[]]></system-out>
   <system-err><![CDATA[]]></system-err>
 </testsuite>
diff --git a/build/test-results/test/binary/results.bin b/build/test-results/test/binary/results.bin
index fe8b6eee535fa6ba4678a7abf52b47de3b7fc8f7..e9244072b3555fa6c56470c7ae16dd18e8633816 100644
GIT binary patch
delta 664
zcmYjOJ4+m46#eG8^Vlj=#6f(l5Z5KH?h-^KA-WDq9t4Y&X%b;O&4Q1l5NwoyvV!B;
zsQ4Nc3m>?;W|JaG6Re&5ffVViLLjA(;GJ>uX>mE1bI*6rz4tq{Pwn}%Wce#@rduIk
zmRqcGiw#7ry5;8tYmkLhh#4Ur7Z?*to0h-MZtu92I=mCIR9nYqp@VP(e}pH5)94mo
zsg^&(q(i(GQ}`}+5<LrDY9JR+v@swxQ3Q=WOh}zNiyC|QB0VE^8>ZYr+HF>kVY!8(
zo!A|Caw18{8jEB3(J`kmR2XSV-OQOBb=t$ZoS-**Fcn+>Klnb<O0eBN29#RD0}Lw;
z`5dxloGCRF*V;0ED}ien2{l3MoXBmv_@-KTp*lpLU`urZnq|F^{;LMZ_<(FI7vgyA
zAz>AtV#yGH#scRmMC}gWw~CCG<kNk`OYH$^itw~P&d%YN=ICm)7tp2W_<LYVZ+&X{
zB~1&jkQ*$#$wwE7aysqRr<IryYI^fSg}0F=%DLt}F7#UNyoh?k=3a~FG49iJOPGxC
ytI@@)%lK#XQFR&p=3~MmEST4G9^r?X=6#QGD}IkO$9NQXI9ov}epj~q3cCb!)z_Q=

delta 664
zcmYjOOG_JJ6#eFzc?1H@q7LFCg2vFMO(-I!r8W+V4~h$yZmbZxNjlJ~u?@bl-HejS
ziMmV+U38=1ri<!ET#J983wN%h(50YwXFB=p;&LwMp6{M}?{{jQTGg}^%Po1CL4|<D
zJ-5YkJBV8L4yFiJAPcDgGeSDb7!&GWW4TrK@Vj@|hR;HlYODAq^bxM%uP{#d7K7p&
zHI^$fX&>*z6wbwdqD#=F4sux+Elf&X6n^7%RHS}g2pezUNP11|CQP}Hw41CQCApX4
zDY0MBkP}Hl*6Gd_KFrxp(RtsS`afq%*vZAEoS-)@OvTchgS$v8{&riKR9XqQQBrL3
zsj?oNDJ>ND+A97izN?3XnxJ*+@{=DpQRA3aZKCV=rrJdBuxulsZ&d#nJIF@z0nSHW
z67J$>BpKjE#CP6>sCDyw_mI(&e7Zf%XfH_PprH+O*1?r#>&?C9F`(!9`vq+1k0)Ze
zvZe)B$j>?ph43O_POJa>v@$aS%}}A}ltWFJv*!I5ajmy<=S8#|7WevySH^Ri?h}?n
wJT?Y+wSrq?n5q?wm}7(<YUcf%HT*Wyyl)K;qR&VJj7DwF0`=%4nGVbD06$T%sQ>@~

diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index 748c4c7738db23e8b2a1034a2add2df53c661aa1..dd6c34cc6b3dacf70d6f46f71fc0b9ecd835f238 100644
GIT binary patch
delta 77
zcmV-T0J8u6s{#J20gxgsjCk2)d;Y~)_{<+?8r|`S2Tce}0to<wX>)W25W<8L3Pnr*
jV9SoWj=l85jj>M{1qA_Q5C8|0Yz4vt0%!-bFb2&}K#d<W

delta 76
zcmV-S0JH!8s{#G10gxgsj_%c0BQC5*AEiyY_?Y2k2Tce}0to<wX>)W25Xs9NZ<!o;
i|4G>rm)hOQuCY%T1qA{JWDfw7Yz4vs0cf)^2F*|LWgd0_

diff --git a/build/tmp/compileTestJava/previous-compilation-data.bin b/build/tmp/compileTestJava/previous-compilation-data.bin
index 16fbb7fb04fac14befb7a15c27e64a92a763ad04..9224017afff4628d34cf26c48c8e2b0cbc949242 100644
GIT binary patch
delta 37
tcmbQNJVkkfIETQY7GW+|@Bay>`*!v1{c^Z>vpUCfb|wzS&HMr_i~t}>4s!qi

delta 36
ucmV+<0NekRBa<Vr7YGo^%N%c+9C-gp*%Fu9-N~-ACkW>U0SB`X5QG68>kh#H

diff --git a/src/main/java/matrix/ListMatrix.java b/src/main/java/matrix/ListMatrix.java
index b929766..987c6a1 100644
--- a/src/main/java/matrix/ListMatrix.java
+++ b/src/main/java/matrix/ListMatrix.java
@@ -59,8 +59,16 @@ public class ListMatrix<T> implements Matrix<T> {
 
     return matrix.get(x).get(y);
   }
+  @Override
+  public Matrix<T> subMatrix(Coordinate corner, int subWidth, int subHeight) {
+    if (corner.x() < 0 || corner.y() < 0 ||
+            corner.x() + subWidth > this.width ||
+            corner.y() + subHeight > this.height) {
+      throw new IllegalArgumentException("Sub-matrix dimensions are out of bounds.");
+    }
 
-
+    return new ListMatrix<>(subWidth, subHeight, new SubMatrixInitializer<>(this, corner));
+  }
   @Override
   public void set(int x, int y, T newValue) {
     matrix.get(x).set(y,newValue);
-- 
GitLab