From f8e33571fa4056539f875270299cdc1cafee3922 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sun, 12 Oct 2025 14:28:33 +0000 Subject: [PATCH] feat: Implement longest_positive_streak function and tests --- .github/workflows/pytest.yml | 23 +++++++ __pycache__/streak.cpython-312.pyc | Bin 0 -> 765 bytes streak.py | 23 +++++++ .../test_streak.cpython-312-pytest-8.4.2.pyc | Bin 0 -> 7867 bytes tests/test_streak.py | 56 ++++++++++++++++++ 5 files changed, 102 insertions(+) create mode 100644 .github/workflows/pytest.yml create mode 100644 __pycache__/streak.cpython-312.pyc create mode 100644 streak.py create mode 100644 tests/__pycache__/test_streak.cpython-312-pytest-8.4.2.pyc create mode 100644 tests/test_streak.py diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml new file mode 100644 index 0000000..883b28e --- /dev/null +++ b/.github/workflows/pytest.yml @@ -0,0 +1,23 @@ +name: Pytest + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.8", "3.9", "3.10"] + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pytest + - name: Test with pytest + run: | + PYTHONPATH=. pytest \ No newline at end of file diff --git a/__pycache__/streak.cpython-312.pyc b/__pycache__/streak.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d15bd29819ded6eca5ea6d09179ef2ed0e1da782 GIT binary patch literal 765 zcmZ`%&1(}u6o0cb4U#Wy+N4Bnx(5;V()Okl5sEz($w9?KK+3v1*(}{`!pv+jWeYiY zXr)MR_84!97q9*eUX)(KieB_myadvdC*N!m@zMt~^FDv??eFd9LLmz%uRr~6Jv9J+ zYGWpBs*G==@&;URNdRrqAOu{46K+(|?^13wnaf_X2JOvRnR8uak%T?;rAk;BwPlhK zTty;uh>lHV4qu9A+{6pP$pOJ*#IOa=ZU7w6n7U+l3qWLI!!`B`=rfLs>K{f-V&emj ztYuPryv*RTcuXFHMfZPXO_T?A;6#C~xHMIZn*k3!)iOKHiPZ@`E|n>wP`jK?D7h0U ze~+7cb`WuyLP#ZiM+H686C8mAmfE4YzM4&=o5GVDsixa$4mQk9GeAZ(q#r8oaUrM4 zk5Y2}%YSm|OxTs%yBee0k$yT8f6258%UVKJe%m}F7knN%l5ClZ2( zYGzYCpU%< zbeJoi%)h!b%wIpXzvfqt>c6TtPaE%QXVtrh+r#DBQGJwyYl|0oD3wndgWB2rI+o|k zUs!pJh)}m!l2N^`A9_OnC<#U0(ys486wx8_+I!_*yW>Uyzb{H?>Q9#|c#S9_00saCVj>td& literal 0 HcmV?d00001 diff --git a/streak.py b/streak.py new file mode 100644 index 0000000..3d628a3 --- /dev/null +++ b/streak.py @@ -0,0 +1,23 @@ +from typing import List + +def longest_positive_streak(nums: List[int]) -> int: + """ + Calculates the length of the longest run of consecutive values + strictly greater than 0. + + Args: + nums: A list of integers. + + Returns: + The length of the longest streak of positive numbers. + """ + max_streak = 0 + current_streak = 0 + for num in nums: + if num > 0: + current_streak += 1 + else: + max_streak = max(max_streak, current_streak) + current_streak = 0 + max_streak = max(max_streak, current_streak) + return max_streak \ No newline at end of file diff --git a/tests/__pycache__/test_streak.cpython-312-pytest-8.4.2.pyc b/tests/__pycache__/test_streak.cpython-312-pytest-8.4.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5aa48e448ec17ed8e16fa8de49389a3c0d0708d4 GIT binary patch literal 7867 zcmeHMO-$TI6t;I~mt_qkq-vT-k!nH$Z1@R(;U{H7NR>k`IrYTFGT6W-UhigXl0ZR< z+8nALdhMkL)YBp^InrB>t$Nu%7Rgf8Lr<$-qHs&4w(rf@vks6(C2dqCjO^$4p6AVs z?fKrDH~y)$H7P;)`upFOeuzoZuP6j1;xl_oz9|@x=VaW>JyUaBYU+39{c*8N6VND}du161xhSnmE^xf8Nn1X@E*tWC zWKCX+-06{|_2^pE`O!r?R&JAkYg~=UT694+qG+=a+45@`#Kj(2xt$2O#&yeQ?@7+t zQ2Xp9H)U;O5ezug(#b&AxUR*5mV)c&vXOWouS;;sa7Nc7D~VL|>O@k7@+nLN)m_qE zRku|$n|D`KD+4NOy35pdR9)qhL(MIyg9FTj;soB5pGVT^O?h?jVo!c$H02~e^BFa* zA~%?Fdhj}&a#G24HO;l-DTm^V-6UQV>L3|LGKysUd7JJyCUsc@lPL$4leadTnTeOY zo?mfs-s;qA*XDK0(x{oI^SNwZr>55ex3#(DjOAu*$BSDzsNr~LG-oNdY#FSowrJ(% zbW5}Ktm!ptj=o@G3trm{>o$|KZ&I40-h0|Yj%IaNGauwF-PT>Wvl;gk?17JPC@hSG zg|V=3g$um32|h$F3=KN)ktO^Ds`~uwWj&w2j1T89>LYR>zv7)>kIcS|hF^xNV1}r1 zz6A16dYX_fbQMW&RXM*gTv3oMbO0$TU4@R4(z{FW*zpxy612qZxL67CRnogL%++OP zDfmK%FcwUW^zOk}qTMKs0ZezGrc`S4k!6 z=vV6K9qNBVsYBe9>IjlL&L!q`>NxS~1tfTvvKweYF=o(KByB)$QS_Gd43H4a=!YPC z?=wIJgYc2&&`WR+!-?}1kcZMUfK|FkZUC%`ol_MB`6ul_ic0!Pdr7&mOYqq76$&Y2WqGswXj&IeJfjteu|iG;xj;w9rQsdi2vB!G>N6hbe;YpVYNk%ots-vjP-LkliU?VQ~J$}n_v z8csTZ%3LgyeL3#0bodhqcQU1eZ>rJhbMh~B!kX>c$MOX?2PSu~Jexk+vb|1Wm zqfg0m%y08vG}AJ(rrk*V=_s^)4o-j31G&V-t_|?qedxqTDoQu7g&`nCrMoaxQu=lY z9y`8*OM;e|9TzJhzDoKwM!34nECpW}62^k5k-lS$_>=#ga^ay3iD1ctE?i&)d}{yU zI2l5SVD@lyoT!K4=Q(mGp0na&?(m3cfHSj0IC8{eOd%%)HYFBMM6p!pXM3b(euu z0XO+f)wB(N`4eZ$9}XH8VfLjAEN?h+ws4xGiES%uu#X0PYtT2HfbY=*=UyYp9xsw9 zmSm4r6y&!d+)Ndf@ofk&whk@Y@h?{6+;+BU8s1 zLZGnnPDPxLkAk5&b1`Gvuxt}ZIt)LUTyS)~9+Ld^+Y3k%BcLBaFD$8;#O_|6SsX_K zoZN3|B)EBC7SHEwSI^)ah1F9w^8j~US52COIA9y9Z7#wejeF+4gt&<|<}q7KHTI9# z`l=hJ7>g1|4hv^kSYRX3U?f^F5{IUtaZE-+yRTP^WSRwr$%=yfwhpAIT;0}73Tz4C zvEwVaBxs2laOfyKOPI-yozY;wKgY?d7{7=*X{}}{( z-2>FTPctt3RT3(%$=6ZbB=h3j#EbKw%zkOHe>rUDnQf*~+$dl<8O6mWi