From b8cf63ebe3835e5af824c5ee2ea61144ea312f20 Mon Sep 17 00:00:00 2001 From: tfohrmann Date: Wed, 16 Nov 2022 13:36:11 +0100 Subject: [PATCH 1/3] Small increase to maximum input value. --- printNumbers/parameters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/printNumbers/parameters.py b/printNumbers/parameters.py index aebe0c3..0ea9e64 100755 --- a/printNumbers/parameters.py +++ b/printNumbers/parameters.py @@ -26,7 +26,7 @@ CONST_VERSION = 'V1.0' CONST_VERSION_STRING = '+ + PrintNumbers ' + CONST_VERSION + ' (Software Development in Science) + +' CONST_DEF_OPERAND_VAL = 10 -CONST_MAX_OPERAND_VAL = 20 +CONST_MAX_OPERAND_VAL = 22 CONST_FUNC_CODE_FIBONACCI = 0 CONST_FUNC_CODE_FACTORIAL = 1 From 8b50a53853dd6f5bb006920940ce4bfa6f56aa97 Mon Sep 17 00:00:00 2001 From: tfohrmann Date: Thu, 17 Nov 2022 12:30:01 +0100 Subject: [PATCH 2/3] Implement the Gamma function and some simple unit test cases. --- .../__pycache__/docopt.cpython-39.pyc | Bin 0 -> 21117 bytes .../__pycache__/parameters.cpython-39.pyc | Bin 0 -> 2162 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 180 bytes .../__pycache__/factorial.cpython-39.pyc | Bin 0 -> 367 bytes .../__pycache__/fibonacci.cpython-39.pyc | Bin 0 -> 653 bytes .../__pycache__/gamma.cpython-39.pyc | Bin 0 -> 365 bytes printNumbers/functions/gamma.py | 29 ++++++++++ printNumbers/parameters.py | 3 + printNumbers/printNumbers.py | 7 ++- printNumbers/unittests/test_gamma.py | 53 ++++++++++++++++++ 10 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 printNumbers/__pycache__/docopt.cpython-39.pyc create mode 100644 printNumbers/__pycache__/parameters.cpython-39.pyc create mode 100644 printNumbers/functions/__pycache__/__init__.cpython-39.pyc create mode 100644 printNumbers/functions/__pycache__/factorial.cpython-39.pyc create mode 100644 printNumbers/functions/__pycache__/fibonacci.cpython-39.pyc create mode 100644 printNumbers/functions/__pycache__/gamma.cpython-39.pyc create mode 100755 printNumbers/functions/gamma.py create mode 100755 printNumbers/unittests/test_gamma.py diff --git a/printNumbers/__pycache__/docopt.cpython-39.pyc b/printNumbers/__pycache__/docopt.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2fadf1fcc66e5ad6d02bdbaa256daad55556fd74 GIT binary patch literal 21117 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 W$Ma9*^ZAi{F@L0R2x%67DE+@iQI9+T literal 0 HcmV?d00001 diff --git a/printNumbers/__pycache__/parameters.cpython-39.pyc b/printNumbers/__pycache__/parameters.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4da45b21918d499337bc724525759ac3d7e61ac0 GIT binary patch literal 2162 zcma)7Ur*yk5a0E`IDr6n$CZOhXjN71St#Us4^@S7SJDJfq{HC|hfaR6jCTX(5<6Wx zT+gCU;e)h~d?mm3iLcP7&aM+efT~?<$20b>J@fm`%zEW=3BmY&?ZPLZ{UwaMLjz+Q zX8aQfiX22SLo0|XE6BlAbrh;OD%Bm08jem2jSwx z0TbO|Aruh4Fz*f(jBS|lM-WVSiNH%tl`90Es#Jr!#&oJv;|h(iV=&{qKnu5)p8F4P zOlHEHl88oFbdJu$-XbkSLvq#UuD{C)(SUI;q}gize)ogja2xIBj=S6X zrES+6jaF9f4nsc)qOcWG_FJ~*PJMFSm?cy5TFJDS^}5cS->2__kk$EVe2w@bIQaMb z>W3J@s3t+L*Nx72-wVTPGxCRmiMV=j)~rrA0*YGUn3(F|4wKcvEgYMJFPZ7OK^P>i z`>lY%0D-UpSNd$~)8=H&zvH(J`v5;o@hWg2a0FdhMSMNSGh7E-1$#5m1is+{*c#Zi zL>IO|+0yN_SR14HHl3?fy1_{ldcGe>!}F7f2VO5NR4S)lzwcQ_rb3GHBK(|-yyJ5q z9^s+hIBFlZfU7ZuQ;PQL`}=iX7JCK4xmW_tS-eM#1rOr|5C|_|^Y%*DW^kI}(ih1; z8A2CRrklX|5}iZPya1|&v*nqT7=v()x%lHf*JQk};dw06SxKMXabdjk0aKzs$Y0k$ z5j=gu@zNzu&?k+*PJpWfjTDSPQxoVFBUS492r3{^eg`&hSu$)c$|kMsa31k3($3SL zM8kwcT>_Yeo#f-_j1kJZ-msUD3$Hh1AnIHUXcs7Ytm#97VW4S%gi3c&>^1lV2 zO5k*m%)?C}`w<=Xgg)=OzYe`#{)Rsh?udlS%mEj*mVA*u zWd>9}95K>WzAjcx`-#*g`kg2h)$k`ZaRB0C79f$r5X_*-=(m!g2qcUkensks7N-^! z>z8Ea|ZRCzs}?=9Lud2V}VD2j{1ilqVLYx}=tQ<^?BbrsgH5>K7Dc x=9T!B<|ctOrAP^&ef(^vP4`Rv6 z#9v_I9H`VM-SfTsw5=A4IWXQoy?z-1dpKe37>|cY67}O+ z`J$iYN_$78suIx)`~aHp=%0VMyqHpDOk;=^F{$7zy?cF72 zy0oaRY^X%P?&{mnoOh^w>5#qcl4bMI&n~v=C_E+n225z5If*E!!5{9iLwlU)rzf>D NU1d)XSq+`j=obY)RiOX? literal 0 HcmV?d00001 diff --git a/printNumbers/functions/__pycache__/fibonacci.cpython-39.pyc b/printNumbers/functions/__pycache__/fibonacci.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d319a74032ee51f54ffc2225da7d6d110f534e9b GIT binary patch literal 653 zcmY*X!EV$r5cMS4DpXquD%2t_^?^eptrFl^p$e(13NA}U)XSnCT-)15Bu;8OMXl1) z_Cr9N_!y2{a^=)t;KbPJqB4pnGcV)kndh*LjdgrGBSL<=$ayv1dnq7y{G zEtwM$h!Ec(qMRfn4)|$hE=C@5fXnQn>u}F!(BqEe#QN+RS%QxO7i}XhLgb0ApRZH2 zcd~4xri)f_ThuD`;GN^WbIr^W=r<3G(^@gki;t4G+F%)?pnecN!jeDp?ASL=cnsS8 ePqSnY#U~F)oF>{c#c!%ww58nlTDpskAN>WsIgyJ1 literal 0 HcmV?d00001 diff --git a/printNumbers/functions/__pycache__/gamma.cpython-39.pyc b/printNumbers/functions/__pycache__/gamma.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..47fe1a2be825ba3bea2840a950a9e475f41032ba GIT binary patch literal 365 zcmYjNu}TCn5S{GZ>Tz(Lh*+)NrO;p}hl=2V2yzOG7T3ij>n?0&mu&V#vGgBowe**^ zwelCNoU9i2U?%hCW%829$z%+KtKF4)8vuL-vW|$z8AY>2NrPr3EI~(l@Cr+&Sqgmk zO$sa&3(G%3O{c**MH37>yt5bh2>aRd(KsQ@YU!j+aF$%x#!1wFU1xmjsCgl+l~d#= zQ`|q~d%eh`ZfK>?yZ9lfoOKL8!Np|ob0=;a;~L?MvdpU7S&1m-m1?a)--w%hF48LV zkJ6dBSzThP3WLgs+7;**t-TM!S&PaS6*i(bIH;exxWC9wcu4pQh}|Y-9=X8!y7ym8 U8zgk2V_WIAG^g9d`pHrB3nVvEr2qf` literal 0 HcmV?d00001 diff --git a/printNumbers/functions/gamma.py b/printNumbers/functions/gamma.py new file mode 100755 index 0000000..90e7596 --- /dev/null +++ b/printNumbers/functions/gamma.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# +# gamma.py +# +# This file is part of printNumbers. +# +# Copyright (C) 2017 G. Trensch, Simulation & Datalab Neuroscience, JSC, FZ Juelich +# +# printNumbers is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# printNumbers is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with printNumbers. If not, see . + +import math + +def Gamma(n): + ''' + :param n: Operand + :return: Gamma(n)=(n-1)! + ''' + return(math.gamma(n)) diff --git a/printNumbers/parameters.py b/printNumbers/parameters.py index 0ea9e64..14e483f 100755 --- a/printNumbers/parameters.py +++ b/printNumbers/parameters.py @@ -29,6 +29,7 @@ CONST_MAX_OPERAND_VAL = 22 CONST_FUNC_CODE_FIBONACCI = 0 CONST_FUNC_CODE_FACTORIAL = 1 +CONST_FUNC_CODE_GAMMA = 2 class Parameters(object): @@ -43,6 +44,8 @@ def __setParameters(self, cmdLineArgs): self.functionIndex = CONST_FUNC_CODE_FIBONACCI elif cmdLineArgs['--factorial']: self.functionIndex = CONST_FUNC_CODE_FACTORIAL + elif cmdLineArgs['--gamma']: + self.functionIndex = CONST_FUNC_CODE_GAMMA @property def operand(self): diff --git a/printNumbers/printNumbers.py b/printNumbers/printNumbers.py index 9f9ef0e..d3de595 100755 --- a/printNumbers/printNumbers.py +++ b/printNumbers/printNumbers.py @@ -27,24 +27,27 @@ """ Usage: printNumbers.py -h --help - printNumbers.py [--fibonacci|--factorial] + printNumbers.py [--fibonacci|--factorial|--gamma] Options: -h --help Print usage. --fibonacci Print the fibonacci sequence. --factorial Print the factorial. + --gamma Print the Gamma function. """ from docopt import docopt from parameters import * from functions.fibonacci import * from functions.factorial import * +from functions.gamma import * # # FUNCTION TABLE # functionTable = { CONST_FUNC_CODE_FIBONACCI : FibonacciSequence, CONST_FUNC_CODE_FACTORIAL : Factorial, + CONST_FUNC_CODE_GAMMA : Gamma } # @@ -67,3 +70,5 @@ print('fib(' + str(params.operand) + ') =', result) elif params.functionIndex == CONST_FUNC_CODE_FACTORIAL: print(str(params.operand) + '! =', str(result)) + elif params.functionIndex == CONST_FUNC_CODE_GAMMA: + print('Gamma(' + str(params.operand) + ') = ', result) diff --git a/printNumbers/unittests/test_gamma.py b/printNumbers/unittests/test_gamma.py new file mode 100755 index 0000000..f8423d0 --- /dev/null +++ b/printNumbers/unittests/test_gamma.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# +# test_gamma.py +# +# This file is part of PrintNumbers. +# +# Copyright (C) 2017 G. Trensch, Simulation & Datalab Neuroscience, JSC, FZ Juelich +# +# PrintNumbers is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# PrintNumbers is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with PrintNumbers. If not, see . + +# +# Unit tests: 'gamma'. +# + +import sys, os +sys.path.append(os.path.join(os.path.dirname(__file__), '..')) + +import unittest +from functions.gamma import * + +class TestGamma(unittest.TestCase): + + def test_value_1(self): + self.assertEqual(Gamma(1), 1) + + def test_value_2(self): + self.assertEqual(Gamma(2), 1) + + def test_value_21(self): + self.assertEqual(Gamma(21), 2432902008176640000) + + +def suite(): + suite = unittest.makeSuite(TestGamma, 'test') + return suite + +def run(): + runner = unittest.TextTestRunner(verbosity = 2) + runner.run(suite()) + +if __name__ == "__main__": + run() From a7b39a3cf66ff0940a97a70045f2556f687a74d5 Mon Sep 17 00:00:00 2001 From: jlroquem Date: Thu, 17 Nov 2022 12:40:53 +0100 Subject: [PATCH 3/3] first commit --- printNumbers/functions/gamma.py | 2 ++ printNumbers/unittests/test_factorial.py | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/printNumbers/functions/gamma.py b/printNumbers/functions/gamma.py index 90e7596..5b96a62 100755 --- a/printNumbers/functions/gamma.py +++ b/printNumbers/functions/gamma.py @@ -27,3 +27,5 @@ def Gamma(n): :return: Gamma(n)=(n-1)! ''' return(math.gamma(n)) + +#To check if the comment shows up later diff --git a/printNumbers/unittests/test_factorial.py b/printNumbers/unittests/test_factorial.py index 61ff579..0bbdfc2 100755 --- a/printNumbers/unittests/test_factorial.py +++ b/printNumbers/unittests/test_factorial.py @@ -42,7 +42,9 @@ def test_value_2(self): def test_value_20(self): self.assertEqual(Factorial(20), 2432902008176640000) - + + def test_jane(self): + self.assertEqual(Factorial(5),3) def suite(): suite = unittest.makeSuite(TestFactorial, 'test') @@ -54,3 +56,4 @@ def run(): if __name__ == "__main__": run() +