From 3cb5368b39891659a58838c1036430ad682879a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A0?= =?UTF-8?q?=D0=B5=D1=82=D1=83=D0=BD=D1=81=D0=BA=D0=B8=D0=B9?= Date: Thu, 7 May 2026 17:51:04 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=8E=D0=BD=D0=B8=D1=82-=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D1=8B=20=D0=B4=D0=BB=D1=8F=20Bun,=20Burger,=20Ingredient?= =?UTF-8?q?,=20Database?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .coverage | Bin 0 -> 53248 bytes __pycache__/__init__.cpython-314.pyc | Bin 0 -> 170 bytes __pycache__/praktikum.cpython-314.pyc | Bin 0 -> 1403 bytes __init__.py => praktikum/__init__.py | 0 .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 180 bytes praktikum/__pycache__/bun.cpython-314.pyc | Bin 0 -> 1595 bytes praktikum/__pycache__/burger.cpython-314.pyc | Bin 0 -> 4186 bytes .../__pycache__/database.cpython-314.pyc | Bin 0 -> 2833 bytes .../__pycache__/ingredient.cpython-314.pyc | Bin 0 -> 2044 bytes .../ingredient_types.cpython-314.pyc | Bin 0 -> 408 bytes bun.py => praktikum/bun.py | 0 burger.py => praktikum/burger.py | 0 database.py => praktikum/database.py | 0 ingredient.py => praktikum/ingredient.py | 0 .../ingredient_types.py | 0 praktikum.py => praktikum/praktikum.py | 0 .../test_bun.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 3515 bytes .../test_burger.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 12330 bytes ...test_database.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 6278 bytes ...st_ingredient.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 5134 bytes tests/test_bun.py | 23 +++++ tests/test_burger.py | 92 ++++++++++++++++++ tests/test_database.py | 19 ++++ tests/test_ingredient.py | 30 ++++++ 24 files changed, 164 insertions(+) create mode 100644 .coverage create mode 100644 __pycache__/__init__.cpython-314.pyc create mode 100644 __pycache__/praktikum.cpython-314.pyc rename __init__.py => praktikum/__init__.py (100%) create mode 100644 praktikum/__pycache__/__init__.cpython-314.pyc create mode 100644 praktikum/__pycache__/bun.cpython-314.pyc create mode 100644 praktikum/__pycache__/burger.cpython-314.pyc create mode 100644 praktikum/__pycache__/database.cpython-314.pyc create mode 100644 praktikum/__pycache__/ingredient.cpython-314.pyc create mode 100644 praktikum/__pycache__/ingredient_types.cpython-314.pyc rename bun.py => praktikum/bun.py (100%) rename burger.py => praktikum/burger.py (100%) rename database.py => praktikum/database.py (100%) rename ingredient.py => praktikum/ingredient.py (100%) rename ingredient_types.py => praktikum/ingredient_types.py (100%) rename praktikum.py => praktikum/praktikum.py (100%) create mode 100644 tests/__pycache__/test_bun.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_burger.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_database.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/test_bun.py create mode 100644 tests/test_burger.py create mode 100644 tests/test_database.py create mode 100644 tests/test_ingredient.py diff --git a/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..d0430c6c4d23ac429faeba8c83ffdc12acc759c1 GIT binary patch literal 53248 zcmeI)+i%-c90zbacI+li>cSXNS4}%FQ&;s8q9Os~VH8%0iAn6zZsUP@PIB6sCU#~! zUHgDg#>5bR0_-2yBwqOg5RW_~q&&7OkVRme_GVOfTk4yH2SBzD6Nhp53&(ZMMO;XTu%hqXm2`h*nS#Zm&6F4|Xh0 zKFvJ7%02GXxF6->m|dUFPk;JJUN0RuAm8L+nJlkHf1`b+p%rOSPOVa)n(Ng??yH{V z)YiE_%dBn*YcAz;D~L+#xy^FmvWD%1#dLf-uw94oEnaH}yuNDzX9Zd^5ngX;DApBG zpes?z_*gwUY2sZ{#=FOfS1EIjo3N${#i1#2m}jTmtP=T0?Pg0<4yA|=9Jqs04oVxi zabcghZg#25w7h-QnUISbjZ(E8`)ZqaD}R=yDQClCIPNSHg`gI2bW|(7aX^-+Rq`$W zYJ=W7nN~Y+!)22y->lG6;l>Lidg;g!`R3KIp$HzcY6pIICfC#%P+=+UG7?;E&+gAv&ChY<{P6SV${gxH1vq$qTR#V2OvRdiQgM%_IvS3!k zvvy-V6K45yCDd=ypf4UuUzWw1G|TVt?YT{>L8D2_vOVguGzLd!048>fUEu-?!L3i(s4>bebXInlX+ zQk?SXn6}TtJUn_=&I= z948t?C?T7oPU%w@-4Qbh8gCUNRuX@{MJ6I@)2c_^T~ta>#B1yPk#N!3=%f|!z;1FT zb_p{RHmqxw&uSj0jq$lO%ovHS@61&c=3Uy7jG<9!rl*w0wH;B#W<@-UtK<>!R<3hI z)=M)pa;F{l;An6%eR?O*w34#Min%*MyHZB3)V<;A*BZv_(s`hF` zm+Te4LCQ~y3w+slDA6A#2tWV=5P$##AOHafKmY;|fB*!ZKLJI~$hx@x&lo>T#(jFi z1OW&@00Izz00bZa0SG_<0uX?}z7!~Al*2~yZy~RY%gW?L{67G%%~uxYU(HjgGR8g0 zxM%#mFAIoFLjVF0fB*y_009U<00Izz00bb=6(}f&<>X_4OkSDH#h(I*`~Q0JE6KQR zTr@Icx5v&E|Dr`q5P$##AOHafKmY;|fB*y_uy+C%bXDq9$}2v7cfP#o@u2Pa8{6fR zZmr$qPT-e6pzq)FEp~=}TPLt-W%;DtYS6F9L@#Eg-14lAz}}!O-8uSR{f8RGJu#fP z^vgE%lM*&%#|*Yx+^6s>SqfhsPI&RX`>N%03VTtdunWTpo93DVpI0dG%y0r%+aCSw z5CuJxp`b^H71R-|^6*$q({}8@G%2jO|F0KsNyZ)HlA(;9AG=e0K#Q0l009U<00Izz z00bZa0SG`~4+So&or*l1YslW~fBmxBIWeTT>6LW%`d_=CcFIEv-*f$+y`**)h7>l< zHC+L#%W7w4NP)Z8|H@glb987y#r1z?g;;aLX$?Ks|M>mCJ?zjp6a*ju0SG_<0uX=z z1Rwwb2tZ)(1r%A4isJsiZ2T+HA0`Mu00Izz00bZa0SG_<0uX=z1fD|yMJeXQ{eR8) zPBQ*6{xE(qelWhL1xyft00bZa0SG_<0uX=z1Rwwb2>kB^G)t~kN@^N@|5dKv80HNhVNG-zBpkCm%+|8|uf$XXa&= m#K-FuRNmsS$<0qG%}KQ@Vg;HDvbh+<_{7Y}$XLV-WB~vW*ebXH literal 0 HcmV?d00001 diff --git a/__pycache__/praktikum.cpython-314.pyc b/__pycache__/praktikum.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df3c58d2698f5993286d43495daa155261706b65 GIT binary patch literal 1403 zcmbVM&ubGw6rRn_ZZ@0#uxb+$R+G}Igqnsz4<4k45Nd+b)_|cxn`M(->e6HrW+%mZ ziWlus5FsFf9{m$M`UiLj4UG;21ohypT8|!_*=93E@K6VK-uJ%u^4^;_Z!$kIt^&F~ zy!mavg8+PCioXIwaQuLRHYkIlPyl%W3kik;g+N}!qKCx-%u87EFf7RVAP#z1Dk%97 z4kbWQjsmQ1g^R%(8vvLzrv|pv8L%`=K|PdN?@NWgGcF|%c*k}zm14H#P$6eqXxl;* zDLDfh6~nbCRtwHHvP|1@aCI2V6Z9-Vq~GzOz-r&5`^oY%Ho+#dduzlAC9p2}ESDpD zfZBtc_tD5MmW1_?&vID`l)?2l*O!LXBmngfbKXZKu`Ha?AD+=)Jfpw#PycbhYA(xx zvamFq9`B5k+~%XQ$h)vP<+HRO7ktd6-(UWVqA&|m0mO2wrc@+TiP*)F31io=YeuDJ z>6Mn_l4-8nqe*dz;#&B`VZty?otwyHy|HVZCZ>?}HzhTZ?O+n#ra_QZwd^KNL86$$ zu_SWE8&v|m62d&X>$15_(na!_d#;7t%r3GpEp%rulWSC4bvnmx=Dy*W*2CmFGOF07 zWF}`fYYkuMicXj zXrdoUcO&V8NT!{m`jvElF58{U9?a$1x2Z0LpRPS#dzR}=y|~qb+GnWtVXO;do%z?s ztA!p+ef%%Ri`<9tE{t~;J4O#Chm6*RTIX&LCTNk8x_`B=YF$-3P%j_C#4$YtAd0TD zv+4S3YK+KuugN;eUM(5t9iTl%tgGbQX^#C>oJ_=dPWu<+%?r864g7`>d){6%S$4;$ zTe|)hpeSRfSr+AHy@^N@|5dKv80HNhVNG-zBpkCm%+|8|oJnC1#go vW&>s7<1_OzOXB183My}L*yQG?l;)(`6|n+s0J)(U#Q4O_$jDg43}gWSBi$~^ literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/bun.cpython-314.pyc b/praktikum/__pycache__/bun.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5f9760c14c1399b692d5f8047fe155ee87646751 GIT binary patch literal 1595 zcmb7E&u<$=6rS0&owdoY(uTAy0@FxQtxB;fK;lp#gnC3#*@{$v+R=8sfmJrUVRl@R zo-B%5Dpgb*BXQyATlf)(2+4ndG`>}P<-{$KCENoCzBlWw%>~qv_Pu%Edo%OqoA>t8 z>`aYe{QlkF;eF27A7m7xG@1~}kH=PR62)8FbN{gd9)2mMD4{eAzQKF~+~2l`jN-vEBle{9fxSO2K@Aa_@4`kRTU zy@vh`JN&E<^${)D?SDZV9qL{Ei~a%fQ15F5VYeKE#P<6ptbZQ|ANKF9)O;|==%YdG z+4u&_5LbAYt+89yTVFEP2Kq94pMT0-ew}{|4k3BVF!?93mz82~GswzYGW3I{mD#D1 zS$RE5JO!(=p2$s4Wivwfk(Z|J&{smFwD3YVd$09D8pyPDM+T}BryJX?tBK#)3}ThG zKJ?;t@Ok5!^n4WpY+VhvqNGsba%)R^8!Fs@=XNJv+1k#gh4A7yQJxBf$mYTK$|N#{ zGt=`BPrGc$tn&F25L_{$tQ`pYn6->J9#(Z3O*o{V9(1%i6Vm-dv zvt$K+NoO_ftds`P`WQ)RzbSc z@UI6O<;4aKc>e3bS{#{KvW&2-LOjd3$)y9cX-R4)`2xh~MNDRLhR|6E<2i$gp^TT$ zoiK=ijv*R3!mv}B-NxKu#98L0B$BRauIU&|V znW`v^gE)bEN{Dvi3nA&AlDb8{3Xv_KY0+4rFFd7Wc)O#56yc{P+S(7INC>>Ec`3U6 zJ9#-#)k_kDr57QdK0tM!Sa#VN*3f*W1BVVu>zL|mSOKkn5x4n;Xz42UCEa5=mUqyV b{913zCR}EB>XT!eb3U|Yd40ej%z}RagGYSN literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/burger.cpython-314.pyc b/praktikum/__pycache__/burger.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..36031d937033d97744726e913e1fca072f9be638 GIT binary patch literal 4186 zcmb_f&2JmW6`x&l$t6Welx2yk?T9OxmBmn%Dp^fjf5r7jDkrVV(ukbKjTbbzcDJUM z%OR`f7Ay8A^*S+ule1<`e7K%lCvbkog`zN!NqaR zpXA4UhL4SXC;elBA;d`s=^+_^jAVpS-dSw~GJ)MB8TE-UR5+B=PYojyPB;38oslz`2X$A_Xi#z$Hd}@x+&~U!!b3Sr@F1`UF1+S0 zaE-MtGh?lH!Ted!xNQA`8T=OscdAEXWiXrrtf~#&>?1^6?}foE$&d-6RVN4Wt16u# zyU7wazQo(Ub5ok#q*en*$FS0s!g(Eq`|KYLy{0QvA9|ZA#+0UCoE|z}%uP)~i0MN= z$!dA!l9Z;|oS_19=(t)c6unL!9xBo7MMJ#^Gv}CZ2TRkoD9fs*8nSG+Iu0N77_G3O z-o|WSZI8|Q-xpWEH8kgcD0Z#mG1ytX6S!w3>k`Zy?+TmJk&;T&NvQFq| z3`jj(vq^C^LYqFuU^_6u6rM6v!fuHC97hjB6e9~S4E6lVtgU|P)z-w zAQn{2Bdp`9W;`8V#JC>c1Ol5_)LFL~-)huJ>>OL;JHd%{7;+3l54!~Jhg!TCY@^C# z@ol9ZzAhKOO*70`Oea7v60JmbS&?1yul+r;doy-^kU}@F_W^lQPG@+Q**s*nj|C}3 z6YY?uyaP4?l=PeM{d6FAfs`Hx;->EyhY*f&i>Ds3{=-www_|F31Y#nJ?G84f2g=%p72{mzw zbX+YB0z$_c0dn&@tgBfCQmpxbGMD`p2G8QMQD;5eF9UUMDshlVsI#F($;%M(CI0lb ztxA@sYXGkzx0Se8cM=jJ-DHA;h~^j`;7k;;Ll>ajm#CUkoRoBYYzq#HRW;^iNn+On zeE}CmUC&n6GN`@>Q{dC+_TPvfh?Qus740oY6AN!Wi1yD3pYQ0d?0EkEj_2oIS&g(+ zI+9jLvfPn+5J|mvV$DZ(rXB@Iv|}z(!}V)jDs%*l03Z8wgFZb!F$!xQ4hg+$1jtRu zO6Y2qfD~&YQ0C!Jz&7Xovt_a&U=7XlO9Y<6BfdfI3Emw??@n-OylER+hW}~EV@>dB zyv`e%w~u#mrR(Cr6ZK@k79VJNvbFvZ!P6BduflPiINH*>XSiDHY!F6#wH^M)x#1@v zjkTwt)wGQ8H658?8XtKLtyb77OhCduIl~{4Y)+ctr9(48hZUX)rZF$} z!$de4a?(Y_kk_)4PPR}9Hlh20*lfa>E-AK9D88dmCsF)AFRGebH|-!*a*A3q=%%c) zn^3JgZEvf~E|3&eBurB_!;xe zo95254A->@uC7V}dD9K)md zt*LCmooSWj^D5Pif~qN65vGH(oG<2NnWBp+)HOnTkn|%NLV^{F9s^=`zN=&$jDApWa`7rwnA z!b=>l@z_QHUY|G`z)=E62^@`a&Mm(YfNSFs-W?lJs4M@j78j;}JQ=hD5IFc$#8kAK zt3Ne^@C>JTCD_|*yxNnJqG?RW5^<2lXOJx(bg(>3u{hz8bbL8K@^KvZ8HxRqJogz% PZ3L2B?>baUr_B8qVV0K6 literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/database.cpython-314.pyc b/praktikum/__pycache__/database.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..944a1d7bbbd3b3045a62f8a34790e70f4897751f GIT binary patch literal 2833 zcmb_dO>7%Q6rT0ZdhGmBrKywB)*Hf)tRyz5mEcgJ5)z23C`vXzQq+>sX1!@v*{sd% zxR9J&1fms4y&}XV5=hOhm8c4Wh8%N2TFZt+D^(yN4!yNlA~|s2&Df3|YM}};vfsR! zH}lQ=-n@C+-`*BM(0*M1%iIni^cx@48jM9Nk3*M7^GKCaXjEcSjO)IXZ`9BHLieWv zqd^uFdLSi_hFEA6GaN%*s28chC{pEfz6ux%tD!y=#}D~1E_s15(_zs2hjKP_k(7Of z8fnw8S={G!rN-Y@M}|`)JS4o=!2fp; zlT^ff^O*ThpbW5K0o4~pEI5nKN~%AKEUX4VKEq@&1AfDdEM`J#h~ZfT-ed4S?BQXJ zX$zWT2X6|wNXd%y5W;iE)Eml}A4K=&hr%lkkmj}mAW*#~AZI#@l6CJrohWg=MDYuaUw zDw>Ms)3vKPS4E1!8UF!En%_PmB%kVUid4JOn)A>%Wf!h3xGa*JkJJG0ggEkci0A*o z3B6|0J*ysUdk}V(Q>-67I88;s_4|vR@PedCDSr122a*=%rcmV)25w)wbToNbhInR zcs%3<0L$@O%!4B2c(Rtw8g`oUYDoE8qB0l!1#Lk2atv$H;Sc9UZ!$UK7}QB#r3M3- z<<;bHM$fH4DRYu@nw>V@S0<>YGZQA0!)DgX)H?D?GE22(W-fyzU9BvM?5c+eF>R9( z;vK6MoJ4J^4GwiW;pjZtjrCp+d>Y;zOkNL^aQCmc^=9}+cn5bEaQ7FTpIy4uSL{iY zaB}x)4Rg2r#h!r@9t5Zg%nptfaO}%SssF-O|F%<9rb>7k@Sd~|xD!)FWx9lCnwkgQ z$?2jpQ^K=Nu!purxAmf;mhe=Q%|lxk{|$R+DkD$1b=DZB;Q|YNvRKQ_#W~);mQ1FsU7!G4kuCqzEbjH zhOTJLYa>LrG{;GsI^3AUcRZJ;oqS^}A)0Mxn8pma%dUpItWTeYg-$n!{XE)3Qn2SS z7wdubsjtF9r6<66=;Of2fhV}k{pFOJm2Gfe8jnk~9oEoeAS&rvajadts+pFyU>QWD ze)Pb#!v^6Tf2ojc9i2B+kwyYA4DM458(wb=5P2Kuwm(NiEA!%4X}^b81vTY5lL zW2W#xDeG+G;!iKVD)hRKuu8P23>sBnHH57Lx+lWcRgX?%tvJ&pdJT4t=+SbnS_VRgf@2m!t#*gQrTM21lQF%<%X z;ye#x|6?HV*yju4KX7|+M%q&#PapAQ-IF2ufAT93oWwRxMrNy79tZwvytacLzdanc5=oGM-%K3@si>+~!f%K11vmmc{gNqT^yzoXL+ SQ2#GzW>4;slrjP#HvbKjqf9UW literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/ingredient.cpython-314.pyc b/praktikum/__pycache__/ingredient.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7cd2452e1ea9cf0cdbfb19d7d2335985c9cf4fa2 GIT binary patch literal 2044 zcmbVMO>7%Q6rS0&owbuRDM?72R$_?}uu#R6f`m|o5bA|XRJI}!s_1B0Z^|m0wV53w z+>=ufRiz59RN{g-TiB*bz{ zs<_Hj$sGqC6Ito)__7RYVGyh4uW)=xf35H8TY6XDPH)(HPv6l$q-_}9g8r_)lU~(3 z%O(BQKk?UXz;@DWwC88NgPU*bJv-gfchgVPE!g$#e>k-DZn~9Tg#*F;p8myt{?V?S zQ*@U8QGc&@U@0&I&vyDbGDLnphfuI$DL^%$c20pg%iC;~T{2$#jIkP^C)qpvL+Iks8%D$aig6_smsQv{UvbPV zhpNdjKqZoJa#=13qIHQkGlUa7?^!5v5;~bBL>Px4T{iPjKs}IxIS%XE?A~nUM)BV4 z0+_kQFG_M6(1#vCpF8W=F!QJfQ02hbka<{^74U*&>~M+c?ig|$8aV-`f0e{i9z%2r z4029p!H~KGpIB*^W~N6SF}|gk{Mjvkpz+pJuXFP9xn@CMrTBpGU`#jS)pdg z1XfWwqAc{JPQcDlQ7jCfGIaFe3_v0@l%#dNrLBb_k^e7=dbBEeAM)!{>+pR z>!D0k6vjbZhv_jPYIR=-IfuSaqFF-o9GGklen0q{LSJ}F$?$`w3KH0JeB^)hgD4UL z-Z|wL>hNYSz3|_bXb?+Y2J_$=Jmv!`|=b mWCcz@XWPB_`~S?@UX*Xh(}Qy`pZ879dDocX0K8#aNS}B ztG~q#RpY10e2YCkJ|#anKK_;{P*aeri>Iq!NPI|SfNMNNtvI?cRPRcL&mdpkiqsD+ zPAw|dFDptdDa|X+uGDwQPcF?(%_}L^k4(%GGu{==gMvf2)lkMKNtlit)&dv%2 z3N@Ng>WWNlbnxbf1_o%O&tNzXD*ulxJZ&9ns9WES0w+ z51m!U#d3vK3dY-0G(~i&g7n;bQZl)o*@gyVDb26bPrk(ugp~SGb%hpch!*uM1g5h5 z2Ub8Ks7oc+XjuJapV+2l%ITsIDgh3(+WZWXvVbO}M0TnxS*b7AT%uqDM>Za~sYr`{jP492>;q-Q47M0>3a zug-i3)TVbmHB(z+yE=BGnmiasm#neA?J2vCRs95OwL1ap(&d(j*49^&d35D(b+f5% zR?j_$n5D%3I%7`lAm&_E>2KLPKdla2!l5pO{|5H;BdBK#V6t+o84_u$<$8M!>e?;Jg<)b)kx<9dFWb z#DuJX17phK9$3fQA|%^$j}hV#wh2#pq+w8OUGyEpH7H2#6qpiN&J^LtoMpwOCj7dv z5}!Cq%Klbjpp|$%A|k(Uv=WDc0(j}|?JbLsov5CK{07yJh($v;n3<~{^~|tgxiqMr zHr%>(u{=%;liI+n9<_bPO9s5Z%JUNl2&r%@{v6vUQkEnU(m+Gv1|kL6=c}$`>S5D! z14=@ZLi9s%{i>|jG7oVCw*f4mU)oS-*R4I@cD%SKf7jXd`IQ@2?y5bDS8iT~VQKSn zXU~cn|J?`v)s#w+#UMrRfksR{;7%gJT6Q2_+T3c_LZxg#K(7hwM9--zXZ~eX*8i`{ z&!H-3lDfCfs+`*WS5;Y*R>E(WC^&@I3&LMOgg+$63movr58<70jC2BoLOiTbOVbWNK1?GmsX{STDvU0 z`IoZvk8L;bWvpG8=5Ng3RrfB=-@FFHQqOYd-W4_eyAS+pDU~9;6vZ0%KqICea3_&q zEjth|LA_hGYoSs$AfQL~z-sTn(^%Frj|-EIVa}AHmOrcmn{zIlx2YvKUq_rgvFe<* z`{AX^V&Fep-DU$V$c;GghY#=U^cGigPpCXWem z$k`4Y1zd?*Jv<32#JWIWGgu*IG1v^jBjSn-z*1SePmCFA&xDN%?2>rZL=kBqjb;>= pLVYVr{Sk5m1U&qJ-=9aaBuPIY^eOtJ{d=_Qw_KOh*F*q>>7SY}wv7M) literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_burger.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/test_burger.cpython-314-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..da38caf1b0340200168f55fd1039c46f0a134360 GIT binary patch literal 12330 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 Q3uZi?k^68g+hdO8UyVfv&j0`b literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_database.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/test_database.cpython-314-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1c8f9815b475293ea1e133cce5c5ce399eb06d09 GIT binary patch literal 6278 zcmeGg?@t^>boOrVZVo70z|vYpKoL3H+z&aRiZyN8MvT#rjh<=5PL^YVO_#f4cF&fY zHZ?I3qb5y^Nk5YKBW?d05Gc*W#LxX^Uj7`Mrv0gHvx`|$t#9m8Iq})_5 zIY9b}9zRHQwFv(3a;dI7Lo$iGNW7U*1U+rI#_l>5Y7_RN301O!KJs3+TZtR@u z#=A)sMn6bgRgVEo=y5k$B5q1o(X(iK%XHk(tMr84THzNbgl>PE!Zl2VvLZ_1swpL9 z5;U5xP#&8~NLeXX4D4(1bMeJfCH2?@A&YN67bu)j=6VQul1wF~#Uzzj;|cNEUrG!s zddEA(;aD+Q zeiNZz`cU1p)NRU7N^jHml~PUlY28JBTBT?C4Dv($9Muw#r<;%`W!HIX-^-KS!L|P` zPqAI+N!!cQf1M{i4gcp|ck%yN#A{1=5x30>Vg;d2*DDU9!w5$2wHuCOa<}iRK;46PAePP~mO;o#-;^qt@H=Y zu!>9@$Er!R8}A#IZA{xH!)0^)Y>So?wIvq{9cFOR!ODhhGj7&+xw=p@xGCB|4BD3M zS`etDT?GwC9AeIVwQkRNs%*}#P8+s2wn#I_m^IOZXg}%2(yCU@a9-u2i_KQ~g5fgr zV$C)xh6@rw<*YMpLUl}gR?wNCkmFdmh*q3{AMY2U#7LAV`h@R)EK0l>Rm(?-K+ShO z>MzuHP$)Q9DGl~DE}`e%hK=Fm-sh$Zu{*z%J6$c;7tD(5g1ehM1VYUT1sm?NYo|}HY#CWtI-K8;>8BRZJ zgRA8Gt|z{DX_?;94sL0KYueztHngmMuXSE4e!8?ud#<1Kz$aI>Xpety(4OU`kP4B{ zoDltv_C%O>LHzoT_sJNfyARhr+@de^jGKvuQhb*&$e zm3KX`rscOl?A_}q?)ULcnqR))qZ^)81P@ezzw)lnZi2UI{{Jv^R<1fLSDjrsyGjA9 zY1u6r-0Kv?up}fmX%<(F=mxTTBY2B2GbxMpnZ0%=h|a&oWSUw>x`z zk_if)@YQ&vJb7hw=UuEMcnSg5k30=Pv|5!psCX?bhdBOSa4ewsJ_L9y110o))$MbP zdfDU}a$G-}r97~atEWh49$g2xfy$p(i5D8ipa z0LMdwKZT$d0Ql=e91ge$FCcgt!7~U35Il=u5CMKU`4EB(g69D|P!IAWz!fhw6>yOm zK2XOw)jmWp+Yvex;7qCpd_i=5trb8r4TAb5iq!;9ll=p{K_gF z^XpJRR=sKzkQ=XiU`-p_02H|f|i)Tb!f@T?+upaT3GulwvKc$6TGu%`f3IPY5L z>kC=g6nSl`Kb=uf@kjLDH2Sh1oLBfM5a8S$bn;_dQIsDD`G{eLShLS0c%8VhS>ooEIZ4cyH#jR zY}!O0eD1SJU)F~v{S*2pENaBuq_MAkqoHXV(}$jWXJ>YxODY=DJ~&yj8f|k&Vl)OL zp^=7RnaV;J9*GYtR2fdtL>p>BN0AmefV60D$c;;rn$(Wcv0u12nwFR{QkWxV&N2%$ z9bzpbqnEXzOCv+0<9Ph~*bu&YVdCNtJFr##>ByBUpxdY z(=i&}k8E@^GA8z2wX5F78aK;a(xjUWT4*}g6TT^H;puOC!kLh_1HPZ$stb+pFlJPX ziI@$VyeVcp5L4MkNe%Cq@I)lwFN~19@c@1g^%VOA|-^bS}+KhWdvQTDtXq)nrJTYeA?LP5JYU#e&{04~I;dZ0M1+ z#I>28P;b>%leEy3>{-`)^tGAKg4x`WEi)xO-`f2snvC>T_vfuKcVLTOQ_bGvf_|UD zy0ma$NA>Na-aK05Uu|Q)EgZ02*mKB>zr#KIez50QHqse*c12l(mta!PN}IItsb(){ zfnD$QbhSHVH14g+yU$Bn{G3#bo|DL&7KekLd>I-TVBz9&7gK5{oGVUq(#y#i7U5_8 zWs~kWCZVa0lf~u!w8Mw`M;}Qf4s)iZmCIb;n|72ht4wM@n4b1jz*JRTX(uyhQq03D zcTT32JE;NJ_)OYKD}=uVO!h38GFV)u@H%3hux4!N`8+0Okr?)3Q70x#!Z4mGS$S#| z92U#lVBxTX*qOIW`J6Dtb9sA4&x;9J96S1~$s@3)3t~%_T^J(7ChQ$NYm-HtV)J$} zuNQO*Baajoam@TIQ)>wl5I|JE%&0&B!e4Qg;45*n)EyLhg2G3x;7-&R6wW#veNVuZ z5*HiKPC&+;>=(qOrGm4toV{clrA7D>IN9rZA!puBjS=0T7AUiqtYY5wZn!(kGv)}2 zYYWd5msyv{rI%gE4=s^`BXWa_eDyg@ZEV;Dhmw*(AuXS52E)uw18|ISz6Wv_{idM( zsfX$hr6(-|_m$`Bp*8i`s(P#?_EebHy`ulVd^xzm%L zi8$^^T~9D5M}nRK$yWmdb{nu@w4yk6iKGl->Wgz+fsi%Gc+G7pw8s3NB z5buq*c)tsHANCM+hj{P%{a1J|(3)_Z5s*drC!FvCkMNHyY2#!MC;TfjO89pLuzh&v z*e+mkTX2ta_;HbQAD<0s7)17S0<{7n2RS*!$ze|3<)jtJ7Jwujpkt?fI1&MUKy#(~ zh<0H+M0@2BJW1PQTKlTnUXe2uwf%|O0Zh4NRn4r))!$P-(&39f!%?hi@>tGz(lZgq z9jWUH2IZEZXF&4Rz+>qJzOuTi_N~d)-%}YzpfamzT%O}rRrgr#^Q33o`j|UX*AooNYS1$v`D$Rm zPN3K$`0q#)ld)U4Vy0lcXy;0K6JwUdc&Vi4d4B#h#t#fW&MzQ2S+>>RqBKLCl4+OW_J?pz? z>$^9Wor>JU-P2+no89|``|mJ&zjzj6OX)@?du^Ebma{|HO?1ZXiJ+Ov5c3wXsLA5K ziZxVq?)%dZIbr*XL|>rRLTNEm>s{Qo@Nm5$(T_QShbQvf1EJjIi8?|4*gYTT$t4)z j55?g%#d=thq!$Q%gT8M337vX@CjN*Wl=?Ri5aInd(je}* literal 0 HcmV?d00001 diff --git a/tests/test_bun.py b/tests/test_bun.py new file mode 100644 index 000000000..5b073063b --- /dev/null +++ b/tests/test_bun.py @@ -0,0 +1,23 @@ +import pytest +from praktikum.bun import Bun + + +class TestBun: + + @pytest.mark.parametrize("name, price", [ + ("black bun", 100), + ("white bun", 200), + ("red bun", 300), + ]) + def test_get_name_returns_name_passed_to_constructor(self, name, price): + bun = Bun(name, price) + assert bun.get_name() == name + + @pytest.mark.parametrize("name, price", [ + ("black bun", 100.0), + ("white bun", 200.5), + ("red bun", 300.99), + ]) + def test_get_price_returns_price_passed_to_constructor(self, name, price): + bun = Bun(name, price) + assert bun.get_price() == price \ No newline at end of file diff --git a/tests/test_burger.py b/tests/test_burger.py new file mode 100644 index 000000000..df9dbd5fd --- /dev/null +++ b/tests/test_burger.py @@ -0,0 +1,92 @@ +from unittest.mock import Mock +import pytest +from praktikum.burger import Burger + + +class TestBurger: + + def test_set_buns_stores_bun(self): + burger = Burger() + mock_bun = Mock() + burger.set_buns(mock_bun) + assert burger.bun == mock_bun + + def test_add_ingredient_adds_to_list(self): + burger = Burger() + mock_ingredient = Mock() + burger.add_ingredient(mock_ingredient) + assert len(burger.ingredients) == 1 + assert burger.ingredients[0] == mock_ingredient + + def test_remove_ingredient_removes_by_index(self): + burger = Burger() + mock_ingredient1 = Mock() + mock_ingredient2 = Mock() + burger.add_ingredient(mock_ingredient1) + burger.add_ingredient(mock_ingredient2) + burger.remove_ingredient(0) + assert len(burger.ingredients) == 1 + assert burger.ingredients[0] == mock_ingredient2 + + def test_move_ingredient_changes_order(self): + burger = Burger() + mock_ingredient1 = Mock() + mock_ingredient2 = Mock() + mock_ingredient3 = Mock() + burger.add_ingredient(mock_ingredient1) + burger.add_ingredient(mock_ingredient2) + burger.add_ingredient(mock_ingredient3) + burger.move_ingredient(0, 2) + assert burger.ingredients[0] == mock_ingredient2 + assert burger.ingredients[1] == mock_ingredient3 + assert burger.ingredients[2] == mock_ingredient1 + + @pytest.mark.parametrize("bun_price, ingredient_prices, expected_price", [ + (100, [], 200), + (200, [100], 500), + (300, [100, 200], 900), + (150.5, [50.5, 75.0], 426.5), + ]) + def test_get_price_calculates_correctly(self, bun_price, ingredient_prices, expected_price): + burger = Burger() + mock_bun = Mock() + mock_bun.get_price.return_value = bun_price + burger.set_buns(mock_bun) + + for price in ingredient_prices: + mock_ingredient = Mock() + mock_ingredient.get_price.return_value = price + burger.add_ingredient(mock_ingredient) + + assert burger.get_price() == expected_price + + def test_get_receipt_returns_formatted_string(self): + burger = Burger() + mock_bun = Mock() + mock_bun.get_name.return_value = "black bun" + mock_bun.get_price.return_value = 100 + burger.set_buns(mock_bun) + + mock_ingredient1 = Mock() + mock_ingredient1.get_type.return_value = "SAUCE" + mock_ingredient1.get_name.return_value = "hot sauce" + mock_ingredient1.get_price.return_value = 100 + + mock_ingredient2 = Mock() + mock_ingredient2.get_type.return_value = "FILLING" + mock_ingredient2.get_name.return_value = "cutlet" + mock_ingredient2.get_price.return_value = 100 + + burger.add_ingredient(mock_ingredient1) + burger.add_ingredient(mock_ingredient2) + + expected_receipt = ( + "(==== black bun ====)\n" + "= sauce hot sauce =\n" + "= filling cutlet =\n" + "(==== black bun ====)\n" + "\n" + "Price: 400" + ) + + assert burger.get_receipt() == expected_receipt \ No newline at end of file diff --git a/tests/test_database.py b/tests/test_database.py new file mode 100644 index 000000000..9aabe16fc --- /dev/null +++ b/tests/test_database.py @@ -0,0 +1,19 @@ +from praktikum.database import Database + + +class TestDatabase: + + def test_available_buns_returns_list_of_three_buns(self): + database = Database() + buns = database.available_buns() + assert len(buns) == 3 + assert buns[0].get_name() == "black bun" + assert buns[1].get_name() == "white bun" + assert buns[2].get_name() == "red bun" + + def test_available_ingredients_returns_list_of_six_ingredients(self): + database = Database() + ingredients = database.available_ingredients() + assert len(ingredients) == 6 + assert ingredients[0].get_name() == "hot sauce" + assert ingredients[3].get_name() == "cutlet" \ No newline at end of file diff --git a/tests/test_ingredient.py b/tests/test_ingredient.py new file mode 100644 index 000000000..e3cc85ece --- /dev/null +++ b/tests/test_ingredient.py @@ -0,0 +1,30 @@ +import pytest +from praktikum.ingredient import Ingredient +from praktikum.ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING + + +class TestIngredient: + + @pytest.mark.parametrize("ingredient_type, name, price", [ + (INGREDIENT_TYPE_SAUCE, "hot sauce", 100), + (INGREDIENT_TYPE_FILLING, "cutlet", 150), + ]) + def test_get_name_returns_name_passed_to_constructor(self, ingredient_type, name, price): + ingredient = Ingredient(ingredient_type, name, price) + assert ingredient.get_name() == name + + @pytest.mark.parametrize("ingredient_type, name, price", [ + (INGREDIENT_TYPE_SAUCE, "sour cream", 200.0), + (INGREDIENT_TYPE_FILLING, "dinosaur", 200.5), + ]) + def test_get_price_returns_price_passed_to_constructor(self, ingredient_type, name, price): + ingredient = Ingredient(ingredient_type, name, price) + assert ingredient.get_price() == price + + @pytest.mark.parametrize("ingredient_type, name, price", [ + (INGREDIENT_TYPE_SAUCE, "chili sauce", 300), + (INGREDIENT_TYPE_FILLING, "sausage", 350), + ]) + def test_get_type_returns_type_passed_to_constructor(self, ingredient_type, name, price): + ingredient = Ingredient(ingredient_type, name, price) + assert ingredient.get_type() == ingredient_type \ No newline at end of file From fd0b3ed127f5c2c23fa0e490fea256ab8ea1603d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A0?= =?UTF-8?q?=D0=B5=D1=82=D1=83=D0=BD=D1=81=D0=BA=D0=B8=D0=B9?= Date: Thu, 7 May 2026 17:55:07 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20.gitignore,=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=20=D1=81=D0=BB=D1=83=D0=B6=D0=B5=D0=B1=D0=BD=D1=8B=D0=B5?= =?UTF-8?q?=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .coverage | Bin 53248 -> 0 bytes .gitignore | 6 ++++++ __pycache__/__init__.cpython-314.pyc | Bin 170 -> 0 bytes __pycache__/praktikum.cpython-314.pyc | Bin 1403 -> 0 bytes praktikum/__pycache__/__init__.cpython-314.pyc | Bin 180 -> 0 bytes praktikum/__pycache__/bun.cpython-314.pyc | Bin 1595 -> 0 bytes praktikum/__pycache__/burger.cpython-314.pyc | Bin 4186 -> 0 bytes praktikum/__pycache__/database.cpython-314.pyc | Bin 2833 -> 0 bytes .../__pycache__/ingredient.cpython-314.pyc | Bin 2044 -> 0 bytes .../ingredient_types.cpython-314.pyc | Bin 408 -> 0 bytes .../test_bun.cpython-314-pytest-9.0.2.pyc | Bin 3515 -> 0 bytes .../test_burger.cpython-314-pytest-9.0.2.pyc | Bin 12330 -> 0 bytes .../test_database.cpython-314-pytest-9.0.2.pyc | Bin 6278 -> 0 bytes ...test_ingredient.cpython-314-pytest-9.0.2.pyc | Bin 5134 -> 0 bytes 14 files changed, 6 insertions(+) delete mode 100644 .coverage create mode 100644 .gitignore delete mode 100644 __pycache__/__init__.cpython-314.pyc delete mode 100644 __pycache__/praktikum.cpython-314.pyc delete mode 100644 praktikum/__pycache__/__init__.cpython-314.pyc delete mode 100644 praktikum/__pycache__/bun.cpython-314.pyc delete mode 100644 praktikum/__pycache__/burger.cpython-314.pyc delete mode 100644 praktikum/__pycache__/database.cpython-314.pyc delete mode 100644 praktikum/__pycache__/ingredient.cpython-314.pyc delete mode 100644 praktikum/__pycache__/ingredient_types.cpython-314.pyc delete mode 100644 tests/__pycache__/test_bun.cpython-314-pytest-9.0.2.pyc delete mode 100644 tests/__pycache__/test_burger.cpython-314-pytest-9.0.2.pyc delete mode 100644 tests/__pycache__/test_database.cpython-314-pytest-9.0.2.pyc delete mode 100644 tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.2.pyc diff --git a/.coverage b/.coverage deleted file mode 100644 index d0430c6c4d23ac429faeba8c83ffdc12acc759c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53248 zcmeI)+i%-c90zbacI+li>cSXNS4}%FQ&;s8q9Os~VH8%0iAn6zZsUP@PIB6sCU#~! zUHgDg#>5bR0_-2yBwqOg5RW_~q&&7OkVRme_GVOfTk4yH2SBzD6Nhp53&(ZMMO;XTu%hqXm2`h*nS#Zm&6F4|Xh0 zKFvJ7%02GXxF6->m|dUFPk;JJUN0RuAm8L+nJlkHf1`b+p%rOSPOVa)n(Ng??yH{V z)YiE_%dBn*YcAz;D~L+#xy^FmvWD%1#dLf-uw94oEnaH}yuNDzX9Zd^5ngX;DApBG zpes?z_*gwUY2sZ{#=FOfS1EIjo3N${#i1#2m}jTmtP=T0?Pg0<4yA|=9Jqs04oVxi zabcghZg#25w7h-QnUISbjZ(E8`)ZqaD}R=yDQClCIPNSHg`gI2bW|(7aX^-+Rq`$W zYJ=W7nN~Y+!)22y->lG6;l>Lidg;g!`R3KIp$HzcY6pIICfC#%P+=+UG7?;E&+gAv&ChY<{P6SV${gxH1vq$qTR#V2OvRdiQgM%_IvS3!k zvvy-V6K45yCDd=ypf4UuUzWw1G|TVt?YT{>L8D2_vOVguGzLd!048>fUEu-?!L3i(s4>bebXInlX+ zQk?SXn6}TtJUn_=&I= z948t?C?T7oPU%w@-4Qbh8gCUNRuX@{MJ6I@)2c_^T~ta>#B1yPk#N!3=%f|!z;1FT zb_p{RHmqxw&uSj0jq$lO%ovHS@61&c=3Uy7jG<9!rl*w0wH;B#W<@-UtK<>!R<3hI z)=M)pa;F{l;An6%eR?O*w34#Min%*MyHZB3)V<;A*BZv_(s`hF` zm+Te4LCQ~y3w+slDA6A#2tWV=5P$##AOHafKmY;|fB*!ZKLJI~$hx@x&lo>T#(jFi z1OW&@00Izz00bZa0SG_<0uX?}z7!~Al*2~yZy~RY%gW?L{67G%%~uxYU(HjgGR8g0 zxM%#mFAIoFLjVF0fB*y_009U<00Izz00bb=6(}f&<>X_4OkSDH#h(I*`~Q0JE6KQR zTr@Icx5v&E|Dr`q5P$##AOHafKmY;|fB*y_uy+C%bXDq9$}2v7cfP#o@u2Pa8{6fR zZmr$qPT-e6pzq)FEp~=}TPLt-W%;DtYS6F9L@#Eg-14lAz}}!O-8uSR{f8RGJu#fP z^vgE%lM*&%#|*Yx+^6s>SqfhsPI&RX`>N%03VTtdunWTpo93DVpI0dG%y0r%+aCSw z5CuJxp`b^H71R-|^6*$q({}8@G%2jO|F0KsNyZ)HlA(;9AG=e0K#Q0l009U<00Izz z00bZa0SG`~4+So&or*l1YslW~fBmxBIWeTT>6LW%`d_=CcFIEv-*f$+y`**)h7>l< zHC+L#%W7w4NP)Z8|H@glb987y#r1z?g;;aLX$?Ks|M>mCJ?zjp6a*ju0SG_<0uX=z z1Rwwb2tZ)(1r%A4isJsiZ2T+HA0`Mu00Izz00bZa0SG_<0uX=z1fD|yMJeXQ{eR8) zPBQ*6{xE(qelWhL1xyft00bZa0SG_<0uX=z1Rwwb2>kB^G)t~kN@^N@|5dKv80HNhVNG-zBpkCm%+|8|uf$XXa&= m#K-FuRNmsS$<0qG%}KQ@Vg;HDvbh+<_{7Y}$XLV-WB~vW*ebXH diff --git a/__pycache__/praktikum.cpython-314.pyc b/__pycache__/praktikum.cpython-314.pyc deleted file mode 100644 index df3c58d2698f5993286d43495daa155261706b65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1403 zcmbVM&ubGw6rRn_ZZ@0#uxb+$R+G}Igqnsz4<4k45Nd+b)_|cxn`M(->e6HrW+%mZ ziWlus5FsFf9{m$M`UiLj4UG;21ohypT8|!_*=93E@K6VK-uJ%u^4^;_Z!$kIt^&F~ zy!mavg8+PCioXIwaQuLRHYkIlPyl%W3kik;g+N}!qKCx-%u87EFf7RVAP#z1Dk%97 z4kbWQjsmQ1g^R%(8vvLzrv|pv8L%`=K|PdN?@NWgGcF|%c*k}zm14H#P$6eqXxl;* zDLDfh6~nbCRtwHHvP|1@aCI2V6Z9-Vq~GzOz-r&5`^oY%Ho+#dduzlAC9p2}ESDpD zfZBtc_tD5MmW1_?&vID`l)?2l*O!LXBmngfbKXZKu`Ha?AD+=)Jfpw#PycbhYA(xx zvamFq9`B5k+~%XQ$h)vP<+HRO7ktd6-(UWVqA&|m0mO2wrc@+TiP*)F31io=YeuDJ z>6Mn_l4-8nqe*dz;#&B`VZty?otwyHy|HVZCZ>?}HzhTZ?O+n#ra_QZwd^KNL86$$ zu_SWE8&v|m62d&X>$15_(na!_d#;7t%r3GpEp%rulWSC4bvnmx=Dy*W*2CmFGOF07 zWF}`fYYkuMicXj zXrdoUcO&V8NT!{m`jvElF58{U9?a$1x2Z0LpRPS#dzR}=y|~qb+GnWtVXO;do%z?s ztA!p+ef%%Ri`<9tE{t~;J4O#Chm6*RTIX&LCTNk8x_`B=YF$-3P%j_C#4$YtAd0TD zv+4S3YK+KuugN;eUM(5t9iTl%tgGbQX^#C>oJ_=dPWu<+%?r864g7`>d){6%S$4;$ zTe|)hpeSRfSr+AHy@^N@|5dKv80HNhVNG-zBpkCm%+|8|oJnC1#go vW&>s7<1_OzOXB183My}L*yQG?l;)(`6|n+s0J)(U#Q4O_$jDg43}gWSBi$~^ diff --git a/praktikum/__pycache__/bun.cpython-314.pyc b/praktikum/__pycache__/bun.cpython-314.pyc deleted file mode 100644 index 5f9760c14c1399b692d5f8047fe155ee87646751..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1595 zcmb7E&u<$=6rS0&owdoY(uTAy0@FxQtxB;fK;lp#gnC3#*@{$v+R=8sfmJrUVRl@R zo-B%5Dpgb*BXQyATlf)(2+4ndG`>}P<-{$KCENoCzBlWw%>~qv_Pu%Edo%OqoA>t8 z>`aYe{QlkF;eF27A7m7xG@1~}kH=PR62)8FbN{gd9)2mMD4{eAzQKF~+~2l`jN-vEBle{9fxSO2K@Aa_@4`kRTU zy@vh`JN&E<^${)D?SDZV9qL{Ei~a%fQ15F5VYeKE#P<6ptbZQ|ANKF9)O;|==%YdG z+4u&_5LbAYt+89yTVFEP2Kq94pMT0-ew}{|4k3BVF!?93mz82~GswzYGW3I{mD#D1 zS$RE5JO!(=p2$s4Wivwfk(Z|J&{smFwD3YVd$09D8pyPDM+T}BryJX?tBK#)3}ThG zKJ?;t@Ok5!^n4WpY+VhvqNGsba%)R^8!Fs@=XNJv+1k#gh4A7yQJxBf$mYTK$|N#{ zGt=`BPrGc$tn&F25L_{$tQ`pYn6->J9#(Z3O*o{V9(1%i6Vm-dv zvt$K+NoO_ftds`P`WQ)RzbSc z@UI6O<;4aKc>e3bS{#{KvW&2-LOjd3$)y9cX-R4)`2xh~MNDRLhR|6E<2i$gp^TT$ zoiK=ijv*R3!mv}B-NxKu#98L0B$BRauIU&|V znW`v^gE)bEN{Dvi3nA&AlDb8{3Xv_KY0+4rFFd7Wc)O#56yc{P+S(7INC>>Ec`3U6 zJ9#-#)k_kDr57QdK0tM!Sa#VN*3f*W1BVVu>zL|mSOKkn5x4n;Xz42UCEa5=mUqyV b{913zCR}EB>XT!eb3U|Yd40ej%z}RagGYSN diff --git a/praktikum/__pycache__/burger.cpython-314.pyc b/praktikum/__pycache__/burger.cpython-314.pyc deleted file mode 100644 index 36031d937033d97744726e913e1fca072f9be638..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4186 zcmb_f&2JmW6`x&l$t6Welx2yk?T9OxmBmn%Dp^fjf5r7jDkrVV(ukbKjTbbzcDJUM z%OR`f7Ay8A^*S+ule1<`e7K%lCvbkog`zN!NqaR zpXA4UhL4SXC;elBA;d`s=^+_^jAVpS-dSw~GJ)MB8TE-UR5+B=PYojyPB;38oslz`2X$A_Xi#z$Hd}@x+&~U!!b3Sr@F1`UF1+S0 zaE-MtGh?lH!Ted!xNQA`8T=OscdAEXWiXrrtf~#&>?1^6?}foE$&d-6RVN4Wt16u# zyU7wazQo(Ub5ok#q*en*$FS0s!g(Eq`|KYLy{0QvA9|ZA#+0UCoE|z}%uP)~i0MN= z$!dA!l9Z;|oS_19=(t)c6unL!9xBo7MMJ#^Gv}CZ2TRkoD9fs*8nSG+Iu0N77_G3O z-o|WSZI8|Q-xpWEH8kgcD0Z#mG1ytX6S!w3>k`Zy?+TmJk&;T&NvQFq| z3`jj(vq^C^LYqFuU^_6u6rM6v!fuHC97hjB6e9~S4E6lVtgU|P)z-w zAQn{2Bdp`9W;`8V#JC>c1Ol5_)LFL~-)huJ>>OL;JHd%{7;+3l54!~Jhg!TCY@^C# z@ol9ZzAhKOO*70`Oea7v60JmbS&?1yul+r;doy-^kU}@F_W^lQPG@+Q**s*nj|C}3 z6YY?uyaP4?l=PeM{d6FAfs`Hx;->EyhY*f&i>Ds3{=-www_|F31Y#nJ?G84f2g=%p72{mzw zbX+YB0z$_c0dn&@tgBfCQmpxbGMD`p2G8QMQD;5eF9UUMDshlVsI#F($;%M(CI0lb ztxA@sYXGkzx0Se8cM=jJ-DHA;h~^j`;7k;;Ll>ajm#CUkoRoBYYzq#HRW;^iNn+On zeE}CmUC&n6GN`@>Q{dC+_TPvfh?Qus740oY6AN!Wi1yD3pYQ0d?0EkEj_2oIS&g(+ zI+9jLvfPn+5J|mvV$DZ(rXB@Iv|}z(!}V)jDs%*l03Z8wgFZb!F$!xQ4hg+$1jtRu zO6Y2qfD~&YQ0C!Jz&7Xovt_a&U=7XlO9Y<6BfdfI3Emw??@n-OylER+hW}~EV@>dB zyv`e%w~u#mrR(Cr6ZK@k79VJNvbFvZ!P6BduflPiINH*>XSiDHY!F6#wH^M)x#1@v zjkTwt)wGQ8H658?8XtKLtyb77OhCduIl~{4Y)+ctr9(48hZUX)rZF$} z!$de4a?(Y_kk_)4PPR}9Hlh20*lfa>E-AK9D88dmCsF)AFRGebH|-!*a*A3q=%%c) zn^3JgZEvf~E|3&eBurB_!;xe zo95254A->@uC7V}dD9K)md zt*LCmooSWj^D5Pif~qN65vGH(oG<2NnWBp+)HOnTkn|%NLV^{F9s^=`zN=&$jDApWa`7rwnA z!b=>l@z_QHUY|G`z)=E62^@`a&Mm(YfNSFs-W?lJs4M@j78j;}JQ=hD5IFc$#8kAK zt3Ne^@C>JTCD_|*yxNnJqG?RW5^<2lXOJx(bg(>3u{hz8bbL8K@^KvZ8HxRqJogz% PZ3L2B?>baUr_B8qVV0K6 diff --git a/praktikum/__pycache__/database.cpython-314.pyc b/praktikum/__pycache__/database.cpython-314.pyc deleted file mode 100644 index 944a1d7bbbd3b3045a62f8a34790e70f4897751f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2833 zcmb_dO>7%Q6rT0ZdhGmBrKywB)*Hf)tRyz5mEcgJ5)z23C`vXzQq+>sX1!@v*{sd% zxR9J&1fms4y&}XV5=hOhm8c4Wh8%N2TFZt+D^(yN4!yNlA~|s2&Df3|YM}};vfsR! zH}lQ=-n@C+-`*BM(0*M1%iIni^cx@48jM9Nk3*M7^GKCaXjEcSjO)IXZ`9BHLieWv zqd^uFdLSi_hFEA6GaN%*s28chC{pEfz6ux%tD!y=#}D~1E_s15(_zs2hjKP_k(7Of z8fnw8S={G!rN-Y@M}|`)JS4o=!2fp; zlT^ff^O*ThpbW5K0o4~pEI5nKN~%AKEUX4VKEq@&1AfDdEM`J#h~ZfT-ed4S?BQXJ zX$zWT2X6|wNXd%y5W;iE)Eml}A4K=&hr%lkkmj}mAW*#~AZI#@l6CJrohWg=MDYuaUw zDw>Ms)3vKPS4E1!8UF!En%_PmB%kVUid4JOn)A>%Wf!h3xGa*JkJJG0ggEkci0A*o z3B6|0J*ysUdk}V(Q>-67I88;s_4|vR@PedCDSr122a*=%rcmV)25w)wbToNbhInR zcs%3<0L$@O%!4B2c(Rtw8g`oUYDoE8qB0l!1#Lk2atv$H;Sc9UZ!$UK7}QB#r3M3- z<<;bHM$fH4DRYu@nw>V@S0<>YGZQA0!)DgX)H?D?GE22(W-fyzU9BvM?5c+eF>R9( z;vK6MoJ4J^4GwiW;pjZtjrCp+d>Y;zOkNL^aQCmc^=9}+cn5bEaQ7FTpIy4uSL{iY zaB}x)4Rg2r#h!r@9t5Zg%nptfaO}%SssF-O|F%<9rb>7k@Sd~|xD!)FWx9lCnwkgQ z$?2jpQ^K=Nu!purxAmf;mhe=Q%|lxk{|$R+DkD$1b=DZB;Q|YNvRKQ_#W~);mQ1FsU7!G4kuCqzEbjH zhOTJLYa>LrG{;GsI^3AUcRZJ;oqS^}A)0Mxn8pma%dUpItWTeYg-$n!{XE)3Qn2SS z7wdubsjtF9r6<66=;Of2fhV}k{pFOJm2Gfe8jnk~9oEoeAS&rvajadts+pFyU>QWD ze)Pb#!v^6Tf2ojc9i2B+kwyYA4DM458(wb=5P2Kuwm(NiEA!%4X}^b81vTY5lL zW2W#xDeG+G;!iKVD)hRKuu8P23>sBnHH57Lx+lWcRgX?%tvJ&pdJT4t=+SbnS_VRgf@2m!t#*gQrTM21lQF%<%X z;ye#x|6?HV*yju4KX7|+M%q&#PapAQ-IF2ufAT93oWwRxMrNy79tZwvytacLzdanc5=oGM-%K3@si>+~!f%K11vmmc{gNqT^yzoXL+ SQ2#GzW>4;slrjP#HvbKjqf9UW diff --git a/praktikum/__pycache__/ingredient.cpython-314.pyc b/praktikum/__pycache__/ingredient.cpython-314.pyc deleted file mode 100644 index 7cd2452e1ea9cf0cdbfb19d7d2335985c9cf4fa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2044 zcmbVMO>7%Q6rS0&owbuRDM?72R$_?}uu#R6f`m|o5bA|XRJI}!s_1B0Z^|m0wV53w z+>=ufRiz59RN{g-TiB*bz{ zs<_Hj$sGqC6Ito)__7RYVGyh4uW)=xf35H8TY6XDPH)(HPv6l$q-_}9g8r_)lU~(3 z%O(BQKk?UXz;@DWwC88NgPU*bJv-gfchgVPE!g$#e>k-DZn~9Tg#*F;p8myt{?V?S zQ*@U8QGc&@U@0&I&vyDbGDLnphfuI$DL^%$c20pg%iC;~T{2$#jIkP^C)qpvL+Iks8%D$aig6_smsQv{UvbPV zhpNdjKqZoJa#=13qIHQkGlUa7?^!5v5;~bBL>Px4T{iPjKs}IxIS%XE?A~nUM)BV4 z0+_kQFG_M6(1#vCpF8W=F!QJfQ02hbka<{^74U*&>~M+c?ig|$8aV-`f0e{i9z%2r z4029p!H~KGpIB*^W~N6SF}|gk{Mjvkpz+pJuXFP9xn@CMrTBpGU`#jS)pdg z1XfWwqAc{JPQcDlQ7jCfGIaFe3_v0@l%#dNrLBb_k^e7=dbBEeAM)!{>+pR z>!D0k6vjbZhv_jPYIR=-IfuSaqFF-o9GGklen0q{LSJ}F$?$`w3KH0JeB^)hgD4UL z-Z|wL>hNYSz3|_bXb?+Y2J_$=Jmv!`|=b mWCcz@XWPB_`~S?@UX*Xh(}Qy`pZ879dDocX0K8#aNS}B ztG~q#RpY10e2YCkJ|#anKK_;{P*aeri>Iq!NPI|SfNMNNtvI?cRPRcL&mdpkiqsD+ zPAw|dFDptdDa|X+uGDwQPcF?(%_}L^k4(%GGu{==gMvf2)lkMKNtlit)&dv%2 z3N@Ng>WWNlbnxbf1_o%O&tNzXD*ulxJZ&9ns9WES0w+ z51m!U#d3vK3dY-0G(~i&g7n;bQZl)o*@gyVDb26bPrk(ugp~SGb%hpch!*uM1g5h5 z2Ub8Ks7oc+XjuJapV+2l%ITsIDgh3(+WZWXvVbO}M0TnxS*b7AT%uqDM>Za~sYr`{jP492>;q-Q47M0>3a zug-i3)TVbmHB(z+yE=BGnmiasm#neA?J2vCRs95OwL1ap(&d(j*49^&d35D(b+f5% zR?j_$n5D%3I%7`lAm&_E>2KLPKdla2!l5pO{|5H;BdBK#V6t+o84_u$<$8M!>e?;Jg<)b)kx<9dFWb z#DuJX17phK9$3fQA|%^$j}hV#wh2#pq+w8OUGyEpH7H2#6qpiN&J^LtoMpwOCj7dv z5}!Cq%Klbjpp|$%A|k(Uv=WDc0(j}|?JbLsov5CK{07yJh($v;n3<~{^~|tgxiqMr zHr%>(u{=%;liI+n9<_bPO9s5Z%JUNl2&r%@{v6vUQkEnU(m+Gv1|kL6=c}$`>S5D! z14=@ZLi9s%{i>|jG7oVCw*f4mU)oS-*R4I@cD%SKf7jXd`IQ@2?y5bDS8iT~VQKSn zXU~cn|J?`v)s#w+#UMrRfksR{;7%gJT6Q2_+T3c_LZxg#K(7hwM9--zXZ~eX*8i`{ z&!H-3lDfCfs+`*WS5;Y*R>E(WC^&@I3&LMOgg+$63movr58<70jC2BoLOiTbOVbWNK1?GmsX{STDvU0 z`IoZvk8L;bWvpG8=5Ng3RrfB=-@FFHQqOYd-W4_eyAS+pDU~9;6vZ0%KqICea3_&q zEjth|LA_hGYoSs$AfQL~z-sTn(^%Frj|-EIVa}AHmOrcmn{zIlx2YvKUq_rgvFe<* z`{AX^V&Fep-DU$V$c;GghY#=U^cGigPpCXWem z$k`4Y1zd?*Jv<32#JWIWGgu*IG1v^jBjSn-z*1SePmCFA&xDN%?2>rZL=kBqjb;>= pLVYVr{Sk5m1U&qJ-=9aaBuPIY^eOtJ{d=_Qw_KOh*F*q>>7SY}wv7M) diff --git a/tests/__pycache__/test_burger.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/test_burger.cpython-314-pytest-9.0.2.pyc deleted file mode 100644 index da38caf1b0340200168f55fd1039c46f0a134360..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12330 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 Q3uZi?k^68g+hdO8UyVfv&j0`b diff --git a/tests/__pycache__/test_database.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/test_database.cpython-314-pytest-9.0.2.pyc deleted file mode 100644 index 1c8f9815b475293ea1e133cce5c5ce399eb06d09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6278 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