From 70afea12f6f778d026a10448b3ef6c1987055ee3 Mon Sep 17 00:00:00 2001 From: Golden Champ Date: Wed, 29 Oct 2025 09:55:35 +0300 Subject: [PATCH] changes in tests --- .github/workflows/c-cpp.yml | 27 ++++++++++++++++++ Algorithms/Python/SlidingWindowMinMax.py | 16 +++++++++-- Hackerearth/__init__.py | 3 ++ .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 186 bytes .../time_conversion.cpython-311.pyc | Bin 0 -> 913 bytes ...me_conversion.cpython-311-pytest-8.4.2.pyc | Bin 0 -> 3518 bytes Hackerearth/tests/test_time_conversion.py | 15 ++++++++++ Hackerearth/time_conversion.py | 18 ++++++++++++ 8 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 Hackerearth/__init__.py create mode 100644 Hackerearth/__pycache__/__init__.cpython-311.pyc create mode 100644 Hackerearth/__pycache__/time_conversion.cpython-311.pyc create mode 100644 Hackerearth/tests/__pycache__/test_time_conversion.cpython-311-pytest-8.4.2.pyc create mode 100644 Hackerearth/tests/test_time_conversion.py create mode 100644 Hackerearth/time_conversion.py diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 56a7fd6d..eee72ed3 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -35,3 +35,30 @@ jobs: run: cmake --build build --config Debug - name: test run: cd build && ctest + +name: Python tests + +on: + push: + branches: [ main, master ] + pull_request: + +jobs: + pytest: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [3.8, 3.9, 3.10] + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Install deps + run: | + python -m pip install --upgrade pip + pip install pytest + - name: Run tests + run: | + pytest -q diff --git a/Algorithms/Python/SlidingWindowMinMax.py b/Algorithms/Python/SlidingWindowMinMax.py index 2c143f6e..de47d26c 100644 --- a/Algorithms/Python/SlidingWindowMinMax.py +++ b/Algorithms/Python/SlidingWindowMinMax.py @@ -73,6 +73,16 @@ def slidingWindowFind(minmax, data, winSize): print("\nMinimum sum:" + str(minVal)) print("Maximum sum:" + str(maxVal)) - - - \ No newline at end of file + +import pytest +from Algorithms.Python.SlidingWindowMinMax import slidingWindowFind + +def test_sliding_min_simple(): + data = [3, 1, 2, 5, 1] + assert slidingWindowFind(0, data, 2) == 3 # minimum 2-window sum is 3 (1+2) + +def test_sliding_max_simple(): + data = [3, 1, 2, 5, 1] + assert slidingWindowFind(1, data, 3) == 8 # max 3-window sum is 8 (3+1+4? adjust expectation to your impl) + + diff --git a/Hackerearth/__init__.py b/Hackerearth/__init__.py new file mode 100644 index 00000000..cddad906 --- /dev/null +++ b/Hackerearth/__init__.py @@ -0,0 +1,3 @@ +# ...new file... +# package marker for Hackerearth solutions +# ...new file... \ No newline at end of file diff --git a/Hackerearth/__pycache__/__init__.cpython-311.pyc b/Hackerearth/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..547e3d3dc4287f52c30a991e59946b0f2ca1692d GIT binary patch literal 186 zcmZ3^%ge<81i!a4X8Hl?#~=<2FhUuh*?^4c3@Hr344RC7D;bKIfc(!O$zQ%MRx$ns zsd);;`K3k4sS3&Yc_l@eNu?#3`FSxOiOJa|`AMloX{p5}Zuvz{sp*+{d8tLkV42jS z)Wo8ajF|ZN%)HE!_;|g7%3mBdx%nxjIjMFP4*{R(fd;jcxE0iePJt7p-7VBBU`hn#JyHIy)&eD1_3M zO$l^w25g}xOYsNvZ$$AB_9T=RJQM=nJoQahOMJ|G^WOKqx9`nkzo$}31oHPMcK%?5 zeyQL_jBDreBRB_$B8DhtXq!;&J=wraqx!CVe&Fj*74{GSd*YFHigG5~Xc5CRla^N>J2EMu_#5Pj9wQP!$2Jn{G&CZzo^ zf4}0@ge@JH*}fDG-?8siDh1aq`2OO`+}cXkmY$uTk7?VUa7!|`dZ9LaVJS1BjCw$% zt*u1*gFMaRNO!o*>O!$1q8db&%Y;Ln68F_UY}>wiu~gW6US-_&Azx;8+2hcEt0oya zFTpg>@8NXtIvfvY!|_(FS!fj+OWn+9I0g^^jpcK5I1umZjXIzK>6)2v{?wf4m=j%V zB-ENoz|!NLVH-{xw`bdn?YmzRaoi#HCGhSu@gMsr?}o%u6tDF)|!p zt;xtx`>w`IGODn8`2&ej_<~4-xw0O)9<9A%3t|#N_2>8=n4XR??vWup8)u%f8)VY-kjHcN#Kc_yWnweInvDhU;ji*5_$hF5#lGA6&=@T+@MrJxU Nr)MH^2TJ<`{R3o1-%kJl literal 0 HcmV?d00001 diff --git a/Hackerearth/tests/__pycache__/test_time_conversion.cpython-311-pytest-8.4.2.pyc b/Hackerearth/tests/__pycache__/test_time_conversion.cpython-311-pytest-8.4.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7b3f8f1b614634182db815e53471b5aaf0fbf711 GIT binary patch literal 3518 zcmeGeO>f*(@IBl6-E2R&wDiChK@&?T?55d-SWQG}LA_9rxJ8jHXYEbg`b+P5OA>Y^ zgt+!h51d0*{R8|1u4&au$R{LDy+z6`CuZKWEjthny(Y7MnO+M0T(vDru>|A^5-3Xij$Ky+huNNo+ZhswSNc3?=bD=~Ub;c+hC2g!>} zOr8>cqh!01O~n}j?{b8!yrP;Zp1mTV5KVCh`I^(aKSPU_BRE4#DQnr)U$s5(G|}vu zT_0;M64~zsI;DHvkLRM@MV&W)NQusB2dS>k=kUFtbG$}$%)kyT7H@Ch$#8*9ytO8nNU!aDw3}QO z2N(IUBg>CGhjqX?UY=v92INQb=li!0wf?iU=byZ6&Ax8U0&`#hI&94z7_VA=B*pVa z>%Y$ERER1-zRYH%O3uQRlssF@W&aZ7N)Ujsllp1R7TE(Mw;&w?E)tuj8Y0tzFbvpjNGfa; z*+q)MDM&b{Dc0>7y}ofr7PFLo=M-ya#Vo+C$YXPGw4w;+d8S`V>RIc>uEBJ2!<5b1 zyzG~tkC|uA_sor<@ybO>EtRn=xaKByI%z*Mf2xU*^|u3RqLPYS7lBM=F%@O^q<+^A x?UCoKu}?u0Ivc`w03E56(!a3J`S0H$SvvI`X_PJ str: + """Convert 12-hour time string (hh:mm:ssAM/PM) to 24-hour format.""" + hour = int(s[:2]) + meridian = s[8:] + # Special-case '12AM' -> 0, '12PM' -> 12 (not 24) + if hour == 12: + hour = 0 + if meridian == 'PM': + hour += 12 + return f"{hour:02d}{s[2:8]}" + + +if __name__ == "__main__": + # simple CLI for manual testing + s = input().strip() + print(timeConversion(s)) +# ...new file... \ No newline at end of file