From 575c5df414f71929d3cb184ad2d6286cad53c346 Mon Sep 17 00:00:00 2001 From: DynamicXc Date: Tue, 23 Sep 2025 15:42:20 +0100 Subject: [PATCH] Group5 assignment --- Group 5 Members.docx | Bin 0 -> 13402 bytes Group5_report.md | 56 ++++++++++++++++++ README.md | 3 - __pycache__/quadraticEqn.cpython-313.pyc | Bin 0 -> 1949 bytes ...tQuadraticEqn.cpython-313-pytest-8.4.2.pyc | Bin 0 -> 10277 bytes main.py | 1 - quadraticEqn.py | 49 +++++++++++++++ quadratic_flowchart.drawio | 56 ++++++++++++++++++ quadratic_flowchart.jpg | Bin 0 -> 113610 bytes testQuadraticEqn.py | 33 +++++++++++ 10 files changed, 194 insertions(+), 4 deletions(-) create mode 100644 Group 5 Members.docx create mode 100644 Group5_report.md delete mode 100644 README.md create mode 100644 __pycache__/quadraticEqn.cpython-313.pyc create mode 100644 __pycache__/testQuadraticEqn.cpython-313-pytest-8.4.2.pyc delete mode 100644 main.py create mode 100644 quadraticEqn.py create mode 100644 quadratic_flowchart.drawio create mode 100644 quadratic_flowchart.jpg create mode 100644 testQuadraticEqn.py diff --git a/Group 5 Members.docx b/Group 5 Members.docx new file mode 100644 index 0000000000000000000000000000000000000000..64c51b8da73a34550fa32d921bcd1cf49b40d30d GIT binary patch literal 13402 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 literal 0 HcmV?d00001 diff --git a/Group5_report.md b/Group5_report.md new file mode 100644 index 0000000..d5890e3 --- /dev/null +++ b/Group5_report.md @@ -0,0 +1,56 @@ +# Code Testing and Debugging Report For Quadratic Equation + + +## Introduction + + This report documents the testing and debugging effort for a quadratic equation solver + implemented in Python. The solver takes coefficients a, b, and c as input and calculates the roots + of the quadratic equation + >ax^2 + bx + c = 0. + +## Testing Methodology + +- **Testing approach**: Unit testing and integration testing were employed to ensure the solver's + correctness. +- **Test cases**: Various test cases were designed to cover different scenarios, including: + - Real roots + - Complex roots + - Repeated roots + - Edge cases (e.g., a = 0, b = 0, c = 0) +- **Testing tools**: The Python package pytest was used for testing. + +- **Test Results** + - Summary: 5 test cases were executed, with 3 passing and 2 failing initially. + - Issues encountered: Two test cases failed due to incorrect handling of complex roots. + - Screenshots/logs: Not applicable, but test output logs were reviewed to identify issues. + + +## Debugging Process +- **Debugging approach**: The debugger was used to step through the code and identify issues. +- **Step-by-step account**: For the complex root issue, the debugger revealed that the calculation of the + discriminant was incorrect. +- **Solutions implemented**: The calculation of the discriminant was corrected, and the solver was + updated to handle complex roots properly. +- **Issues and Fixes** + - Issue 1: Incorrect handling of complex roots. + Root cause: Incorrect calculation of the discriminant. + Solution: Corrected the calculation of the discriminant and updated the solver to handle + complex roots. + Code snippet: `discriminant = b**2 - 4*a*c` (corrected calculation) + - Issue 2: Repeated roots not handled correctly. + - Root cause: Insufficient checking for repeated roots. + - Solution: Added a check for repeated roots and updated the solver to handle them correctly. + +## Conclusion + +The testing and debugging process revealed the importance of thorough testing and attention to + detail.The testing and debugging effort ensured the quadratic equation solver's correctness and + reliability. With the issues resolved, the solver is now confident to produce accurate results.This + report demonstrates the testing and debugging process for a quadratic equation solver, + highlighting the importance of thorough testing and attention to detail. + +## Recommendations +- Future testing: Additional testing with more complex coefficients and edge cases. +- Potential improvements: Consider adding support for numerical methods or + approximation technique + diff --git a/README.md b/README.md deleted file mode 100644 index aa4e50b..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# pythonlab - -Python Lab diff --git a/__pycache__/quadraticEqn.cpython-313.pyc b/__pycache__/quadraticEqn.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..987016ceb6aab22b4090b52e236a78d4db79ef67 GIT binary patch literal 1949 zcmd5-%}*Ow5TCcZ{=nGShC+fvlTDhI7!{-x+z*!oS%j!j6RN~@MP;k*V_CyS_O5xm zMv70gQ6(Qu1u8jI;+Wpj|DaJXJvwp|(G>@zR+YH9_)_)MdFzjm2vN1Cj^+0`^P73| ze)F~&2>1Zy$H-4B-%0?#@<~U8_MjQZ!4@PTNj?MyNg)D^Bt>k6q=c=Qk&>?X0s!>_ zWW);)Ya7b2OqNO1eZc4Qir8M}9r^-3Z+=NQb_%f_1V2C;S6Y%3V(l>^K?;42qlcuF zf^io>O5p7{#;=Ph5$!iIf>~TAW03B|4tKbxm*fJZ#18T}?j^+*;&?A&N&nIw{l8%E zT9}&>E~1C_iTYX*y`UqdB)y~ezlb*KnrA#^<#%TdHJ8&AP1P-Vl#a>@)pf&?7gf2e zGDFT8Os4W`i7qi}X^O1k(9#Tj;((hU@MK3t+f`(mZrLuSK&=&9GFO=ub=!p6WYH#y z?O)PNg=qy%r(BB}hIP5sy=A%)L3YHB&Bik+Q)Oo6+Nbl0TQ_DGGS>{HRKU>8O!1zz zV(59gnCS*Hx2jJR@7V*UkzZ4@-Q}#hs6&z^5d`1RcDUXX*$wwsg(}@98_I?c0YZZnSHsuU^8g0( zU;XX(h8%BAJSix==?IoftLT2f!4{mw-}7Qi^Kx_~Njk;R>Gk9Fy5-r`Bgf)(i><3C zERd8iC0>N{knR?!2PhVc3~5g{5~*V$!#Vg!%E1-!9OTHY&yZ%W`SKY}FP1FXT2W=? z2ycy?OyehPE}pch#LH1lU!!?#Np|4hl#6+lnyQSvQ#t#O>_sKpmCG9xS?uWAzE5br zq|PyBFvj^761 zW-m0jsn$l`s}IHNq4z6^f12+ieO9Zn%FRE23l2AdAc8+!>%a2Mf3+dv?5{t9&>J+v z=;Z!PLWIZSVB(DUI6|;Jo-ub&b?XQVI!}BFk5eSN@SHvTW@G%2D7u*DoO2{eQeq!W zb~(eJ^r$djKKn7=9)AK%8Sjl>W#>(iDN|)kAWw=@z^#l*FJ;trGu15REt3-oGuuwB zRG^y9hH>o;{F`Igtizr^QumL1F}I$mkiCGs6W+O94~(u~-;;W3{;`K|KfF})O+J;T z7*CDu&1N}BHXC&@&dF8~PB{V3aA25@DWH9lB pG~GY~hwd;reR!#d%p9H;Net^=@>j}rarhU>`_=V^2vWp>`x_RZofrTB literal 0 HcmV?d00001 diff --git a/__pycache__/testQuadraticEqn.cpython-313-pytest-8.4.2.pyc b/__pycache__/testQuadraticEqn.cpython-313-pytest-8.4.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dcfef1261dcb71defba9f61b3ef21fbc11e13581 GIT binary patch literal 10277 zcmeHN>u(d;6`vW89Y5kg$nppqx`_)bOp|QvJP2EYmaseu3(ID3NgE_W+>ZID)4`k_+NFa0NGo_q0H@$@+4ZwH(@36!>!i2~x6;Y9tz#!JaH46(aixXB(5Hi9T zw6DK1qF?D7(x5eJNpeO|WF_dT2~33eXk)mhx=SBbLP03gFC~ObkdLS5tkN5qrZ>+( z?ZQE;U;fX6FhSLi1!K)tvFnx)l%`C0KvcrxQv=eV^)yOkqJ=ja+s-BDo)8AD%(vm5 zf6X(?4yPTL5`yzweARr7>RwOpS9l-i?$`TW5!UEDnQyO*%;##@($;0emZ9e!vx&D< zqP@W$c(0|15>uKpkv@^;q7%FMGrDHo!^@mIyz3|*i{CZ)k&K8X8NNaIhDOBlPaPdU z#dbtr+hL_!w&N&V0FD2j+0K-Zj9*y84QlNlPo6wk!)<5{x92t7>x3lcZA6M=sC7Jx*|KX2{SZ1Ai~%+_p9Ef%vxE0df)T~>)^HbZsx>TID{DU@I#MIBlg=ANu^O`k31Y18af zQNOAdvn6#}Gb33;oz!pyv*kElQb8}BBt$1>TXs?>(`qHF-7FW?5;z&Xl#H1YNx?U5 z28pg$3^NS1S`HT*!>QS0rQDf*cV^I?8Fpt5v$eB1Q+=LX+K7P;I-Scra^lS^8PK3{ z8+P_Zz=Drzvp9$U1>fZ}`C?XGU&e|Ke|ly%U$ki&#u zh!XH;u>M`x+&3T>u@1R#z~zfuN|GY#Y1sP$+{@^1Wn_vdGTd9A7V`=4*Uv;LfGGl* zAYcl4Ty|lKpv%koA`uU!c-1qDjYjxm3%ExMe4TuC>Ml<&U*zKS0t^vULYrC@A|2=1 zeOEPM>v+TJ5a~F*eOI@!H>@($s8`0umJM6l@3vt}+XE_17JdmSVI`6YS@@-CqK&@| z*I52Y%*H}oCl-D|>>>en8E~H44?Fu<=J9{iGGB37W^_|F@I00&^5@)?W!k;qokzDU z6CxJh--v_F{u7o7$S8J!AaY*&Cm=)5W-WrjdAe}3CR^Dctk2m8Oh=p`hE9j+2sMyEb6XO5Rk>>Awi!7uWkDR{dOiy z(ZyZ9O9Hw8BWbi717i`PjKvve4|nzP^~w&WY1q>7dyxry{~7aTH9UyL%Yyj&K}Sm) z{DYST@qLDkz3W&I-(C(+)bPpuxDEd?!+ia~ZG;$`LAi~ng$-hx;5K4>EPl7JLBQfS zA})^OCfFh4E4J*={*678joY$AOHVHA_vhF)Yln=9?H@z0T6dKi?}yS$-w)&CTl=Ax z753k|{J38KmS3;^@I~!V1D|X^sa~-`FlyksHbW!ok?!YF8VFXD1{8BI(wz=bowB)Yl&oflc~20mqCq#` z-Gjpe#fAD7b;M?{Mdug0o z7yH^_FByVvFb<8oY3$nx1#X7D&z(uTGehJ6wxx#$7K3jQ@K(-4=nr^;=6+9ZkYM2B zDHNJx=QVqQ2psCJ6Cmb4{&(9-!gFfI2sHAQ`zm^0#tpmwPs66T>G|yz8XDuGu!Cq zw$Z%|bWAsxMOUq(8>H2a?rN<2p=^C>ayKpvbDx6^aSS}^1lMs!RGD# z7!EkokTVjn4#9EJK{y^}9{pe4RTr5dbL`Aw|9ipd^wcvArT8LU&*SAauPav9p8e_8(lB;I{@{?r#c+gIiG z#Y+pv9?I?Pb6;*>fP+da$Akx-vZ|AVip5KHjUfwTY|iFI#XkLeVVeiu4{Sc*vH1qE z?SIAQWtW{cviYEG^C4goU$)JMEt@|NmOUNUQ 0: + root1 = (-b + cmath.sqrt(discriminant)) / (2*a) + root2 = (-b - cmath.sqrt(discriminant)) / (2*a) + elif discriminant == 0: + root1 = -b / (2*a) + root2 = root1 + else: + root1 = (-b + cmath.sqrt(discriminant)) / (2*a) + root2 = (-b - cmath.sqrt(discriminant)) / (2*a) + + return root1, root2 + + +def get_user_input(): + while True: + try: + a = float(input("input the coefficient of a:")) + b = float(input("input the coefficient of b:")) + c = float(input("input the coefficient of c:")) + return a,b,c + + except ValueError: + print("invalid input, please enter a valid input") + + +def main(): + a,b,c = get_user_input() + result = solve_quadratic_eqn(a,b,c) + print(f"The roots of the equation are {result}") + +if __name__ == "__main__": + main() + + + + + diff --git a/quadratic_flowchart.drawio b/quadratic_flowchart.drawio new file mode 100644 index 0000000..70156fd --- /dev/null +++ b/quadratic_flowchart.drawio @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/quadratic_flowchart.jpg b/quadratic_flowchart.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a244a21979aab38fb68b972df06e62721059d16e GIT binary patch literal 113610 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

