From 65c9feb02a9cce7a613ee37a6b03cf800bd9ac51 Mon Sep 17 00:00:00 2001 From: hiurysousa Date: Fri, 22 May 2026 21:29:08 -0300 Subject: [PATCH] 22/05/2026 --- .../src/__pycache__/__init__.cpython-312.pyc | Bin 154 -> 164 bytes Guia1/src/__pycache__/main.cpython-312.pyc | Bin 1354 -> 1354 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 161 -> 171 bytes .../__pycache__/settings.cpython-312.pyc | Bin 702 -> 712 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 161 -> 171 bytes .../models/__pycache__/record.cpython-312.pyc | Bin 1395 -> 2067 bytes Guia1/src/models/record.py | 23 +++++++++-- .../__pycache__/__init__.cpython-312.pyc | Bin 167 -> 177 bytes .../abstract_repository.cpython-312.pyc | Bin 758 -> 768 bytes .../record_repository.cpython-312.pyc | Bin 1711 -> 2388 bytes Guia1/src/repositories/record_repository.py | 38 +++++++++++++----- .../__pycache__/__init__.cpython-312.pyc | Bin 163 -> 173 bytes .../record_service.cpython-312.pyc | Bin 1228 -> 1238 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 160 -> 170 bytes .../__pycache__/file_loader.cpython-312.pyc | Bin 1137 -> 1138 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 156 -> 166 bytes .../__pycache__/test_runner.cpython-312.pyc | Bin 5184 -> 5178 bytes Guia1/tests/test_runner.py | 4 +- .../src/__pycache__/__init__.cpython-314.pyc | Bin 0 -> 286 bytes .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 370 bytes .../__pycache__/desenvolvedor.cpython-314.pyc | Bin 0 -> 1935 bytes .../__pycache__/estagiario.cpython-314.pyc | Bin 0 -> 2009 bytes .../__pycache__/funcionario.cpython-314.pyc | Bin 0 -> 5003 bytes .../__pycache__/gerente.cpython-314.pyc | Bin 0 -> 1822 bytes Guia2/src/folha_pagamento/desenvolvedor.py | 28 +++++++++++-- Guia2/src/folha_pagamento/estagiario.py | 21 ++++++++-- Guia2/src/folha_pagamento/gerente.py | 26 ++++++++++-- .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 168 bytes ...desenvolvedor.cpython-314-pytest-9.0.3.pyc | Bin 0 -> 6235 bytes ...st_estagiario.cpython-314-pytest-9.0.3.pyc | Bin 0 -> 6122 bytes .../test_gerente.cpython-314-pytest-9.0.3.pyc | Bin 0 -> 6215 bytes 31 files changed, 116 insertions(+), 24 deletions(-) create mode 100644 Guia2/src/__pycache__/__init__.cpython-314.pyc create mode 100644 Guia2/src/folha_pagamento/__pycache__/__init__.cpython-314.pyc create mode 100644 Guia2/src/folha_pagamento/__pycache__/desenvolvedor.cpython-314.pyc create mode 100644 Guia2/src/folha_pagamento/__pycache__/estagiario.cpython-314.pyc create mode 100644 Guia2/src/folha_pagamento/__pycache__/funcionario.cpython-314.pyc create mode 100644 Guia2/src/folha_pagamento/__pycache__/gerente.cpython-314.pyc create mode 100644 Guia2/tests/__pycache__/__init__.cpython-314.pyc create mode 100644 Guia2/tests/__pycache__/test_desenvolvedor.cpython-314-pytest-9.0.3.pyc create mode 100644 Guia2/tests/__pycache__/test_estagiario.cpython-314-pytest-9.0.3.pyc create mode 100644 Guia2/tests/__pycache__/test_gerente.cpython-314-pytest-9.0.3.pyc diff --git a/Guia1/src/__pycache__/__init__.cpython-312.pyc b/Guia1/src/__pycache__/__init__.cpython-312.pyc index 508044149c0e1da12c8d749bf240946e280aa495..c2e89147ca55755e8ec030436a94b82b2db5f319 100644 GIT binary patch delta 92 zcmbQmxP+1WG%qg~0}yLNsVzyEzT~>Qfss?R!|@J}-~`29kB`hi-sF4CI$}3OWq?w=k`oy3 Z2#8KdoXP=|;+32%&GL@%*JLhM2LP7eCl&wz diff --git a/Guia1/src/config/__pycache__/__init__.cpython-312.pyc b/Guia1/src/config/__pycache__/__init__.cpython-312.pyc index 48f29792447512d685c5fac36cb55d460f1efd16..88833c4a255ed437a9a5da1f825b008a7b6d6985 100644 GIT binary patch delta 99 zcmZ3;xSEmsG%qg~0}yY)Ws2X+v delta 66 zcmX@Xx{sCnG%qg~0}y-S-yekI Si&6{nCo#=r{55$NlO6!M3>Jt0 diff --git a/Guia1/src/models/__pycache__/__init__.cpython-312.pyc b/Guia1/src/models/__pycache__/__init__.cpython-312.pyc index f2285cc1d7873a863d22504288650b51d1c3561a..3d35f9b1a490d4aae1936006a8ef10a57da10883 100644 GIT binary patch delta 99 zcmZ3;xSEmsG%qg~0}yt<8 diff --git a/Guia1/src/models/__pycache__/record.cpython-312.pyc b/Guia1/src/models/__pycache__/record.cpython-312.pyc index 42aff45eed484b119ac8efadfd58c87324087051..5a010ae68835d3bfe99727a5c1154c468c4e43f6 100644 GIT binary patch literal 2067 zcmbtVO-vg{6rTODz5ZhZGzq`O3Q@pOLX@HAi$wc6jDO1Racg0Q5S5lJG&-$ zWh8_+fYhpuasWgts8XpQ4!uS_rRC5=FDtm9RSt=IsCskbO09D0o87f>6BMcKNPfTb z=6mz@z46b{Xb8ay{CaGvl}G3os#F)~&Z@KkTR|)uMi?z3%iZaF|ti%qje&AM=ZR(x>>bZxQWy0m%U9{yJR%Jy53yv9O4ep<*x| zvi-M}v_`NUBo3EVZ1cHPR1yuubSiW3t0WnkQxF-z-Bn_CJb8{U@tB>4 zn~|_VcRLGnRsRB0Vo7s}oeETahrD_R%un~e6z{8x=OCW@m+}6(c)o<>+Pz+%3GDP$ z^Lsre?5ut>R7Bm#@V+fVMh$C{J&j0&L3MSh)op>fhi17C(LE*}NECVibaXI=l^G?b zD2`vSo6(zJ-c2vc3TFcES#DJ^l)DffW#mM!3=>xd9E`6*P zNKqP8^l3xOOQScg4@vsl(yf~}rT1=Kk`tF4ak!wSE=oE{OIf&9Mwi@v?#mZ#L6+5= zYRIxFy3O8KHP8>Fe*Tan>1 zM=dY(FeJJVz9ym{#rA7wxpZyxz)odnFxx;_K_xT={N*)vakFSz6c1Ol=MjGP2ghwC(h8TNo_*U&cA zBS2hebJ?_nRzj`+2m2Vrzk*GB&}{Iqy;ki6TOIt|@|-1fyb4cWFQ?@0`;3{Ri@uI9 z3!d6r08!oo4+kE;svmOj@LvVSP~4X=LvC`tDjqO}b1_<_Ok{N2>{)Ry$9<1zjz`$P7z zY~2~R#JiSo*C|IL9;T<#lw{cs$uf*yAw%VeEPql+Wn2%T|BE&Uj{|vwNw)jtBV2!q<_>)q@wBVb!&4tw-gg=*z9$lvfg%lKL< z97ts5#Dw0c$u6Ao0AqDBN$PJ P`I9}xOfb(8rB2A-+Rn0m delta 614 zcmZWnJx?1!5Z(3O7bZSioDd&E;3yRoE&x$LL<2%pUN3J7Pc!5hrS-Ago5Sn)rVz>4@u?6D?aX^L3*)gU(gt;(j19lsI;Ae9<7 z^jpziPzF--7|-(yv*mRqL6vta8<8w8O7%GkYvtnVDlH#mEz}2MEZL)P*}j*PEP ztA7Ynx-~d6sm!(?+wp{ z9R4Bk@^5i3etZbh+B5db;GP7T7EglG>u(o*|C z#{$i<$&yCF)kS-FSeW_CcWs90YAs3EQyr?>Y5m2Xo3yxD;xBx94=Xrc$}mbm!%JrS a?7ZI$gPjdI4`cd=?PWb);y)Q-Liz<53W+ZO diff --git a/Guia1/src/models/record.py b/Guia1/src/models/record.py index 5c5bc4c..8f9a1cf 100644 --- a/Guia1/src/models/record.py +++ b/Guia1/src/models/record.py @@ -1,8 +1,22 @@ class Record: def __init__(self, record_id: int, name: str, address: str): - self._id = record_id - self._name = name - self._address = address + try: + id_convertido = int(record_id) + except (ValueError, TypeError): + raise ValueError("ID deve ser um número inteiro válido.") + + if id_convertido < 0: + raise ValueError(f'ID deve ser inteiro E positivo.') + + if not name or name.strip() == '': + raise ValueError(f'Nome não pode ser vazio.') + + if not address or address.strip() == '': + raise ValueError(f'Endereço não pode ser vazio.') + + self._id = id_convertido + self._name = name.strip() + self._address = address.strip() @property def id(self): @@ -15,6 +29,7 @@ def name(self): @property def address(self): return self._address - + + def __repr__(self): return f"Record(id={self._id}, name='{self._name}', address='{self._address}')" \ No newline at end of file diff --git a/Guia1/src/repositories/__pycache__/__init__.cpython-312.pyc b/Guia1/src/repositories/__pycache__/__init__.cpython-312.pyc index 219943d13c57a83f70ca1d7d47146793bb279d63..bfbeb3468b59be3a011b39dec465c57a210cdf15 100644 GIT binary patch delta 74 zcmZ3^xRH_jG%qg~0}yO`MTTQAz#DkiizwWv5IBeS%qGR7sfIJ+djAjZ?p*)^uv dBqqS$KgKb@DBjNq#N4dKIGd62*5qSM1_1C88X5oq delta 67 zcmZo*`^L(BnwOW00SGn*uutUvtrF;L6%$&VT2vfUmY7qL8sm~$oL!P%5EJ0<55n<9 TsRj9)O&Di0GX9!;fyn>>()t$W diff --git a/Guia1/src/repositories/__pycache__/record_repository.cpython-312.pyc b/Guia1/src/repositories/__pycache__/record_repository.cpython-312.pyc index f76d38a1756ade4d7422d23b0b37569b6c91650a..47e921e1ba175b3efee3235f87a21220136168d9 100644 GIT binary patch delta 1409 zcmZ9M-%s0C6vyxN4-x_)4#a~5SOZDPveI?~LGWAp-bFGGIdhbkLCzlKmai?DlSfUUrNjdIh@C(SIA|RG6mKj!|Jzz3CPOxpREQ)i-QJG_F*(rf4cw>OF)se_Sg9)UA zR>C7BA=8>rBsnsz&J%hzgnkghfiugbR4SU3P20GXn2Qb&q7ai$kyug-a)j>O~H0K@7s~zhX*De+u?OCo^=gD$Q z_9r#9+5Qs4+ub|fmR0rJjeM5l zy<|bIx{`nd*O%$f(uTF+pZ#*=di5D%Kt~Xbx*k~GvALMpxb}O4F+O2TzMmhLjIpc6 z)$0bCGv+gU2&uT2DZ!p`9}RuX01dT+%sxWSx0%O6U5N*||5PXJ;m0?7TbW;51AVXX zTOtN;a$1zkPBU=t*yz>|z|?@E6{O=h&h4=tCeA{rcQQJoGBbeB45ARmxtx=8S*Jb$ zRymymCf_)m^gtE2=B{(+j_S+}5Ki;j3u1NtE;_+S#%W*+sE1QbTXc)g&tnxYS!E_& zhEWm&$7N7!Ivckizv@ZUxf7+OPhplFML~A>y}_Wx425_d0ewIiANR><*usfH~08rJ$#B`;kgfveiH6ot?V^&TpNi8}X(G)sn zIi9hC8083zr7-Pr{!AV8)bGLFLPgQNGI@J47v2^Fc`;BBgIU{O4tKFe%nm&jYqPee zPI0C2PGh#W=<~04u63@5)#m{%ma(B&43Y7I5F8gFCRZExyHB!8evX zF5dH1`#yp|9Jzn_)ZiI9OxF{7aHcghtH^VSXb(9LCH+&WRIbEgjCWE0F7of9)_pF3 NJw|QtZv^pR@&C!Wa5Vq` delta 778 zcmYjP&rcIU6rP!#ZMO?83vE&h<%fc36Mv>&6oP^z#+U%naI4ug-3NHj`M{0CmVK-7e6Jn#p2XeyH6$v4|zc*(r?y>Gvno%ij2Z}}XJeT_y{ z1o3k$JoSrIViz#pQfXy;Idj`(EK@aar`+VsPD!(gUmWkO7x;VZ>b-p~t{!y2Gv zRB+PdjLjMWWh53A1U2%umiHxAnzO_xU0q!)#@p#doa6UsYNi@Or_zVAlv4M#_<@9? z@mJYZYyDdJDIeI#Za8oIwxq4QmDrEQn>7hki*z|!Rgjig@s_+DC4E$j0Bea0z3Uz9 zpgy%tHeDdlA4dp4;NlMAx8yS+55weyugZzUe>3}qnJ#w86y=}fONxW6v}pN9`O19< zG2#+1aiDJENsE}UFhhO0Sei3gFgl9^#S((Ao4{HD`t9d(BNo{vlI=@{V+RY5r zz_u8;qp4LSMbx7j0%(b`-wfixZaR_)`--lMkErXus_WAw<4KWUSCYvl5HazyuntI@ zh-m`H_=M8i9Fp6snk=j9*#iWHY5cV^+uAJzbrqn$N`G*eIl#{G^O3X`$LdZp^9Ml< GRQ~|jNxPu{ diff --git a/Guia1/src/repositories/record_repository.py b/Guia1/src/repositories/record_repository.py index bded279..afaba5b 100644 --- a/Guia1/src/repositories/record_repository.py +++ b/Guia1/src/repositories/record_repository.py @@ -10,15 +10,35 @@ def __init__(self, file_path: str): def load_all(self): data = FileLoader.load_csv(self._file_path) - self._records = [ - Record(int(row["id"]), row["name"], row["address"]) - for row in data - ] + self._records = [] + for row in data: + try: + novo_registro = Record(row["id"], row["name"], row["address"]) + self._records.append(novo_registro) + except ValueError: + print(f"Registro inválido ignorado: {{'id': '{row['id']}', 'name': '{row['name']}', 'address': '{row['address']}'}}") + continue + return self._records def search(self, term: str): - term = term.lower() - return [ - r for r in self._records - if term in r.name.lower() or term in r.address.lower() - ] \ No newline at end of file + term_lista = term.lower().split() + + if not term_lista: + return [] + + resultados = [] + + for r in self._records: + palavras_do_registro = r.name.lower().split() + r.address.lower().split() + print(f'{palavras_do_registro}') + contem_todos = True + for palavra in term_lista: + if palavra not in palavras_do_registro: + contem_todos = False + break + + if contem_todos: + resultados.append(r) + + return resultados \ No newline at end of file diff --git a/Guia1/src/services/__pycache__/__init__.cpython-312.pyc b/Guia1/src/services/__pycache__/__init__.cpython-312.pyc index 7156b3400d03c95edf785d73c6374451cf8d4037..123b4f61af38d737cb13f9b60b707980c53fc4c6 100644 GIT binary patch delta 131 zcmZ3?xR#OoG%qg~0}yM6@iPA!g!kI&4@EQycTE2zB1VUwGmQks)$ XSHudmf)R*|L5z>gjEsy$%s>_Z8)qlY delta 64 zcmZ3>xR{aqG%qg~0}y-+W1q-vtm5Qs6%$&VT2vfUmY7qL8sm~$oL!P%5EJ0<55n<9 QsRj8HbL1I+P3%zw0Bv~{X8-^I diff --git a/Guia1/src/services/__pycache__/record_service.cpython-312.pyc b/Guia1/src/services/__pycache__/record_service.cpython-312.pyc index 29288bfcc275c671ade748d6ba8a812eb45dfc94..88163aafea21ab93f13773ff9e55bfff960ffbc6 100644 GIT binary patch delta 78 zcmX@Zd5x3%G%qg~0}ycx&=J7Civi6&XYT delta 68 zcmcb{d4`kwG%qg~0}#9pVBg5C!KmWlY!wq)oLW>IQyUl0@E?+?Q9 UMX3e(n-dw`m>GXfUcsUV0LI&j){-Y%*!l^kJl@xyfv|25dbP8B02y7 delta 64 zcmZ3*xPX!SG%qg~0}y-)W1q-vtYYtM6%$&VT2vfUmY7qL8sm~$oL!P%5EJ0<55n<9 QsRj8Hb7UBQP3%+z0Be>NSpWb4 diff --git a/Guia1/src/utils/__pycache__/file_loader.cpython-312.pyc b/Guia1/src/utils/__pycache__/file_loader.cpython-312.pyc index 6b5ca6a21d9cb8e3b88c17bad2a4a743ae0d4df1..73497f34d12be7f0278c50c10b7b2232513fcb5b 100644 GIT binary patch delta 140 zcmey!@ri@`G%qg~0}yIQyUl0@E?+?Q9 zMX3e(lh-pjJ2e9}H86Z&Vdu2FBPco{b3yV3_bY-n9~hW;RSvM+k(8M)H&bo}%VkO3 j32b-7rDwQJuKCUil=}`+@Cih0)@GJqWc)SRg+&hlRF5o9 diff --git a/Guia1/tests/__pycache__/__init__.cpython-312.pyc b/Guia1/tests/__pycache__/__init__.cpython-312.pyc index d4029fa49e430451318e97857bdcbdee513b4004..36a45629da1b59331351c64437505d6316591d78 100644 GIT binary patch delta 94 zcmbQkxQvneG%qg~0}y9*J0BL6xNB{r; diff --git a/Guia1/tests/__pycache__/test_runner.cpython-312.pyc b/Guia1/tests/__pycache__/test_runner.cpython-312.pyc index 5cc7ad8300e869efaa348ebcb42884e54da251ca..683638b17c9723a1f879fb602c30425c7315592d 100644 GIT binary patch delta 366 zcmX@0u}g#ZG%qg~0}x1k5y<+rk#`#td3K}>ct7q>SP zXDK(({H*-Lizi3%8t~j=R48SI3T&Rl%fZNaWb$l2Ll)i3ViuDx@JWI7f8tYCky@Z~ zQCMw->V}ewTGl&?PpIswzat`fLCXG$h{H`0sSlhW3oQBDK`uThXe!7HH1tOU!-B-+ zX$#XX zuwE5V`^d~7W%-?%flv7Z2ZMmbb$-Q*{ECUf@-lEGE3n*cxb05gUjQ k1`&oJLKZ}rfCvc?AqFIFaoFVMrXE7Qj4=o z@(W@D{QW^Vz9_XIe{(&vEjwe=6^urOphbH}i9QGqF~2W#uPM zPUbb>_{FGjiv`HpJfD|?k@4i@6?}#)I+w-FC*S3hf@o#|YW~HitRlHU@`9B86%mJ=l+9}Nr(5|^hfOj{AM zIH!SOGQUs*qt)aILWOPvl>~dR0K}BQsFwJ2Oz_2Mz`SiR=7|7x@)0 z^DAHAQ2x#d5(ODDSwMK1u?^6^A~p~q3?hs`ge-_K1rZV;LJUa!;;_lhPbtkwwJY+N I{8Bg&0D;zd;Q#;t diff --git a/Guia1/tests/test_runner.py b/Guia1/tests/test_runner.py index f8004a8..acbadee 100644 --- a/Guia1/tests/test_runner.py +++ b/Guia1/tests/test_runner.py @@ -53,7 +53,7 @@ def test_search_multiple_terms(self): try: self.service.get_all_records() - results = self.service.search("joao rua a") + results = self.service.search("joão rua a") if len(results) == 0: print("FALHA: Nenhum resultado encontrado") @@ -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/Guia2/src/__pycache__/__init__.cpython-314.pyc b/Guia2/src/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..822db3fe356ae1b8ca85a44fe1506bd276fa149a GIT binary patch literal 286 zcmdPqoiA9IlaX0kR2c&_IlCmkAjZ?p*)^uvBqqS$KgKb@DBjNq%yci!Of-rqE=rDxkI&4@ tEQycTE2zB1VUwGmQks)$SHul8lM#rEL5vT~jEs!;8N9DDco%U3`2a{cOhW(w literal 0 HcmV?d00001 diff --git a/Guia2/src/folha_pagamento/__pycache__/__init__.cpython-314.pyc b/Guia2/src/folha_pagamento/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c675478c86f0c24b88b10bb80fe9206e842aa83 GIT binary patch literal 370 zcmdPq@OqG}&G<0yS$g-r{yE%}dVA&r2-I%m;G0T#HK*(=(ww zUYFG3)V#9%oU+uE{34(3puO28`2{haZqBYT#U?QU{{AtJ z0Y>qDMqs9UX=b8POmR_iOj>?UMq+$HVtQgO&|Ud4@$s2?nI-Y@dIgoYIBatBQ%ZAE l?TYw-c7Xg_EC?h%Ff%eT-epj^%b;|ZLE}DyOc4)I6ads!W|sf} literal 0 HcmV?d00001 diff --git a/Guia2/src/folha_pagamento/__pycache__/desenvolvedor.cpython-314.pyc b/Guia2/src/folha_pagamento/__pycache__/desenvolvedor.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7aba32beb419f61b688b720c8e8deceb95f4188d GIT binary patch literal 1935 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 literal 0 HcmV?d00001 diff --git a/Guia2/src/folha_pagamento/__pycache__/funcionario.cpython-314.pyc b/Guia2/src/folha_pagamento/__pycache__/funcionario.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ed28de1af342255bbca10bbabbd450999c2e0086 GIT binary patch literal 5003 zcmcgw&2JmW6`$pj6iF>VM2VKfTB1H|M@$^aRg~5(jMT2>#O{Zp(zSdDt;K4&lD1v# z%CpM=_9Z$LC;|kieQBg#3ZuwDhyD?T{{ay!N?}kSE_w)ZqoFzqdg^<#P5ht`PI^ro}ktOnmP!a}-5yNj887F)v!et_tg;6%w8qtZibP=wLcIbLq zx*o2Jb?9Pz#5mU^P~*h8q?b!1E=h1nl1oxt(tAhZvNV@vQ094(Z0Y*AF596?wRHVl zH_)L=mvT;Ki8y_wQ-I?j>wUXws=8$=RJT-sh~N)P6n+RE56&fF3xHYyAC1n;r1X>DjMzM(i&SF47?BwI1?GxCaJYZyBS8jGwN zmg2xubk(9@%aXFJ8j5XKbk&h%8;6?MVoO(lT)t&%)Gn{Y4v7?b^(j_6H=Ee(y3OArTzCLhM8y}{1yO`w?BGw(0UU)_ zTADQpku0|nCnYl1>aPn+q32o&0V{EtT+BjDx1qySzl0b*{woI2(=?B^#xO7D*p{}Id6ei*1@X&{6M-N6`CU$r!5gh{d+ zqLB9pi&D+0Qgc_J5GzPsGzASs#9JKaGoyVdg@}?J zM^}!SkH!Zdey|rC^}YD!Xh1xY=+cSA7)56T#F#)JCU!L5_@00jFE5D45WI8*4_twr z$uYQOF_t#6nG>Xu9WK_pS;X&kl^Hz9guC(_i>L}+vx<>! zdAzkPLdt{WXTokK%iVEe$%<03Y}{XU)w0=ekii`)j@CtR2tp=hAIyJzfbs z&!an|`%->;zH$2X+UeK#rTz!M{&@M}awB)XmOI~!M>2^fiNq5=qTf8YbP60eIkM-$ z>S$zl&ps!zn3#EFxB2vrk1I&guB*(op7D$A0+#J#YFh;Db1ZuTCatb#$&bOVaFV#$ zC(O4tmQoc1_f{&eSZ38`{obtZ24s!BNIO68<62roB83{caU@adsxi zgy>ps#_8NQz8D8mUPm`>AXrHC{`N*He?vL?L9*O<{dq2bqGY$O_R$V(S%dTk@h>wJZ3*5SPx2mzx zAX$&V>zOeR0fr@&9Yio5wj0K-D_@C2@04K7tztG)Ecj?eVzvAfsCuX7>o- zJSZ$5MA%CQJn&axgagcYTjXCc$^X=Mp60K^H;w#qpEA^-?B{OOF+f4Yj|xf8H_cqUauo@q$3{D7a9}@)gYzvb(@;nIA!su=Degr#M9Rj0ON=%!{`a4NwAJBw{nYg41ny+D4zghyww;@`_c;gmez=kAs;oHh=fO(V(QNo^U*MksRWl4(hVwhWKp{CVyZ0wt0kr+!h5ZRU zeffLf@?i)r>io9eoFLKEVF>P02O{*E*n>UHl@&Z$!IMpRvWY_p&Xi3&SRQ8l9_%$u z+;EzsBszd2C-IE|965=joFMxG?f63De&dZ@fkC;T%(NIsbSf?&%>{~twFnN|P* literal 0 HcmV?d00001 diff --git a/Guia2/src/folha_pagamento/__pycache__/gerente.cpython-314.pyc b/Guia2/src/folha_pagamento/__pycache__/gerente.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8d8dcb0175d380dacf7a20e1380d99261db3be6b GIT binary patch literal 1822 zcmah~%~Kpz5bw9Mvn&e>3oL9Tm=zH!V+aRGm8m40pD2~Xe&S}AkuQAprKGPb3u6&|TZuK_ zRVKAmRAbhL`yLY3f*&q(IK&Fb!#2xwWp6M#>w5tYdy>)|*2`Yu7P1=DTiWkcRw}FJ zW=pwVJh5FI+$at{P_~L^)?0_``L<7sUz9&9Kgti?e{(xObg(16RUBS#JzLLr+@mXW zm2Kwx4~+5g-xO$jnPG|#*ICvqs&iuy9G^iQ4(CTB3u~u7_~o6oZz>vz;InRt;u-Lr z`yl6RZu!`%JnTJ^fPGtsJl=&2lTavb7y35}{r4xf3a8hz+J6MCM<%-|b z@cb5*&C%GE8o;TC;~@Q1zFlV>U##;pnw&jEhDfFM2-2>7q~@Fx4Mm5CCyziqFyeCo zJ`hEo6kNxGf8SL~3b?$Pe+idQx_Tn)NuSA1(OTqy^6>TJfXY$2=+6bNlv^oX4oo+; zv{O3oFfLrjvpt{EXgIJQ8UG8Cy@)LA#-Suk;aJoZILBrKVdI<%JK~XrXoO|EE~@ge zstGm*-GQ%QSUSPbRve?1AYqG-ydRae@`ju;7%^1p4}-B_0>N!8MU+n z$ReE4fk{mXPyTDljm#hXZkY5K?R*H0Q_*9~UTS3Gb*7 float: + return (self.salario_base * 0.03) + + def calcular_descontos(self) -> float: + return (self.salario_base * 0.02) + + def calcular_adicionais(self) -> float: + if self.carga_horaria <= 20: + return 150 + elif self.carga_horaria <= 30: + return 250 + else: + return 350 \ No newline at end of file diff --git a/Guia2/src/folha_pagamento/gerente.py b/Guia2/src/folha_pagamento/gerente.py index 31819a1..7f4bce9 100644 --- a/Guia2/src/folha_pagamento/gerente.py +++ b/Guia2/src/folha_pagamento/gerente.py @@ -1,6 +1,26 @@ from folha_pagamento.funcionario import Funcionario -# Desenvolva a classe Gerente aqui. +class Gerente(Funcionario): + def __init__(self, nome, matricula, salario_base, setor, qtd_equipe): + super().__init__(nome, matricula, salario_base) + self.setor = setor + self.qtd_equipe = qtd_equipe -class Gerente: - pass \ No newline at end of file + def calcular_bonus(self): + if self.qtd_equipe <= 5: + return (self.salario_base * 0.1) + elif 5 < 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 \ No newline at end of file diff --git a/Guia2/tests/__pycache__/__init__.cpython-314.pyc b/Guia2/tests/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4de7bd1bd3e620a808f4df0932a5de24747d0908 GIT binary patch literal 168 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 BR;>U4 literal 0 HcmV?d00001 diff --git a/Guia2/tests/__pycache__/test_estagiario.cpython-314-pytest-9.0.3.pyc b/Guia2/tests/__pycache__/test_estagiario.cpython-314-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a287e6691195acea5befad252938101d38fd756d GIT binary patch literal 6122 zcmeHL&2JmW6`x%$m(;Gloy77-B`S7QQFbU%qGUU^63Mn2x{z&kfzUv~da7fOLUKA@QpZebH?rF!bpT+jZ|`@>k6kQ^HR1vb0({tQKp+$NfEjo1P!#dN4D4w1BE zhlku2*_NS2ycS7E?dTBsfxOi3#Rm#4bd;n#+g3E`D6v&746+maj|Ut*b?I9N>ohq* zw2qrXN_5+_NFZmA7KLoRnsAE5l^t}r@lbG-1YET-}c-Vgu*-_CrMWF?i+rgZ;1QK|HI=GdEs+N{&S4WX9Mp&jeUYd?)l%+{#+CcA+1c1AMxO)MG51d3>t;-X z=Ea|fc*}s`qN(38th{nR9#@?1)|5_X(8W>aD(eU?xj9b8K~%~xp7T&);1?{q@5 zey3V2*~PNu$R!gzEN4KsR?KQ?nYrqPl6l7{>1AUz?{w&vaW{_{obGuxFh#SxK&eTc zBl=yFt{S$U|EN+j%7zUs4?Eo9Rq;0NKqj4lF%>jsg2n~6YhFxC(6rm+-Yq%VVx=s^ zzmb@CQ3MgEhYbK5aQ$xaBa@CnErO}l08t~KtFLdXryJ_&x|FV~r#ICRP&UxoPNo~l zG*&0mpN=tQEZtDk+t9>*TNp9IO|Jav9j-o+(!TYS`B=Idw zl5F;XySNHCezOF?tTwN2mVf|&zRD%?|7i*M__aU1|F?U;d5?C%i^4F9;;K%OEYV&R zxcpFDZ|D&euYtHhUk3@8|KKGte>rdE%(89%S8%_d<33MI2e7NhP#~+OCs3S3frOe4 zq8LIELop1Z9bEP^xb%~{i1{}7;;;k}bF`t3)}_U|I=ZQjfwHj-VtabAF};Y@(~F-b zn37m*sEgas#C}^CF~&`;ZRi z6>wyTc`ueTXu;4|Op2WTtg&3o!4d{5U*4+Zsj+P4kVg9#t{;q6*MKP3$gSS8-+~mo z9eJK=($}@C8Icj^4}4Mz#2H?$7Frr0Nq%Y|&PpZ>#96&{`D;U*n*{g8#F>*wEv(6} zV6(u9xj!$5+$``o*euB7QVW%pHK4c|c^|=zdSOzq_zV{Z6|#L-jQ}_ zhFo^W=|A{3Kkp7OTcDN<@i@e3F9~t}eTo5$!&EbI3%F`m%O~a>;SkmgJ1l&~qb_Vu z;&V@+coW4b6gYVKm$4hF^K-wA3)T| zZa;~=y(OLe45?$hp~madd|i!is%KCcpKqx1+miR&!lpCa*cJsTqlF z`;%WA^x|LsA-4TZqM=ihf&?Dwm3D)#9?*+>Ud|qKGff00*jl z5r;;rh>KQuZnY1nD4vYcX%JQfgtvEfacO|z(!P7@QxhxnBDf;pS$_mkBcBZo*S-sQ z^m)&zTAG1UqM;`0(xtkZ*iW@! zWvuUWqW<{>V z0*Kv^AP9dYwPI@C#8C=7qfw5qo!;`b-gpYXZva!mff|Cmx*G n76ux^K>gUoXC(5jxJM#l=!;%axGe1Tfx64oFBM6cWgYn!igGb_ literal 0 HcmV?d00001 diff --git a/Guia2/tests/__pycache__/test_gerente.cpython-314-pytest-9.0.3.pyc b/Guia2/tests/__pycache__/test_gerente.cpython-314-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1271208a11e9db8e7292c1cbb544c88df0c280d9 GIT binary patch literal 6215 zcmds*OKjW78Gwfr^|0u7+KrQJVmpZ)tM>XKD}E$vC)vcW!zL=bkuPcl*=8JdWj%%z z8m9=Lpszjl*zPHZ9*cEqPlxPBBfDb5;3%&%2D_*TF z7jJco0aCo1@J-AUQoMi3F`SWBzfZ`!BpKkI@er5Xb2ki?L||0X)Wsi-$}#6E_(qa! zu%l(X(Y5E2d*w-JT0L8HrDksDp1Vnc#GJRz?{Nj5@V+~2b?v$2_4|;G6i<)p+bjG! znsTJAU)cJ!z_-w6ACLcreHMPu=fIFMAl@R3hoBbJLW$szw68UkJi(utr`O-(ZSEPK zXo%kxKR=MPhO1IRxhm0w)_~Lb8+mHV@)g#H*?d4LibV{IF)O4SFyPZG`EQ!j2FyRR ztEaE9J`picJpmM;O>n`8^youuk422|&m5s^ikU`v69`VzaKso~PG^@(*)+B1Q223Q zB>cE*%61ux7!lP9yK~NJG}2(3$)}dmhHf?QcecXU3+p)5Q)z0or9hcYQN2Ky^J|4P z)vZQQr1AA~3scp5^(t#rIEfsIUetsj~%BZ(;*{;}E z8245t4Wv+SZ*LbnD9%{xEbB5uP^yrpDKov6&OOLGn4&lgkw(U!peU2wc5?dSrt;3q zmd@?-W7YFxU$l&s=U=Mr+iG`J?XD<86}5Xqy#T_~hgEfGTXBAysJS4jLil7{h%b~O zUfW`EY)xHHFnIdV>*=Y9W)Q%Rp?6uVAJB~!_%pi7P?mu+acHPLift~l3bICu!}YjZ zyqQqE>@8{u{{gPvVAK*sj(g@NzbbH5Wn67s?5W|Zpm1CemU|K6-lK=B?v?72_)xC8 zen;@w;p$QL5~l@l^(b3e*!qvO6|B<&u9bUKb_wI>Y zClNe^*J0qb1b-R+0r>lX-7{Jk*xj`H`MF>I=ZByF8oZ*vGI3B~mi2|Z46U9gnG z`pEF377xKkMgig2JbIf#`hWy~@|FZ&(T(MN&deJw#rrVSH~{|#Yz-Iz;@j&2O3o?( zYsjD%>*2?dNZ4u@Y!_iEre_orV0s#hGg!Qf1!NVD>7o<<=K-mFoDqD;O-#P(Fx zo{BPCQF}JjOCUUpL9rd3twv|DIXe4AKNI?AtLp4FsMv24JuZo=5D>PG$qQwc*S1*v zgPsuOSxh+C0@yxx149sA!yr-j4r<)M(9Va?x@+@5dL^?A%OI?tJXNTl5tk2S#K7-5 z8F6vcWn=MHLS|IH%d;wx?Ydm5PvvmJ&$8VQzB5#I>3KAj1)(&|cK`RJ71ZbN#mVs9 zw^Dy45`J~E-2lsW12x%hFnN4>2KidV&rY^$6O(1TEM2WfONy7V+7FIqirF^9s34{G zmZaptGagi8C`@?6b^>`q@Xs|qHv2+uCQ9*(0u>ZwbfZ1k)(eG!BZB9XHp;r~3|dU) zIw|ECI3aC~KS1G0DUoo!RkgRGOjp$24Yd!2f$6F`y{$OEO;q)Xst^!fj>!vUn%A~i zAX`({6AcF3=-}$DijW|H<-t5s?9zY5m~=0cAUWugeQ4o=bO@Qwd&o4JkQkY6@fmPz zGN}m#$kezv@|_`*nAOL~7hQ^dJ7f~MD}OJ?B$M!~Lnc2XlfQ;cfj1yifD?(I9Wp^q zM`LUs-n4^r@=!9deWV9PnU0HK?PP9?Z^JU(>@i;b_f;O2j z={+1uLD1IO;?`W#+2E!o=oPT?1*_E**ZiZWSI`#040 zKzQC!RVTL<=eLQP_e50)NFm4Mg)+%&TP%*Psp|;_&pW)Ho|M$zqnRi}88IkD} zYGzO)(`jt~H(V3s>)1YPx5GY{>{Q_KgD=}Y%wc<*72;n_Sk7&oO4;982JM^~lDBp7|A8O#!i%Bz&boS+f zWziHD9QKwen;ZBM#9pjI@2}-oN?CoHYS4z=H9mo2*C$ERKMDB-`FYbn$jRLRkwd>e z_vGByvMi15`H0-Qi_&fw+s`~Xvn_R0rH;y}u~#HGDesY>?EAXaCk^klfwYU#t43Lx alMXmcfWuYpAWPRA2asNe73m6lzyAfJMn81` literal 0 HcmV?d00001