From 5e37bb9bcade99dd81d8876b2601ea58557614d1 Mon Sep 17 00:00:00 2001 From: edsomft Date: Fri, 22 May 2026 21:09:44 -0300 Subject: [PATCH 1/5] Edsom 22/05/2026 --- .../src/__pycache__/__init__.cpython-313.pyc | Bin 0 -> 159 bytes Guia1/src/__pycache__/main.cpython-313.pyc | Bin 0 -> 1376 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 166 bytes .../__pycache__/settings.cpython-313.pyc | Bin 0 -> 765 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 166 bytes .../models/__pycache__/record.cpython-313.pyc | Bin 0 -> 1460 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 172 bytes .../abstract_repository.cpython-313.pyc | Bin 0 -> 823 bytes .../record_repository.cpython-313.pyc | Bin 0 -> 2664 bytes Guia1/src/repositories/record_repository.py | 22 ++++++----- .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 168 bytes .../record_service.cpython-313.pyc | Bin 0 -> 1309 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 165 bytes .../__pycache__/file_loader.cpython-313.pyc | Bin 0 -> 1204 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 161 bytes .../__pycache__/test_runner.cpython-313.pyc | Bin 0 -> 5309 bytes .../src/__pycache__/__init__.cpython-313.pyc | Bin 0 -> 279 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 363 bytes .../__pycache__/desenvolvedor.cpython-313.pyc | Bin 0 -> 2047 bytes .../__pycache__/estagiario.cpython-313.pyc | Bin 0 -> 1681 bytes .../__pycache__/funcionario.cpython-313.pyc | Bin 0 -> 3494 bytes .../__pycache__/gerente.cpython-313.pyc | Bin 0 -> 1926 bytes Guia2/src/folha_pagamento/desenvolvedor.py | 36 +++++++++++++++++- Guia2/src/folha_pagamento/estagiario.py | 25 +++++++++++- Guia2/src/folha_pagamento/gerente.py | 31 ++++++++++++++- .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 161 bytes .../__pycache__/integrity.cpython-313.pyc | Bin 0 -> 1507 bytes ...desenvolvedor.cpython-313-pytest-9.0.3.pyc | Bin 0 -> 6025 bytes ...st_estagiario.cpython-313-pytest-9.0.3.pyc | Bin 0 -> 5908 bytes .../test_gerente.cpython-313-pytest-9.0.3.pyc | Bin 0 -> 6010 bytes Guia2/tests/integrity.py | 3 ++ 31 files changed, 102 insertions(+), 15 deletions(-) create mode 100644 Guia1/src/__pycache__/__init__.cpython-313.pyc create mode 100644 Guia1/src/__pycache__/main.cpython-313.pyc create mode 100644 Guia1/src/config/__pycache__/__init__.cpython-313.pyc create mode 100644 Guia1/src/config/__pycache__/settings.cpython-313.pyc create mode 100644 Guia1/src/models/__pycache__/__init__.cpython-313.pyc create mode 100644 Guia1/src/models/__pycache__/record.cpython-313.pyc create mode 100644 Guia1/src/repositories/__pycache__/__init__.cpython-313.pyc create mode 100644 Guia1/src/repositories/__pycache__/abstract_repository.cpython-313.pyc create mode 100644 Guia1/src/repositories/__pycache__/record_repository.cpython-313.pyc create mode 100644 Guia1/src/services/__pycache__/__init__.cpython-313.pyc create mode 100644 Guia1/src/services/__pycache__/record_service.cpython-313.pyc create mode 100644 Guia1/src/utils/__pycache__/__init__.cpython-313.pyc create mode 100644 Guia1/src/utils/__pycache__/file_loader.cpython-313.pyc create mode 100644 Guia1/tests/__pycache__/__init__.cpython-313.pyc create mode 100644 Guia1/tests/__pycache__/test_runner.cpython-313.pyc create mode 100644 Guia2/src/__pycache__/__init__.cpython-313.pyc create mode 100644 Guia2/src/folha_pagamento/__pycache__/__init__.cpython-313.pyc create mode 100644 Guia2/src/folha_pagamento/__pycache__/desenvolvedor.cpython-313.pyc create mode 100644 Guia2/src/folha_pagamento/__pycache__/estagiario.cpython-313.pyc create mode 100644 Guia2/src/folha_pagamento/__pycache__/funcionario.cpython-313.pyc create mode 100644 Guia2/src/folha_pagamento/__pycache__/gerente.cpython-313.pyc create mode 100644 Guia2/tests/__pycache__/__init__.cpython-313.pyc create mode 100644 Guia2/tests/__pycache__/integrity.cpython-313.pyc create mode 100644 Guia2/tests/__pycache__/test_desenvolvedor.cpython-313-pytest-9.0.3.pyc create mode 100644 Guia2/tests/__pycache__/test_estagiario.cpython-313-pytest-9.0.3.pyc create mode 100644 Guia2/tests/__pycache__/test_gerente.cpython-313-pytest-9.0.3.pyc diff --git a/Guia1/src/__pycache__/__init__.cpython-313.pyc b/Guia1/src/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b41715e770961658f0e22f23f20b070f86f8a0c0 GIT binary patch literal 159 zcmey&%ge<81dA?nW`XF(AOZ#$p^VQgK*m&tbOudEzm*I{OhDdekkl!J!Z0TBWGq&2oVYx3DP^q8HwCVx>n8jO3YlGru=)=FRwx zlgSuR`g#z3^j8SrH?|0fu6-Kcrs6YDLFMklJ&te+(?j<|_Ygr;M`<9uCaCujU~HC(=8I6{z{0WkDlg zT%#4CD>;X%CfYGZ?1`5-DtIR;?Jey zMav)7amO`n%M(ni({;VDgAG!Dm<@XoXEL^4BtUb-9$)kfCTu18=`w@0+y<^+DWk0sH_xAR*?XGFOsX3&swGGqCbw2WV zrjSJ%krm+lNZBC_Q<*P!&gI;xoExNW9B%*4M^9pFXMA=P3JY^TOUvg{_EgFaq*r^9 zCkxkl`C($Azw*h>p9rMoiv$R7s z5e{K`~CM88G=s5zS*R} z$&=#`g@3s$nq{=Hu73w(ni3F+GEcnKwj13RzD?K!vd6_)rHtmzaZh3WDXcx?U*P1? Y+rTG!2LrVH3om|rXM})HlVuA07uVq`o&W#< literal 0 HcmV?d00001 diff --git a/Guia1/src/config/__pycache__/__init__.cpython-313.pyc b/Guia1/src/config/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d0b4b84a27f0e8b2e9ed8fb4d35391bb7a6095ac GIT binary patch literal 166 zcmey&%ge<81dA?nW`XF(AOZ#$p^VQgK*m&tbOudEzm*I{OhDdekkl<#XRDad;?$zz z7}u2I{M;Cq{N&Qy)Vz}7n1Z7GtkjbH_=5cWm;itO828f5M8lZkqU4z5{JgZx^qBbg p%)HE!_;|g7%3B;Zx%nxjIjMFKEC9OFDvJOB literal 0 HcmV?d00001 diff --git a/Guia1/src/config/__pycache__/settings.cpython-313.pyc b/Guia1/src/config/__pycache__/settings.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f27647336a1368335500e582559c0792255dc6e7 GIT binary patch literal 765 zcmcIiF>ljA6h1o!JE^0TLJ?vCv1KV@=z^e9Ab|!@i(-%%PC6Oe362t9cz3P=2^k3q zsZ-UVYC9FN&`e$VA6}|sWT6`(11ooSA_0Pt8@~I#``){E@9rkmY6Z#hAuIPk%K3{D zvtdlhK(ldqEOAdEnB5a^Bu zC2Vx^%D;vq)T#cimHID{=CW2)`f~>BAN9`u+RJD55(Lb@R^J_w^A zqSDqW6UNBp&xGlRprX`1-7wF!ZZ(`1X|_AU=+iI~Td`5@3NxgU&M4aIf(0;%v8BvNKuCL>}ap+#d3_R@7 zs2lb$o3^_&dI{>+Txhx}P4xQ8G@B(sBCfMRs*H zyVTBV_ui}?&oAtn+vcvlZSOsKzj63Fo4@(C4d-Ut)^)IFJU@M5Ey^`v-6(Ex1Fm!F@JCcy+`~(>Tr#S!s literal 0 HcmV?d00001 diff --git a/Guia1/src/models/__pycache__/__init__.cpython-313.pyc b/Guia1/src/models/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..678fa76b07eaab0e06588d4836f18a42436d4441 GIT binary patch literal 166 zcmey&%ge<81dA?nW`XF(AOZ#$p^VQgK*m&tbOudEzm*I{OhDdekkl<#XRDad;?$zz z7}u2I{M;Cq{N&Qy)Vz}7n1Z7GtkjbH_=5cWm;itO828f5M8lZkqU4y|{FKz3;+XjO o%)HE!_;|g7%3B;ZK*7?SRJ$Tpps65Ri$RQ!%#4hTMa)1J0KIuCnE(I) literal 0 HcmV?d00001 diff --git a/Guia1/src/models/__pycache__/record.cpython-313.pyc b/Guia1/src/models/__pycache__/record.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..157ad2dc262a1ef9424dcd500f42a69a808c31c8 GIT binary patch literal 1460 zcmbtTJ#5oZ5I);+;-pCfluB(VB7%xG2q6%#Aj$%WP6c6pGFUu9>{gDFINWn2h=jz1 zs8qxhsZ1cIW@2S56Kf=v$`gW#Ef5eZceWdq(v6dRzkct#yLUIt%at!%mZJ?65Otx&Sz4W-z-lR>}s+n@-h3`y1sBK^j9t zxOR|eRvJ!_s@OI#zr1I%{TqeK@^pvHZ7HE96 zF2cJF5noq(rZ{(ylT7QG<|8c(5pGV zCt99o-MD_;y4H3pXDo?TtKr#BU0P8=r&^B#LkPF&`a%TxsN_@I4$e~UC-xM!CT7-* zt;y-N%+}PA7r7xhp*pIF4A#Ti3#4@6Hryn+n`Qyioz+g?nEr3< z++NsRWiTFN$1l&#*a81!^-15D`4^s#hE2aiN|*L$@3xPFsZwM#bo6sf6wxTc1GS4N zk~o{1g_6G1$wbM`yY@oII9cTWEX;MXb0>>&x@4(yCFF(Q-C7#S#mc-XGg<49hJWf!GicbiVrqp;>S{XmmG;y$`2FlcL94*HLA zlCK^u9L{ibQV8i+e77npzK`yMw(m$GdJyImjxX|Cgp5a8-Xr!52CAkP-y9nNi48Lp z@6Y~ZYmkBD_;*#&r-mA71J(w~*jE_&3M1d)k?-)Yq@tIV2%1rsXs1H-V#5OegO0E$RCW~BbfjI literal 0 HcmV?d00001 diff --git a/Guia1/src/repositories/__pycache__/__init__.cpython-313.pyc b/Guia1/src/repositories/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1d2292177e73202b797a78dcdfd5537705e0e493 GIT binary patch literal 172 zcmey&%ge<81dA?nW`XF(AOZ#$p^VQgK*m&tbOudEzm*I{OhDdekkl=2XRDad;?$zz z7}u2I{M;Cq{N&Qy)Vz}7n1Z7GtkjbH_=5cWm;itO828f5M8lZkqU4yO)Pnrt%#!?~ v%+%tT`1s7c%#!$cy@JYH95%W6DWy57c15f}vq5$jgBTx~85tRin1L(+0jMoQ literal 0 HcmV?d00001 diff --git a/Guia1/src/repositories/__pycache__/abstract_repository.cpython-313.pyc b/Guia1/src/repositories/__pycache__/abstract_repository.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bc6646b6ec3b2d42cd0c6a663851d989724d90cb GIT binary patch literal 823 zcmZuuJ#Q015Z%46oP$jO2MGd&1=Udmp^yeeNFgAkAUTK=R4c8{=Z$mLo!6ON7w)L| z2bNOP<*(4vZ9^ogbVdg~JHER}C~WcO&Ayp8`%!i}>%^|F-&^BvHvYtk31r=vqfT;(OtKy1$X2{{v{@nW8D2$2j*rnP#Tg{7eb%NVOkYd zSa*?f&*lrl2+){-6H{=Rhu*t&HTX7nS@7J6y)82KuJ+erAHq=(t(iOf^_&l4DpjT> z%rDVDrL_kJel= z7FzPDlp|NF6DW~DdSdSXXL=>AJT|cT76Q8U zqm~IdpCpCg+^ln6$l)wU-sb#tmgKdv!TE6pO6S=`OeE)kFAN2D{_TadbJqPsY*=~!1qBYkq5uE@ literal 0 HcmV?d00001 diff --git a/Guia1/src/repositories/__pycache__/record_repository.cpython-313.pyc b/Guia1/src/repositories/__pycache__/record_repository.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..87491ea8cf944242bf46effb3b111e335a338f6f GIT binary patch literal 2664 zcma)8U2GFa5T5(9oj~G?&%sF`#02wW8cbS3k@%-cXmLmgHjb!baXRcvICSxuy>lq4 zkdTlnS87!djR-<2@I;aN5Z-tM`qI87b&I2GkdXSsTWF{Xed_Gl7f4DaR`TBL?Ci|! z?0hp`sH>|59O{h~XMW}Z{-6tY2vuSsj>H5cA<6VXoFPn@(rh0a=LqM}Tpu47h~UtC zpC|4io-i~)J0yh`NP5!D4z8k$ct^ca-!r<1GIrqLDbpfK#!9Gp!_+K;oJX!Fp=Jz{ zMXL6YrmIH`C94u#)f94C7Ps(MQC6AR>SEzTBqksYgh>KnlMLaKY?|+4lUxg&;favs zTYz|yg2VGTJa5uVe51Z-jV)G;zINo92i4g%Bj|ygSFF<+*A6vDX?mlDwKz?{2~o#y zWo&~K=#0A>g}cnaUDmFZ7Zuq)nK&0TqpZ!Fsy;&K6PQ$IIBXy9-jz<7DlyZ&S<@Ix z_ZXSNn3}W9bevu4%@|dA z?HG>)X4dktqpC5-q!58K(-=i8wFJAl1h8;mef?|{u}S)0!(W2z0dSIK6H zYMO+;Nns6633XIMxEWzBH~!;oUCSahnlp%kM6{OBVA(z$(I#iiaY7Tp=Cqt;3wTJ& z+qFZAUQl}pF$kgewmnKdujaCZKCUg~3Cc!!BGMI~RV>Bkh;fdr!nH|7!Z-*GPSuE_ z>u*U$$3AY+c$iZ-U4%J*bJ^eii@*I=*PZ>h_m}+Ji~R3WsMtNvdh7PgH8xF3lgF<& zUp;x5ot0Ky9>21?EJbFdNJ-lGeS1mjnBt}m->WZo_RMtllsXUn)L!a5GCi1>P7Rd? zhvr%$H#(++8=nT7uJvE(F9$cz1ULV%YKpz@x!3nVdhqGPwWa9bqB4RSI_3EU>1|Qe}uyJZ4gZH zt~^5Qd=+9`1fuM~k~&7iyB&WEJvi-S*CW~{5Q`Y1MgXJXIJX=5dznR}7;?labDX98 zahMQLeW;>-6n1hW454p-7oxn)#yV|pUeT3tf;d1ZA})(=O$bUXK} z)b*(Mm1FEuYnX}ph||mj-8iQb#B*NPEC<5`-3QW)6FRBugtoJ&*TFD}P_968*R;J@ zNea4U+6*CE=#lquGHI=*s16@EP`Qt%;n@X$xYy*fSScJ$dlv z;p>M>fsN%r$4sE36o?hO=lp@+0`Z5vr9iywkC*)MSuu32{!0Di*~j9#=QR*$o38~i zRIDdK^n=jM8^HFD{gKv9?2omwJZ5AI*!5+5r7WK&;kWj!m6MYxwEx&+yo)uQ#TK@v@ z^QUj6&^o`SMhH!A{~PdAIZKZXM16Jyn|^Gu!DG{pDb+txZ?t_v)7x&KqIe-yH}M4h zXHcovjg()oG-NyfOlaLziPHp}WU08g)NR|hrxKcdWIyVr70aX04n_Y0{5r1x3){Xr8vpK<2&q%FJ(O-umER9}vB5^)7s106(fr-(6|#J^9S~WDl>C3c@Z3 z5_EwX?7YtvC~KE3RMs9_Xu2(r1NPFDTA{Z@*>Mt7c@W1g!+ugoovefd+UCrQRGX+< zdh$~3-(39`v#rB-6I+BY&i2pF=&CdN*_l{%CR)zqiam)Mpt4edwf|4@3E7vR!Y1g{ z6zl+!${XS52IzqC*qJ-zM}^<*LiUW#`~{=-SnZGvM_G@03;o-gad6EU1`Epc=Yn|GPZWRUx)Us>_62SI=wP*dP8pytvZL6)0T5& z#XgdCmxidPIzvy1cCH@O1npcO=e4BTq({Wn0O$9cLEN@DoXSV&dO~KCK;a<$ z0f#ipYTe1XOoKEEd5{w1*=8yv=kFm)m}AoGi<;>n$WdZXVa;NNQ_BZ`10BDLtZ;a( zXcmsXKK=*j$YXWHjBBbfdOlO#7a0jjf?l`{uQYqNSqeNrQU7u)`)m&G93CWt-W929 UUo#nF-{AZotDhbH1;nzLzjVwa^8f$< literal 0 HcmV?d00001 diff --git a/Guia1/src/utils/__pycache__/__init__.cpython-313.pyc b/Guia1/src/utils/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..84bd6ee2b0a0090c8c6f321ecba7b3c948f794ad GIT binary patch literal 165 zcmey&%ge<81dA?nW`XF(AOZ#$p^VQgK*m&tbOudEzm*I{OhDdekkl;~XRDad;?$zz z7}u2I{M;Cq{N&Qy)Vz}7n1Z7GtkjbH_=5cWm;itO828f5M8lZkqU4y;lFXdqnE3e2 oyv&mLc)fzkTO2mI`6;D2sdh!IKtn;67K0ccnHd=wi`JHC2v-{rhTh@`sRJ_Z}!ck zQ&SZ{`R>d-_=5oaBNv5eIY=!8M__|Z-Ukk|a0P7TGT7>}GWOtPpER_ma?D518BW`BRxkm|Zl` zfg9iRu+s}EA(DJrL+cSNLi>VkVaGOBcu!RzB<;LgfV;)cE|LK5sYRCa$WUp^teLcw z!Wt>~1@I|$ZNXbmhpX^*?%BcUu42IwSorM2y1E2iQipaqcYqSO(|}xiqOjOn3toep z7d3p+&gLO`^j-i6)&F?w?WrQNr51htKi zq6ea~6?pMoUk*xWy&#H3RgP|t#XBqsJ2C?o=JrF+AH)H}peW`IjT=~4XmX~);NxiG zM{+V2irC#;by|_nBWJr4vA(m#yrl1kapVj*JMd#h2aGu%-nrxKCV_jyiMZz^anOsL z?3nbjgL8fGu_#MOWutG%w#FywdSTSDUUZ1+GdR~uW^+`Xc@%u>9q;~GUHerV%`JSh z`1Rrs+S%N-N5<&V{NtUkK7Fo3ZT+w68vb5BGvM`l3dGzdquTs%@!b>i_>lP zIJq^No|RlPqi+7Pc|v~PIbInqtew@?hm-3s&s8K}L^rVf=Mx(yd|6*ne=-rAR5py# zsiGo0H8O41ZyW0AJC|+~^*5p;{t@;XWl^Rybo)M~qCzQ7Ho+T0#U!Qo6StQ$)0B1t z9>u*N^g|};D0bt(>-+IN*5OsG&fi2OW+)vq)Qw{ve3Zm~L@A#|F2xu4j8t+$nUa?- znn(2oJkhJ?N?C6{-b?}iQWcC^Dh+(8@NOu4vcOr&F(p%q^4hrdCbw{j*9f8-D*QZz Q{0)`o+5~C-3#hV~S5~tXLI3~& literal 0 HcmV?d00001 diff --git a/Guia1/tests/__pycache__/__init__.cpython-313.pyc b/Guia1/tests/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6400053e4a486e2019bf1a2005ec22f7c0853621 GIT binary patch literal 161 zcmey&%ge<81dA?nW`XF(AOZ#$p^VQgK*m&tbOudEzm*I{OhDdekkl;)XRDad;?$zz z7}u2I{M;Cq{N&Qy)Vz}7n1Z7GtkjbH_=5cWm;itO828f5M8lYp)MB7qe0*kJW=VX! jUP0w84x8Nkl+v73yCPPgfglTuL5z>gjEsy$%s>_Z$5JSt literal 0 HcmV?d00001 diff --git a/Guia1/tests/__pycache__/test_runner.cpython-313.pyc b/Guia1/tests/__pycache__/test_runner.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0ce6ea161e7d4f9fe69d1babeac6d4d056f97c8a GIT binary patch literal 5309 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 literal 0 HcmV?d00001 diff --git a/Guia2/src/folha_pagamento/__pycache__/__init__.cpython-313.pyc b/Guia2/src/folha_pagamento/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b23a162ccf0409c9b8279cb07562c3eea9c232db GIT binary patch literal 363 zcmYjMO-sW-5Z%pZX^rCDLlF<=;z2x#c(JvRKr0k)3rlFWF(t`_*`%O9qu`J5F9qtw zlQ*GwcT(%e9A@8pJMRs%@w_gh`g}TAtmu7f$xj(Ou(=@c%%*J0Ll$u4{T3Uc5twLh zu^C!{jrJB>p%b|1_E}>4&O0Zo&zs(DUCdG_B20m3cc`l}1W3*X;C_9pN6SU#3ZBzyJUM literal 0 HcmV?d00001 diff --git a/Guia2/src/folha_pagamento/__pycache__/desenvolvedor.cpython-313.pyc b/Guia2/src/folha_pagamento/__pycache__/desenvolvedor.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a39269ba3ce1b9ece8d814c6f558f50409897c69 GIT binary patch literal 2047 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 H*|Yx(zlpv} literal 0 HcmV?d00001 diff --git a/Guia2/src/folha_pagamento/__pycache__/gerente.cpython-313.pyc b/Guia2/src/folha_pagamento/__pycache__/gerente.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6c90997180fba59921ed9b20242d9cc633dabe94 GIT binary patch literal 1926 zcmah~L2ukt5Pr7TyPIUUPIuEJY(i^FO6vw9L0ch((5(b*Q4wj0yQm_DC&%k74&L?V zJsXLhasd$uR0$C&z$Kh$|3SEL;ndr%7O9a{qDowdxI|4WdSu?Soumy3a~RKiGjHC^ zeDlUz`FuA5@)ni3ODTl@WQ&C4SlD_Age9aSU3eE=5s09oL3AAHVhQPzA)J#UJ0jLn zn!Ldlnh^F}3L2KHHor?9<9)zZo%pv1*LZq;Tik#S(a92gv#c@c%eA-^xvA=P_jVlAUU2~zj z5!H~En!MSi+jaFb)Aa~p6}dUQy;i*-Qm9VD0=4aXnjFeBXxb#qV(c^=ALFq51Je!c zi-dRtlwd@{?s>n8?fJlI+EAVpwcXh;)$r zeO>9hUl?AV?i93EPFq)=TmJC&t3P7cYd!x)r!djVO{^U$ecioQ8u>=q0vE`N5o0o9 zwdI|#4#E3_VZ4)iXK zGw=JyCP$~CtJ0H%6|(lj_l$liZ?LCbJHzR>a=d-Ftce_O(hJ%<0?EUNvXZH!06aWo znJ#M-f@i!&K*Rn7tf%)OAVeKt3uvuJxm8{)FPoj7V{65Md&QAF(;(`)&| zx9}ofp6}$KIWfLt=eLWat=wp0M>_czc9gM`O$i-3PWs@s{{~kD&Hms< z1=7UH+Un6S{(gV;*Rm$??8yL}+nsx1JIAU`Ef0E^hNV6EZ|nH+BKUwBD8+k<+E&z+ zvu)*MD|_;QXx}+7S`IhhQ4{xR)~F$vMXDw<(EGuk(}G9K;dlOmes>;$9MZo{F$eP-Ex 5 and self.qtd_equipe <= 10: + return self.salario_base * 0.15 + elif self.qtd_equipe > 10: + return self.salario_base * 0.2 + + def calcular_descontos(self): + return self.salario_base * 0.12 + + def calcular_adicionais(self): + + if self.qtd_equipe > 10: + return 2000 + elif self.qtd_equipe > 5: + return 1000 + else: + return 500 diff --git a/Guia2/tests/__pycache__/__init__.cpython-313.pyc b/Guia2/tests/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..acdf7582377e6b15d90848db4ca4ec2f895d7f10 GIT binary patch literal 161 zcmey&%ge<81YfK8vq1D?5CH>>P{wB#AY&>+I)f&o-%5reCLr%KNa~h@vsFxJacWU< zjB849er}9QesXDUYF{h7g2{BN0-hs6iB>JY;JSl1EsRcw#%UXWTpE zKB5X`!6L9Bs;CGm64@Y?UDil!5I>-nQ=D8_Aj*cFi-RIy!x`JtC=nZu<$KSa^ZM>N z-%KkU?g13>lgN6619DT8p^dgEXX>d3cv0jOyv^JWJTLkmiPAogtjgr}^pk z0Sp;H=VFlT!~zj?F$TJjWI7L2$g_DiF8=Nv;|%4O4Y#nk%68qoO~SudyOqMH_aM`a z1jzV^Km$KtO7KEXOPbM`KDf;KKK<|>>#(nY!}i0qK>&-@*pzrW#yh3i>6-vKth#Ux zKx3ELg&}|ts2FKI&1P|#pdYJoehn2e?M`}@RIhJ8*-tuR@fwFX?zVC8smO_suVtR` zHN@HP>nHok?fvR0#Cul!3HUyU5bxd*jZJgOZqHe;1WiccP0vc2_hYXxmUyXaHeSNs z{3mWr^!-)%Um3lQV^(Ap{(M|2EPU4KK2}rCVuPm)8^h^zCbR|@U;=!cIpob6T1Ihx znCn}BE8HloF>zs$GB0lQ7A@DzlcIZjvT~cUWTgm5-FP1r9h|WoJo1RVp^0Z zrjet;f_W=f%$trI4`52eaSbY&w_MY544VcFa=lu-VNE)Q-^EtJAvXn8eZF$~ksfpR-r1Wz%vUy+Z7D)3vh|+t!ztmh`u)MI)iRSl!W2 zbwJLW#30#rtu`n!f(5*H(fJ3LP53!-?ns0Ybyv9mMnjpXDH9K_?>)QM^WcMhWu_(Y z!Jc20neD(qj$LLuKZPXKit!EN)&ql0oR%y7bY~Z_%O8C+|+y zqp{8T$NkDy;1{XCAr050;V&=m+-!^{YNLt0WPSAYx-#8RW^2l9UAek1%^`@s==S)| zYx`k!clJOT`D*Hmsok;rGY_NV+s{9WjvvTMLypzt*lu!PjyE|NdG3@;BRYP}LEnX1 zSbY+LfstkudIuXJwH8wAq1Zz{_SYYA#Cxow&yQjCZ^wIWz8;v1O5cgNe4m(Q=LUrz z27BgS2vRAVEgMBEn~k%SncU!zOgPp+1;1)Ykv54)2;7&-6@X`dxTLuH^G_1VavWNXD{Ukzq9jU+TSay(!+`?ZDHm)7NC>ea*9u*V z%g&OnrNDrU7HBR7dNI)Slw0FV;r<-bb1yv=WF=e10!3Z)l$&Cumz?_E?9S}UVk+77 zpX+ z6)#pT+ZBgmxO-$5o4xsq=azD=P2HtSMb}wfnsW;ERl8Dim#WmcVb`2|)p3^Izjkfu za=m1YE!Aun+OW(QqhlVau6Z4MYG?<<$C0_OK(Rr-(nx#nFJJmJ_UX;fZhijBrhcKJ zUZ6U(t-lPDFFCYSw2Jm{)usg)K;0@EiXnU2jXJii{OS`t?#&u9Z3CY`|0C$0=DV+q zv*S;*1)Ly1#PwT;TYHx*beDMxSx9Ar+byaF*1bi&BY9{n=c!$#1!uKtQQK>W=KONKRIZgOuBVk9uyDPey!)Y3 zFBh3XzTjhMkTD85lylY*zF@o25fsL)?R4!5KQ14j&xeW zgWo2$7((@h2WsZy8Bx~^HE4i1eoITwEsP)ajA)|zp_*aTEr>S>%mL@m-ZEQ^l0ZMG zc=~XTgdD2KrsRya;-_;lry@h0Y%aEsk8c8l1Xr_yFJVu>N15?aSvV8nqq-{h!7b?j|M8lLcLp$5YsuUr{Juu6 zT8mWgKQLDU?#l4j;I9CGFEReEe02Obm;bT;hgpg}0Eh29Cx;=;DL9py6JhZnhMEFw zzrhHb25$RwM=4-AV0R=+*yL@4G0o8EOE4gcsVc=>3E@0NPoSh$*V3cwT@iSv$AR8h zJ#Hkuqk_?5O!Op%Ifcb*SfsExjYU5e-@@W`EY3i|sXBla`1*|Uax$vCNq z%$V=YPO*dZR%%1xPKgq z?dfcDI*ZjHq?wS;HudZ_G_l_%dYl!iFFa7Q$kM>18EVh~@%MW|l>5hpgD-5U+0Q#f z9R%ST2AK{=AWT5`tD5z5+mq!|Wu&t8O94M_5-VgRAynyu<39mCAV%?d` z$qd>#d>ZfwlG+fAt)VUDVl1hBCjxEde-Kbg1S+keEdYCC#ls~QmX|?ZG7?YfQ|Fl59v9%w1ZWX50kOhu~7 z@57-!7YHxlP25Zbo9LL?W+rp7fH&GRY@#*J8Ga6U1Ib)<0+KlWD*O23zcL>~*2MAi zgXhE#&&SH8AJt1mr}gHV?J=K*j?T8C6j9;z2^Cz9S6{#!e~WsW zA?K++^XwyE9yaUn$&X$HAB33uTPQZjqtw9072K(w`Zk{X9(SDyHmd2So^GhK4L!Z7 zkArakR#TtdR)gOrwu}qa7apjy$e_Ta8EVh~ar~B+o?93{>KV~Q^+R=*5y&{=CHRL0 zmd<*;I6L?RIpU|IkW-CN`^U6YgU<@0%8Lhe>?U}c@8T&gEl_-qdT~fVYjtX~OYf;kavkH wD_wNwX$Pez?XqM_`y8g85bYc|XyDK(OP8eGE)aKoF&UH2OKiCR2IJRB^8f$< literal 0 HcmV?d00001 diff --git a/Guia2/tests/__pycache__/test_estagiario.cpython-313-pytest-9.0.3.pyc b/Guia2/tests/__pycache__/test_estagiario.cpython-313-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a3a5d37da6137d1019d088d26ece7b6bff26d563 GIT binary patch literal 5908 zcmeHL-EZ606~C9FC|R`QkF=fRbgAk(f$1)a{Gp^xt<=s(qorQbiVzkoMg>Mxg`GH0cjggdRvzRWA5vJ;4ko^!p76|mz>~|mU)0I<1 zkGxA$lIzo>ftrJQA5E9D4f0Qg^uO@Y%E#f4f4cee``Na-(3BUL3ci9rB{2Hn)W{)kD{h&q*mSR+n!?MNF3eDTU>>opHSZ9mS(vSLyGLMQa>pnDXW?MrXXxm38Pp zXI-N(rp`=yM^kZ)Cq_yKjtq&&|I;;*{qctr%1QVKR3o~gM{i zxQ9_uOSC2cP?}aLoD!T0oS`(WT`CbRdbM=_*suQa?)^W!xkVpJ>9j`IZy%qmt<7n6 z>_bn9r{k#2h%QjPuB2us3Pz>Ss2D7N)2cS?*zHLzb~~O<$0sr841`Yc>}iN~E28G* zzXtiX0m)@6f77td*lmqJs#}T^s;wna%%GSfqVx z7X$iG)@PN*WICcIbBI9*X3SqdZx>ovk}7L;$ZmDJA-@y_}$9iDt}gM6VrzoSmH)QP5?X{r-#^#mxJXzfgATGJWq24#vXQ<;{U*#Q^-wK3y_ zZ@S6@IrE#deqXC&fdlG4o(WYpy>35kTh81Y^DQVMEG#nJ8G#=H%BOPXTTK5J)8S9u zef*c+bN@q3|M0m#UHqNs~=Nr)Z7_yEpLw$#a{ywp@D z+v*f3n?(>isijtG3A;f_a3!(SQkQnX#eZ$gnDR|mc_1$#&UqoNjs*^=|9B=;*(~}A zuCgsJ-TRT>2StR1MN*v+_#vQtDlc)ITaOnERxAIz*`4iR;FDunNhSf zMU!@)gC*Gg9SG3z|G{Ql9dF6*L#{J?Z7|$+Kn$+)?t8!sK}TB1&VVQ&FBXTtEqIUf z!2%%nFX z_Sx$bBRiP#?76?sw#9uo5cl`9ko)W5gv|M>!r80hvDe7gV6PFuT1D%z*A8P9pq70~ zP!o?uIe=a=FN^lU^#bRL{7nIYL`hf&}Igk1FW!$ScU3S5@KW(iSkpzAqw4*MV{ z3YYDJ0-P4*V`Asz&M{xqh6bP3jy5#Rn(0JXBg1ejf#a-&_!$Qqsz<~ph!Ola@ z^KjaK1hGN(Mo9eRw*2DfNC~x;sx{@srmD5oS5Y~&*isjFWbfBT*Q>tiDi7pE#6&No z)v>?yDvbwFX*NeWDqR#$ z!vRq#l#>CKTrvBFgaUTwZN`4lg66~WrR0``+ zy)PH`P)Ye3sH6xq60L_yu%E8Y!9F^6mA^8}e}`9z)9>}=6%TbOok6bf9 zn_OXULFhQ*5_@$4J%3bj2{Hj%KRLpbi9dO|1JG%s8FGMN*3n9NGzZm#48QW8c6#ezF zJIB71B)UlVLqrJ9 Pe;Cv~SB=Ru%?I*t4TdE5 literal 0 HcmV?d00001 diff --git a/Guia2/tests/__pycache__/test_gerente.cpython-313-pytest-9.0.3.pyc b/Guia2/tests/__pycache__/test_gerente.cpython-313-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4a6b47108fe3271cec8119f5dcc8ee756ddb26a6 GIT binary patch literal 6010 zcmdUzO>7&-6@X`dxTLuHcag|)?NEwkYa{Fb->GD$k)_l@?S^Zn0wk1Jk!yu1#bstm z)KXzUMq4z;UJRr?)@6GP)t|YpW4Ik14 z`S#7cd2fEW^UYiCH8sTvT>sfSzwDP;82-QnOGpGvSd%p&-F`F9G5% zSrXvJE?v+?UD9PeGVU$mS)wV|oM_ToF=@$gq{*r2Ro3+KXO|uE#!q&z9mQbx$sQV< zxi>E^r)-nj%U80twYEHGWy)(X1bewit@q86l`dM=^3SecUtTEZjFIJ%X@d=Adet54 zKylrPdOB@_nAnH?GKfv`twI`4{9*bd^W%5#-FPruQ^zavI90*6aq5FoHf?@T&K1oI zMU!Tr&$5wEuULh$ttpzggQNWVPk+Sgua`8DHb9xSfB>6EE?I2Na|>BaB)wnXuL7kXrd5zqBq@h$UEP}N_MbK@m69&L zMTm8?*K4>SWWjd{$IPx|jBCNY8=m=;G6p~BqCO^$dwuBA65BP{F4-8g=33C}>rj3oxc&CiPp(ypJPWMtDnIe&I8fc?_jl{WFBjJt4GikErNNj_Q?p1j)>_e^rqc-K^h!CGFXalhqvS1UVLKgZ`#r0i z&$6cJ)x5O=JHKG8nNCC6Hf{n}iqvU-gAFZb6|PWfQRhVZrbX9`Qrf&#%o_!x1QxA< zO_O%P!aJ=8F+vgWj*3HYr#T!hjD`#2Zo%zgGF+Ip5j+WgQQU^kX*OlXD&Qkcmy9)| z@Sf%IjE+DX#E|_L5SwJTophevl3#k<^2&DiL=`?Q6Ps^6R@=ALuBzHqkq0YkS518t zl#g#!)xmAq`_$0#s$X=Khw|WulYU(_D1iauxR$z}TNpp=87leJkK{oH=!}2Nz#MQ1 z*b%hFXbBXAii4Nc7VxMb>Vh>?kE7O`DH&O6B~y_@oE!ue`Fu_KoC$gYPKu0^(qd1D zlk$?!)TB?$uouq-d`1RTD?IK2AFncw~Uolic!L@{>(9^ZLR9%oHE zV--r49Wc2ULrns{Ut^>l27bGgN6lk8;CCR5+W2ja!A(;r9PEVt5XET_2L z4-aj$gdjdV3KYlcQ7!JY`>^)MM7uG}Srk1e&Y?Ju0*^_mp?D2N9|(@ueykV(5k}@j zxG?RK-oxxLg^f(yDi^84Bl}8Y^`P3$pvp&@zL~pa(HV$?6u18dVv~G{%?-yO=p*)W)^_o%@Dc_Y2}Tfh`@1~vropF!llFp<&1K+FgR_vI+AI-95bt~ok|)8J zpaOJEzIOfvSOy(80KM$iV{)=nfdm(lU(A>38zAZ@zrQ$?`~uqRB)`^ZfOcyxB{FcQ zcw*%xxB(pNgIh>NSc3cG5V)o9A*7@bSn7k@hwPCp1Dw5h9Q%g?{~cH=AN&gS$L@RW zOK=sI;3{5%8(lg+WTX6O;&(5>4ZzBIntV>4@@q)VdKHOKVj^0b7X&m*GU@Z!RZWo{~1Im zX+-3mtE%TJ@@z#tS5tdYxiDK*XSZeVQ$tg)Uv!m+@+`8=Yf=qLV1PibrLN}|>mck3 z{rN>-c_hys&J_Lk>MTPGyw#H6%~}@=P_7G@?hs%`Qvw6b9DlHn2^c9Q17PIE;SgXV z-$TGej>Lw)Nsnylqexd?_)Pu$l>ZLL0*vnkfPuGW?+rSl$Ml9&!~=}-41iHMSoqxo z3}kS{G05EF*LHBfa~o!5>puD@fqNykW1EPXSDa510d?j!l`U zOBqaho(>q?WgcL{FQf~Uqzm- zsC_lHACw0jRdsq>_C7VV^!r6uc_>dKU%V#Opacep<67!^ZejeeXQ<>?Ka!^zU9>hQ z#{WQI*{X9g?f&I3;AWeUF%3}jS2S0GzYqK>C+gL)g?AL!#gS~9p)xFj6NUV;RHi0d zZbx1-=r0`={Z<_u=UfxxR82kO1J7>NTMPXu3B4X<;s5{u literal 0 HcmV?d00001 diff --git a/Guia2/tests/integrity.py b/Guia2/tests/integrity.py index 6d3ebd9..0e2fbc5 100644 --- a/Guia2/tests/integrity.py +++ b/Guia2/tests/integrity.py @@ -1,3 +1,6 @@ + + + from pathlib import Path import hashlib From 3f59287c416ae511055407ba480f0bb8f1d4e618 Mon Sep 17 00:00:00 2001 From: edsomft Date: Fri, 22 May 2026 21:35:28 -0300 Subject: [PATCH 2/5] Primeiro commit edsom 22/05/2026 --- .../record_repository.cpython-313.pyc | Bin 2664 -> 2669 bytes Guia1/src/repositories/record_repository.py | 9 ++++++++- .../__pycache__/test_runner.cpython-313.pyc | Bin 5309 -> 5313 bytes Guia1/tests/test_runner.py | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Guia1/src/repositories/__pycache__/record_repository.cpython-313.pyc b/Guia1/src/repositories/__pycache__/record_repository.cpython-313.pyc index 87491ea8cf944242bf46effb3b111e335a338f6f..e158126a9db219d66b6e4760b2ab8fb933aa1084 100644 GIT binary patch delta 36 qcmaDM@>YcVGcPX}0}vQ~64=Py&d3-!c`~C4OMG5_+2(DGn>YZ*3kwzi delta 31 lcmaDW@~w>>llTl7N}enR$HOEq2#ib z^^W2bDtqfU=khOQW^~*vEUd<8>;hC>#0DZnK!iDnkOvVqAVLa6hy#gR95%W6DWy57 Lc0~b`b3_6GaRwr) delta 121 zcmX@8xmT0-GcPX}0}$+(%boROBkw6*)>|xD`H7n!@YXR3OD+((EUdahbVJHzO{*Qr zCq(wWHa^HWN5QtgTY JCl`nW0szRmAwd8D diff --git a/Guia1/tests/test_runner.py b/Guia1/tests/test_runner.py index f8004a8..005ea34 100644 --- a/Guia1/tests/test_runner.py +++ b/Guia1/tests/test_runner.py @@ -61,7 +61,7 @@ def test_search_multiple_terms(self): for r in results: text = (r.name + " " + r.address).lower() - if "joao" not in text or "rua" not in text or "a" not in text: + if "joão" not in text or "rua" not in text or "a" not in text: print("FALHA: Resultado incorreto na busca") return From 82bfb77e6ad9a969d8b0cdfbc1694c4773599051 Mon Sep 17 00:00:00 2001 From: edsomft Date: Thu, 28 May 2026 20:06:35 -0300 Subject: [PATCH 3/5] =?UTF-8?q?implementa=C3=A7=C3=A3o=20Guia3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../record_repository.cpython-313.pyc | Bin 2664 -> 2669 bytes Guia1/src/repositories/record_repository.py | 9 ++++++- .../__pycache__/test_runner.cpython-313.pyc | Bin 5309 -> 5313 bytes Guia1/tests/test_runner.py | 2 +- Guia3/src/alternativa.py | 8 +++++- Guia3/src/pergunta.py | 3 ++- Guia3/src/perguntadiscursiva.py | 13 +++++++++- Guia3/src/perguntamultiplaescolha.py | 23 ++++++++++++++++-- Guia3/src/questionario.py | 10 +++++++- Guia3/src/tentativaquestionario.py | 2 +- 10 files changed, 61 insertions(+), 9 deletions(-) diff --git a/Guia1/src/repositories/__pycache__/record_repository.cpython-313.pyc b/Guia1/src/repositories/__pycache__/record_repository.cpython-313.pyc index 87491ea8cf944242bf46effb3b111e335a338f6f..e158126a9db219d66b6e4760b2ab8fb933aa1084 100644 GIT binary patch delta 36 qcmaDM@>YcVGcPX}0}vQ~64=Py&d3-!c`~C4OMG5_+2(DGn>YZ*3kwzi delta 31 lcmaDW@~w>>llTl7N}enR$HOEq2#ib z^^W2bDtqfU=khOQW^~*vEUd<8>;hC>#0DZnK!iDnkOvVqAVLa6hy#gR95%W6DWy57 Lc0~b`b3_6GaRwr) delta 121 zcmX@8xmT0-GcPX}0}$+(%boROBkw6*)>|xD`H7n!@YXR3OD+((EUdahbVJHzO{*Qr zCq(wWHa^HWN5QtgTY JCl`nW0szRmAwd8D diff --git a/Guia1/tests/test_runner.py b/Guia1/tests/test_runner.py index f8004a8..005ea34 100644 --- a/Guia1/tests/test_runner.py +++ b/Guia1/tests/test_runner.py @@ -61,7 +61,7 @@ def test_search_multiple_terms(self): for r in results: text = (r.name + " " + r.address).lower() - if "joao" not in text or "rua" not in text or "a" not in text: + if "joão" not in text or "rua" not in text or "a" not in text: print("FALHA: Resultado incorreto na busca") return diff --git a/Guia3/src/alternativa.py b/Guia3/src/alternativa.py index 4dde61f..f2caa32 100644 --- a/Guia3/src/alternativa.py +++ b/Guia3/src/alternativa.py @@ -1,4 +1,10 @@ from typing import List, Tuple, Dict class Alternativa: - pass \ No newline at end of file + def __init__(self, texto, correta, explicacao = None): + self.texto = texto + self.correta = correta + self.explicacao = explicacao + + def get_correta(self): + return self.correta \ No newline at end of file diff --git a/Guia3/src/pergunta.py b/Guia3/src/pergunta.py index 5b3763d..4161784 100644 --- a/Guia3/src/pergunta.py +++ b/Guia3/src/pergunta.py @@ -1,4 +1,5 @@ from typing import List, Tuple, Dict +from abc import ABC -class Pergunta: +class Pergunta(): pass \ No newline at end of file diff --git a/Guia3/src/perguntadiscursiva.py b/Guia3/src/perguntadiscursiva.py index f4c26af..c743c9c 100644 --- a/Guia3/src/perguntadiscursiva.py +++ b/Guia3/src/perguntadiscursiva.py @@ -1,4 +1,15 @@ from typing import List, Tuple, Dict class PerguntaDiscursiva: - pass \ No newline at end of file + def __init__(self, texto, resposta_esperada = None): + self.texto = texto + self.resposta_esperada = resposta_esperada + + def validar_resposta(self, res): + if res == self.resposta_esperada: + return True + else: + return False + + def get_tipo(self): + return "discursiva" \ No newline at end of file diff --git a/Guia3/src/perguntamultiplaescolha.py b/Guia3/src/perguntamultiplaescolha.py index bcbe94d..64ed8de 100644 --- a/Guia3/src/perguntamultiplaescolha.py +++ b/Guia3/src/perguntamultiplaescolha.py @@ -1,4 +1,23 @@ from typing import List, Tuple, Dict -class PerguntaMultiplaEscolha: - pass \ No newline at end of file +class PerguntaMultiplaEscolha(): + def __init__(self, texto, alternativas, explicacao_geral = None): + self.texto = texto + self.alternativas = alternativas + self.explicacao_geral = explicacao_geral + + def validar_resposta(self, indice): + resposta = self.alternativas[indice] + return resposta.get_correta() + + def get_alternativa_correta(self): + for res in self.alternativas: + if res.get_correta() == True: + return res + + def get_tipo(self): + return "multipla_escolha" + + def get_explicacao(self): + return self.explicacao_geral + \ No newline at end of file diff --git a/Guia3/src/questionario.py b/Guia3/src/questionario.py index 7525582..90e4537 100644 --- a/Guia3/src/questionario.py +++ b/Guia3/src/questionario.py @@ -1,4 +1,12 @@ from typing import List, Tuple, Dict class Questionario: - pass + def __init__(self, titulo): + self.titulo = titulo + self.perguntas = [] + + def adicionar_pergunta(self, pergunta): + self.perguntas.append(pergunta) + + def criar_attempt(self, nome) + pass diff --git a/Guia3/src/tentativaquestionario.py b/Guia3/src/tentativaquestionario.py index 9947dd1..9529974 100644 --- a/Guia3/src/tentativaquestionario.py +++ b/Guia3/src/tentativaquestionario.py @@ -1,4 +1,4 @@ from typing import List, Tuple, Dict class TentativaQuestionario: - pass \ No newline at end of file + \ No newline at end of file From 2f20b58b2338a2585852a9261bee9d6a667347d3 Mon Sep 17 00:00:00 2001 From: edsomft Date: Fri, 29 May 2026 21:40:35 -0300 Subject: [PATCH 4/5] =?UTF-8?q?finaliza=C3=A7=C3=A3o=20Guia3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Guia3/src/questionario.py | 10 ++++++++-- Guia3/src/respostadiscursiva.py | 11 ++++++++++- Guia3/src/respostaobjetiva.py | 15 ++++++++++++++- Guia3/src/tentativaquestionario.py | 24 +++++++++++++++++++++++- 4 files changed, 55 insertions(+), 5 deletions(-) diff --git a/Guia3/src/questionario.py b/Guia3/src/questionario.py index 90e4537..e30401a 100644 --- a/Guia3/src/questionario.py +++ b/Guia3/src/questionario.py @@ -1,4 +1,5 @@ from typing import List, Tuple, Dict +from tentativaquestionario import TentativaQuestionario class Questionario: def __init__(self, titulo): @@ -8,5 +9,10 @@ def __init__(self, titulo): def adicionar_pergunta(self, pergunta): self.perguntas.append(pergunta) - def criar_attempt(self, nome) - pass + @property + def usuario(self): + return self.usuario + + def criar_attempt(self, usuario): + return TentativaQuestionario(self, usuario) + diff --git a/Guia3/src/respostadiscursiva.py b/Guia3/src/respostadiscursiva.py index 4ea6dbb..b02c5e5 100644 --- a/Guia3/src/respostadiscursiva.py +++ b/Guia3/src/respostadiscursiva.py @@ -1,4 +1,13 @@ from typing import List, Tuple, Dict class RespostaDiscursiva: - pass \ No newline at end of file + def __init__(self, pergunta, texto_resposta): + self.pergunta = pergunta + self.texto_resposta = texto_resposta + @property + def esta_correta(self): + return self.pergunta.validar_resposta(self.texto_resposta) + + def calcular_pontuacao(self): + if self.esta_correta == True: + return 1 \ No newline at end of file diff --git a/Guia3/src/respostaobjetiva.py b/Guia3/src/respostaobjetiva.py index 72ed2d0..294f514 100644 --- a/Guia3/src/respostaobjetiva.py +++ b/Guia3/src/respostaobjetiva.py @@ -1,4 +1,17 @@ from typing import List, Tuple, Dict class RespostaObjetiva: - pass \ No newline at end of file + def __init__(self, pergunta, indice_escolhido): + self.pergunta = pergunta + self.indiece_escolhido = indice_escolhido + + @property + def esta_correta(self): + return self.pergunta.validar_resposta(self.indiece_escolhido) + + def calcular_pontuacao(self): + if self.esta_correta == True: + return 1 + else: + return 0 + diff --git a/Guia3/src/tentativaquestionario.py b/Guia3/src/tentativaquestionario.py index 9529974..083be47 100644 --- a/Guia3/src/tentativaquestionario.py +++ b/Guia3/src/tentativaquestionario.py @@ -1,4 +1,26 @@ from typing import List, Tuple, Dict class TentativaQuestionario: - \ No newline at end of file + def __init__(self, quiz, usuario): + self.quiz = quiz + self.usuario = usuario + self.respostas = [] + + + @usuario.setter + def usuario(self, novo_usuario): + self.usuario = novo_usuario + + def registrar_resposta(self, indice, resposta): + registro = [indice, resposta] + self.respostas.append(registro) + + def calcular_pontuacao(self): + pontuacao = 0 + for res in self.respostas: + pergunta = self.quiz.perguntas[res[0]] + + if pergunta.validar_resposta(res[1]) == True: + pontuacao = pontuacao +1 + return pontuacao + \ No newline at end of file From ca599c94d1f19dc2c6c2fbe385a0f46c6e8db3ed Mon Sep 17 00:00:00 2001 From: edsomft Date: Fri, 29 May 2026 23:03:31 -0300 Subject: [PATCH 5/5] =?UTF-8?q?finaliza=C3=A7=C3=A3o=20Guia3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Guia3/src/questionario.py | 6 +----- Guia3/src/tentativaquestionario.py | 21 +++++++++++++-------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Guia3/src/questionario.py b/Guia3/src/questionario.py index e30401a..5563fa5 100644 --- a/Guia3/src/questionario.py +++ b/Guia3/src/questionario.py @@ -1,5 +1,5 @@ from typing import List, Tuple, Dict -from tentativaquestionario import TentativaQuestionario +from src.tentativaquestionario import TentativaQuestionario class Questionario: def __init__(self, titulo): @@ -9,10 +9,6 @@ def __init__(self, titulo): def adicionar_pergunta(self, pergunta): self.perguntas.append(pergunta) - @property - def usuario(self): - return self.usuario - def criar_attempt(self, usuario): return TentativaQuestionario(self, usuario) diff --git a/Guia3/src/tentativaquestionario.py b/Guia3/src/tentativaquestionario.py index 083be47..950b25f 100644 --- a/Guia3/src/tentativaquestionario.py +++ b/Guia3/src/tentativaquestionario.py @@ -1,16 +1,11 @@ from typing import List, Tuple, Dict class TentativaQuestionario: - def __init__(self, quiz, usuario): - self.quiz = quiz + def __init__(self, questionario, usuario): + self.questionario = questionario self.usuario = usuario self.respostas = [] - - @usuario.setter - def usuario(self, novo_usuario): - self.usuario = novo_usuario - def registrar_resposta(self, indice, resposta): registro = [indice, resposta] self.respostas.append(registro) @@ -18,9 +13,19 @@ def registrar_resposta(self, indice, resposta): def calcular_pontuacao(self): pontuacao = 0 for res in self.respostas: - pergunta = self.quiz.perguntas[res[0]] + pergunta = self.questionario.perguntas[res[0]] if pergunta.validar_resposta(res[1]) == True: pontuacao = pontuacao +1 return pontuacao + + def finalizar(self): + self._finalizado = True + pontuacao = self.calcular_pontuacao() + total = len(self.questionario.perguntas) + feedback = f"Você acertou {pontuacao} de {total} questões." + return pontuacao, feedback + + def is_finalizado(self): + return self._finalizado \ No newline at end of file