V%kpyJRVUyECfjHPXIMr!;Cm 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 literal 0 HcmV?d00001 diff --git a/testQuadraticEqn.py b/testQuadraticEqn.py new file mode 100644 index 0000000..4f1c363 --- /dev/null +++ b/testQuadraticEqn.py @@ -0,0 +1,33 @@ +import pytest +from quadraticEqn import solve_quadratic_eqn # Replace 'your_module' with your actual filename (without .py) + +def test_two_real_roots(): + r1, r2 = solve_quadratic_eqn(1, -5, 6) + roots = sorted([r1.real, r2.real]) + expected = sorted([2, 3]) + assert pytest.approx(roots[0]) == expected[0] + assert pytest.approx(roots[1]) == expected[1] + + +def test_one_real_root(): + r1, r2 = solve_quadratic_eqn(1, -2, 1) + assert r1 == pytest.approx(1) + assert r2 == pytest.approx(1) +def test_complex_roots(): + r1, r2 = solve_quadratic_eqn(1, 2, 5) + + # Sort roots by imaginary part to ensure consistent order + roots = sorted([r1, r2], key=lambda x: x.imag) + + assert roots[0].real == pytest.approx(-1) + assert roots[1].real == pytest.approx(-1) + assert roots[0].imag == pytest.approx(-2) + assert roots[1].imag == pytest.approx(2) + +def test_zero_a_coefficient(): + result = solve_quadratic_eqn(0, 2, 3) + assert result is None + +def test_zero_division_handling(): + result = solve_quadratic_eqn(0, 0, 0) + assert result is None \ No newline at end of file