From 3d81888d528b2534f8869a5fdcddc87460b91d26 Mon Sep 17 00:00:00 2001 From: paramonovvlad <144106023+paramonovvlad@users.noreply.github.com> Date: Tue, 12 Sep 2023 16:04:26 +0300 Subject: [PATCH 01/12] new file added --- rectangle.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 rectangle.py diff --git a/rectangle.py b/rectangle.py new file mode 100644 index 0000000000..beed4b8ca2 --- /dev/null +++ b/rectangle.py @@ -0,0 +1,5 @@ +def area(a, b): + return a * b + +def perimeter(a, b): + return a + b \ No newline at end of file From 67f3bf28cefd6043fdda42749afe974e2302bc4d Mon Sep 17 00:00:00 2001 From: paramonovvlad <144106023+paramonovvlad@users.noreply.github.com> Date: Tue, 12 Sep 2023 16:19:53 +0300 Subject: [PATCH 02/12] bug fixed --- rectangle.py | 2 +- triangle.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 triangle.py diff --git a/rectangle.py b/rectangle.py index beed4b8ca2..daa623b2c4 100644 --- a/rectangle.py +++ b/rectangle.py @@ -2,4 +2,4 @@ def area(a, b): return a * b def perimeter(a, b): - return a + b \ No newline at end of file + return 2*(a + b) \ No newline at end of file diff --git a/triangle.py b/triangle.py new file mode 100644 index 0000000000..3b1c1e3ce3 --- /dev/null +++ b/triangle.py @@ -0,0 +1,6 @@ + +def area(a, h): + return a * h / 2 + +def perimeter(a, b, c): + return a + b + c From fc6226649acbcafc3933d97b15d5fde3bd2b5c20 Mon Sep 17 00:00:00 2001 From: paramonovvlad Date: Sun, 29 Oct 2023 20:28:37 +0300 Subject: [PATCH 03/12] readme changed --- docs/README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 63f8727939..aacb5870d0 100644 --- a/docs/README.md +++ b/docs/README.md @@ -7,4 +7,15 @@ ## Perimeter - Circle: P = 2πR - Rectangle: P = 2a + 2b -- Square: P = 4a \ No newline at end of file +- Square: P = 4a + +| Номер теста | Предусловия | Последовательность действий | Полученный результат | Ожидаемый результат | Вердикт | +|-------------|-------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|----------------------------------------|--------------------------------------|--------------------| +| 1 | Даны две функции, возвращающие площадь и периметр круга при неотрицательном аргументе | Запускаем обе функции с аргументом 3 | 28.274333882308138 , 18.84955592153876 | 28.274333882308138 18.84955592153876 | Результаты совпали | +| | | Запускаем обе функции с аргументом 5 | 78.53981633974483 31.41592653589793 | 78.53981633974483 31.41592653589793 | Результаты совпали | +| 2 | Даны две функции, возвращающие площадь и периметр прямоугольника при неотрицательных аргументах | Запускаем обе функции с аргументами 5,7 | 35, 24 | 35, 24 | Результаты совпали | +| | | Запускаем обе функции с аргументами 6,9 | 54, 30 | 54, 30 | Результаты совпали | +| 3 | Даны две функции, возвращающие площадь и периметр прямоугольника при неотрицательном аргументе | Запускаем обе функции с аргументом 5 | 25 | 25 | Результаты совпали | +| | | Запускаем обе функции с аргументом 7 | 49 | 49 | Результаты совпали | +| 4 | Даны две функции, возвращающие площадь и периметр треугольника при неотрицательных аргументах | Запускаем обе функции с аргументами 3,9,6,5 - где 3,9,6 - длины сторон, а 5 - высота, проведенная к основанию 3 | 7.5, 18 | 7.5, 18 | Результаты совпали | +| | | Запускаем обе функции с аргументами 5,3,6,9 - где 5,3,6 - длины сторон, а 9 - высота, проведенная к основанию 5 | 22.5, 14 | 22.5, 14 | Результаты совпали | \ No newline at end of file From 3a122e39ba1a8e3b442a23ba224a4349e8b673de Mon Sep 17 00:00:00 2001 From: paramonovvlad Date: Thu, 14 Dec 2023 01:13:16 +0300 Subject: [PATCH 04/12] unittests --- .DS_Store | Bin 0 -> 8196 bytes docs/.idea/.gitignore | 8 ++ docs/.idea/docs.iml | 8 ++ .../inspectionProfiles/profiles_settings.xml | 6 ++ docs/.idea/misc.xml | 4 + docs/.idea/modules.xml | 8 ++ docs/.idea/vcs.xml | 6 ++ lab4isrpo.py | 73 ++++++++++++++++++ 8 files changed, 113 insertions(+) create mode 100644 .DS_Store create mode 100644 docs/.idea/.gitignore create mode 100644 docs/.idea/docs.iml create mode 100644 docs/.idea/inspectionProfiles/profiles_settings.xml create mode 100644 docs/.idea/misc.xml create mode 100644 docs/.idea/modules.xml create mode 100644 docs/.idea/vcs.xml create mode 100644 lab4isrpo.py diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f8b8c2d9343601cd94d4931f132ad6069a5d0982 GIT binary patch literal 8196 zcmeHM%Wl&^6upxg>L^775m1(v*j6PZZFxx$LRqi^5mb->1-p)lg|UO}G@vLV?0EbG z;t!BmAXfYUd;S6O5#h|Ek)21CRYk>IY37b+?zuB_uH*4_h=?`1?ggSU5t%4l7YnFn z2p{KVN^+{_Bs2q_Zu{YmGy|G}e}Ms<*<8#y=e``(wPrvw z@Lw{(pAQxa*L9_bQj13iDv<&}8|W5-ws`f2ws;40UFo6J=z%Z^g_cmJQVgat2PWYd zuPghZ)Dlii%nUzjW~MR}rVR{FCU#_CP zUfUcD^5&Uy=da#tJ@;P(;Rm@@rXCk`LSB#Sk7$kev)7CQKMeSOxqY5?z($1Hr#86h z(CaKSbOTlu$;@bk_NffwvsEI?xMEy0t{az(J2O2*K)uOu>rx0W@x)ADV3&=7vP;F_ z+o8wcY`@PVaItnk1m0ogkhu|fk3oafZYCnI0_JUUXdQ8g5s41CnH7hx@bNpv;tFir zU@-wYz&$-Dez{M;Jxs-~Gy}Il6mvh|=T*v29;kz)@siNiMp~^Z#4(zyBY_ zt?4yu1~dZ;GQf1P!{<3>+#0e*w0+Hwyp& literal 0 HcmV?d00001 diff --git a/docs/.idea/.gitignore b/docs/.idea/.gitignore new file mode 100644 index 0000000000..13566b81b0 --- /dev/null +++ b/docs/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/docs/.idea/docs.iml b/docs/.idea/docs.iml new file mode 100644 index 0000000000..d0876a78d0 --- /dev/null +++ b/docs/.idea/docs.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/docs/.idea/inspectionProfiles/profiles_settings.xml b/docs/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000000..105ce2da2d --- /dev/null +++ b/docs/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/docs/.idea/misc.xml b/docs/.idea/misc.xml new file mode 100644 index 0000000000..d56657add3 --- /dev/null +++ b/docs/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/.idea/modules.xml b/docs/.idea/modules.xml new file mode 100644 index 0000000000..6049cfe013 --- /dev/null +++ b/docs/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/docs/.idea/vcs.xml b/docs/.idea/vcs.xml new file mode 100644 index 0000000000..6c0b863585 --- /dev/null +++ b/docs/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/lab4isrpo.py b/lab4isrpo.py new file mode 100644 index 0000000000..d6da1740f5 --- /dev/null +++ b/lab4isrpo.py @@ -0,0 +1,73 @@ +import unittest +from circle import area +from circle import perimeter +from rectangle import area +from rectangle import perimeter +from square import area +from square import perimeter +from triangle import area +from triangle import perimeter +from math import pi + +class CircleTestCase(unittest.TestCase): + def test_int(self): + self.assertEqual(area(3),pi) + self.assertEqual(perimeter(3),2*pi*3) + + def test_negativenumbers(self): + self.assertEqual(area(-3),pi*-3**2) + self.assertEqual(perimeter(-3),2*pi*-3) + + def test_str(self): + self.assertEqual(area('abc'), pi * 'abc' ** 2) + self.assertEqual(perimeter('abc'), 2 * pi * 'abc') + +class RectangleTestCase(unittest.TestCase): + def test_int(self): + self.assertEqual(area(5,3),5*3) + self.assertEqual(perimeter(5,3),2*(5+3)) + + def test_negativenumbers(self): + self.assertEqual(area(-5,3),-5*3) + self.assertEqual(perimeter(-5,3),2*(-5+3)) + + def test_str(self): + self.assertEqual(area('bcd','bcd'),'bcd'*'bcd') + self.assertEqual(perimeter('bcd','bcd'),2*('bcd'+'bcd')) + + +class SquareTestCase(unittest.TestCase): + def test_int(self): + self.assertEqual(area(7),7*7) + self.assertEqual(perimeter(7),4*7) + + def test_negativenumbers(self): + self.assertEqual(area(-7),-7*-7) + self.assertEqual(perimeter(-7),4*-7) + def test_str(self): + self.assertEqual(area('cde','cde'),'cde'*'cde') + self.assertEqual(perimeter('cde','cde'),4*('cde'+'cde')) + +class TriangleTestCase(unittest.TestCase): + def test_int(self): + a = 9 + b = 10 + c = 11 + h = 13 + self.assertEqual(area(a,h),a*h/2) + self.assertEqual(perimeter(a,b,c),a+b+c) + + def test_negativenumbers(self): + a = -9 + b = 10 + c = -11 + h = 13 + self.assertEqual(area(a,h),a*h/2) + self.assertEqual(perimeter(a,b,c),a+b+c) + def test_str(self): + a = 'def' + b = 'def' + c = 'def' + h = 'def' + self.assertEqual(area('def','def'),'def'*'def'/2) + self.assertEqual(perimeter('def','def','def'),'def'+'def'+'def') From c5c90af436e8fff3872d8d63ff6032f51b818a77 Mon Sep 17 00:00:00 2001 From: paramonovvlad Date: Thu, 14 Dec 2023 10:59:24 +0300 Subject: [PATCH 05/12] add unittests --- .DS_Store | Bin 8196 -> 0 bytes docs/.idea/misc.xml | 4 --- lab4isrpo.py | 73 -------------------------------------------- testcircle.py | 21 +++++++++++++ testrectangle.py | 18 +++++++++++ testsquare.py | 17 +++++++++++ testtriangle.py | 29 ++++++++++++++++++ 7 files changed, 85 insertions(+), 77 deletions(-) delete mode 100644 .DS_Store delete mode 100644 docs/.idea/misc.xml delete mode 100644 lab4isrpo.py create mode 100644 testcircle.py create mode 100644 testrectangle.py create mode 100644 testsquare.py create mode 100644 testtriangle.py diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index f8b8c2d9343601cd94d4931f132ad6069a5d0982..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHM%Wl&^6upxg>L^775m1(v*j6PZZFxx$LRqi^5mb->1-p)lg|UO}G@vLV?0EbG z;t!BmAXfYUd;S6O5#h|Ek)21CRYk>IY37b+?zuB_uH*4_h=?`1?ggSU5t%4l7YnFn z2p{KVN^+{_Bs2q_Zu{YmGy|G}e}Ms<*<8#y=e``(wPrvw z@Lw{(pAQxa*L9_bQj13iDv<&}8|W5-ws`f2ws;40UFo6J=z%Z^g_cmJQVgat2PWYd zuPghZ)Dlii%nUzjW~MR}rVR{FCU#_CP zUfUcD^5&Uy=da#tJ@;P(;Rm@@rXCk`LSB#Sk7$kev)7CQKMeSOxqY5?z($1Hr#86h z(CaKSbOTlu$;@bk_NffwvsEI?xMEy0t{az(J2O2*K)uOu>rx0W@x)ADV3&=7vP;F_ z+o8wcY`@PVaItnk1m0ogkhu|fk3oafZYCnI0_JUUXdQ8g5s41CnH7hx@bNpv;tFir zU@-wYz&$-Dez{M;Jxs-~Gy}Il6mvh|=T*v29;kz)@siNiMp~^Z#4(zyBY_ zt?4yu1~dZ;GQf1P!{<3>+#0e*w0+Hwyp& diff --git a/docs/.idea/misc.xml b/docs/.idea/misc.xml deleted file mode 100644 index d56657add3..0000000000 --- a/docs/.idea/misc.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/lab4isrpo.py b/lab4isrpo.py deleted file mode 100644 index d6da1740f5..0000000000 --- a/lab4isrpo.py +++ /dev/null @@ -1,73 +0,0 @@ -import unittest -from circle import area -from circle import perimeter -from rectangle import area -from rectangle import perimeter -from square import area -from square import perimeter -from triangle import area -from triangle import perimeter -from math import pi - -class CircleTestCase(unittest.TestCase): - def test_int(self): - self.assertEqual(area(3),pi) - self.assertEqual(perimeter(3),2*pi*3) - - def test_negativenumbers(self): - self.assertEqual(area(-3),pi*-3**2) - self.assertEqual(perimeter(-3),2*pi*-3) - - def test_str(self): - self.assertEqual(area('abc'), pi * 'abc' ** 2) - self.assertEqual(perimeter('abc'), 2 * pi * 'abc') - -class RectangleTestCase(unittest.TestCase): - def test_int(self): - self.assertEqual(area(5,3),5*3) - self.assertEqual(perimeter(5,3),2*(5+3)) - - def test_negativenumbers(self): - self.assertEqual(area(-5,3),-5*3) - self.assertEqual(perimeter(-5,3),2*(-5+3)) - - def test_str(self): - self.assertEqual(area('bcd','bcd'),'bcd'*'bcd') - self.assertEqual(perimeter('bcd','bcd'),2*('bcd'+'bcd')) - - -class SquareTestCase(unittest.TestCase): - def test_int(self): - self.assertEqual(area(7),7*7) - self.assertEqual(perimeter(7),4*7) - - def test_negativenumbers(self): - self.assertEqual(area(-7),-7*-7) - self.assertEqual(perimeter(-7),4*-7) - def test_str(self): - self.assertEqual(area('cde','cde'),'cde'*'cde') - self.assertEqual(perimeter('cde','cde'),4*('cde'+'cde')) - -class TriangleTestCase(unittest.TestCase): - def test_int(self): - a = 9 - b = 10 - c = 11 - h = 13 - self.assertEqual(area(a,h),a*h/2) - self.assertEqual(perimeter(a,b,c),a+b+c) - - def test_negativenumbers(self): - a = -9 - b = 10 - c = -11 - h = 13 - self.assertEqual(area(a,h),a*h/2) - self.assertEqual(perimeter(a,b,c),a+b+c) - def test_str(self): - a = 'def' - b = 'def' - c = 'def' - h = 'def' - self.assertEqual(area('def','def'),'def'*'def'/2) - self.assertEqual(perimeter('def','def','def'),'def'+'def'+'def') diff --git a/testcircle.py b/testcircle.py new file mode 100644 index 0000000000..59c4f3f75f --- /dev/null +++ b/testcircle.py @@ -0,0 +1,21 @@ +import unittest +from circle import area +from circle import perimeter +from math import pi + + +class CircleTestCase(unittest.TestCase): + def test_int(self): + self.assertEqual(area(3),pi*3**2) + self.assertEqual(perimeter(3),2*pi*3) + + def test_negativenumbers(self): + self.assertEqual(area(-3),'error') + self.assertEqual(perimeter(-3),'error') + + def test_str(self): + self.assertEqual(area('abc'), 'error') + self.assertEqual(perimeter('abc'), 'error') + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/testrectangle.py b/testrectangle.py new file mode 100644 index 0000000000..a31060bee9 --- /dev/null +++ b/testrectangle.py @@ -0,0 +1,18 @@ +import unittest +from rectangle import area +from rectangle import perimeter +class RectangleTestCase(unittest.TestCase): + def test_int(self): + self.assertEqual(area(5,3),'error') + self.assertEqual(perimeter(5,3),'error') + + def test_negativenumbers(self): + self.assertEqual(area(-5,3),'error') + self.assertEqual(perimeter(-5,3),'error') + + def test_str(self): + self.assertEqual(area('bcd','bcd'),'error') + self.assertEqual(perimeter('bcd','bcd'),'error') + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/testsquare.py b/testsquare.py new file mode 100644 index 0000000000..827e339394 --- /dev/null +++ b/testsquare.py @@ -0,0 +1,17 @@ +import unittest +from square import area +from square import perimeter +class SquareTestCase(unittest.TestCase): + def test_int(self): + self.assertEqual(area(7),7*7) + self.assertEqual(perimeter(7),4*7) + + def test_negativenumbers(self): + self.assertEqual(area(-7),'error') + self.assertEqual(perimeter(-7),'error') + def test_str(self): + self.assertEqual(area('cde','cde'),'error') + self.assertEqual(perimeter('cde','cde'),'error') + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/testtriangle.py b/testtriangle.py new file mode 100644 index 0000000000..4aaa9a9558 --- /dev/null +++ b/testtriangle.py @@ -0,0 +1,29 @@ +import unittest +from triangle import area +from triangle import perimeter +class TriangleTestCase(unittest.TestCase): + def test_int(self): + a = 9 + b = 10 + c = 11 + h = 13 + self.assertEqual(area(a,h),a*h/2) + self.assertEqual(perimeter(a,b,c),a+b+c) + + def test_negativenumbers(self): + a = -9 + b = 10 + c = -11 + h = 13 + self.assertEqual(area(a,h),'error') + self.assertEqual(perimeter(a,b,c),'error') + def test_str(self): + a = 'def' + b = 'def' + c = 'def' + h = 'def' + self.assertEqual(area('def','def'),'error') + self.assertEqual(perimeter('def','def','def'),'error') + +if __name__ == '__main__': + unittest.main() From b964bbcbc0e8f080157dec000ef73ddc5d55c527 Mon Sep 17 00:00:00 2001 From: paramonovvlad Date: Thu, 14 Dec 2023 11:00:15 +0300 Subject: [PATCH 06/12] README update --- docs/README.md | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/docs/README.md b/docs/README.md index aacb5870d0..d1d8a1463f 100644 --- a/docs/README.md +++ b/docs/README.md @@ -9,13 +9,8 @@ - Rectangle: P = 2a + 2b - Square: P = 4a -| Номер теста | Предусловия | Последовательность действий | Полученный результат | Ожидаемый результат | Вердикт | -|-------------|-------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|----------------------------------------|--------------------------------------|--------------------| -| 1 | Даны две функции, возвращающие площадь и периметр круга при неотрицательном аргументе | Запускаем обе функции с аргументом 3 | 28.274333882308138 , 18.84955592153876 | 28.274333882308138 18.84955592153876 | Результаты совпали | -| | | Запускаем обе функции с аргументом 5 | 78.53981633974483 31.41592653589793 | 78.53981633974483 31.41592653589793 | Результаты совпали | -| 2 | Даны две функции, возвращающие площадь и периметр прямоугольника при неотрицательных аргументах | Запускаем обе функции с аргументами 5,7 | 35, 24 | 35, 24 | Результаты совпали | -| | | Запускаем обе функции с аргументами 6,9 | 54, 30 | 54, 30 | Результаты совпали | -| 3 | Даны две функции, возвращающие площадь и периметр прямоугольника при неотрицательном аргументе | Запускаем обе функции с аргументом 5 | 25 | 25 | Результаты совпали | -| | | Запускаем обе функции с аргументом 7 | 49 | 49 | Результаты совпали | -| 4 | Даны две функции, возвращающие площадь и периметр треугольника при неотрицательных аргументах | Запускаем обе функции с аргументами 3,9,6,5 - где 3,9,6 - длины сторон, а 5 - высота, проведенная к основанию 3 | 7.5, 18 | 7.5, 18 | Результаты совпали | -| | | Запускаем обе функции с аргументами 5,3,6,9 - где 5,3,6 - длины сторон, а 9 - высота, проведенная к основанию 5 | 22.5, 14 | 22.5, 14 | Результаты совпали | \ No newline at end of file +--- + +##Results: +- Successful tests: 4 +- Unsuccessful test: 8 \ No newline at end of file From 9012fe6891fa86b090d597d119d395fc24f2bec1 Mon Sep 17 00:00:00 2001 From: paramonovvlad Date: Thu, 14 Dec 2023 14:41:20 +0300 Subject: [PATCH 07/12] unittests changed +delta --- .DS_Store | Bin 0 -> 6148 bytes testcircle.py | 21 +++++++++++++++------ testrectangle.py | 20 ++++++++++++++------ testsquare.py | 16 ++++++++++++---- testtriangle.py | 34 ++++++++++++++++++++++++++-------- 5 files changed, 67 insertions(+), 24 deletions(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fe09453f85669b7528d328729b13fe193686dbb3 GIT binary patch literal 6148 zcmeHK&u`N(6n^dkODKaJK-w`9*J+fFPMWxcG7ek`0;DmOWQ|5dh)a`Fp{i1^z?~!i z0#^?F2i!Pt=PxOrf2<_gMv;&JfuCf5w%_~w;;(fa6A|l<`qzkDBC=5gTIW!mV8SoT zF>C0N3qU63xRdgODCH6QVnSm^0i(d*t$^6O7H!fYB~(=RZ{rZY&ABwWh(%m9&Ifv* ze~1QYk{7Mk7uHy@&YWGfSM8>~A3WjXpa_dm-VKL)qIZw;G&*XB(fuSI_uNajcvgf- z77ryM>Bk6p^dQOleB9-ute;D6pd7YiJ3V)OGHGwOHoUD)d%EFGcG_rP-`bu|9sBZ? zt2gfUo~F+-{#wb-@LrO(rtt{gps`rbi(r_gJQM2`@eUn8jUnokVrVm5F6jFx&)+stR-a(&-B^@2g z={b$S68saCXP;`yuOUYaRKOi_V~%Jdb3>6-&nbohN8KU1ja#AIg7qcbyoLt*;j z!8{pG%vWe?qkvJMs=$isy5ju5efs^sN-{m8fKlL|Qh-^z!EP5z(r4?j#fh`lLwSrM qOvKF;N(w4{9Lt6{iq}!3!RLtv(APLqh!L3i5RfvM$|&$#75E0;Tp?)y literal 0 HcmV?d00001 diff --git a/testcircle.py b/testcircle.py index 59c4f3f75f..1e506ed023 100644 --- a/testcircle.py +++ b/testcircle.py @@ -6,16 +6,25 @@ class CircleTestCase(unittest.TestCase): def test_int(self): - self.assertEqual(area(3),pi*3**2) - self.assertEqual(perimeter(3),2*pi*3) + self.assertAlmostEqual(area(3),round(pi*3**2, 2)) + def test_int(self): + self.assertAlmostEqual(perimeter(3),round(2*pi*3, 2)) def test_negativenumbers(self): - self.assertEqual(area(-3),'error') - self.assertEqual(perimeter(-3),'error') + with self.assertRaises(ValueError): + (area(-3)) + def test_negativenumbers(self): + with self.assertRaises(ValueError): + (perimeter(-3)) + + + def test_str(self): + with self.assertRaises(TypeError): + (area('abc')) def test_str(self): - self.assertEqual(area('abc'), 'error') - self.assertEqual(perimeter('abc'), 'error') + with self.assertRaises(TypeError): + (perimeter('abc')) if __name__ == '__main__': unittest.main() \ No newline at end of file diff --git a/testrectangle.py b/testrectangle.py index a31060bee9..0bfc8d4825 100644 --- a/testrectangle.py +++ b/testrectangle.py @@ -3,16 +3,24 @@ from rectangle import perimeter class RectangleTestCase(unittest.TestCase): def test_int(self): - self.assertEqual(area(5,3),'error') - self.assertEqual(perimeter(5,3),'error') + self.assertEqual(area(5,3),15) + def test_int(self): + self.assertEqual(perimeter(5,3),16) def test_negativenumbers(self): - self.assertEqual(area(-5,3),'error') - self.assertEqual(perimeter(-5,3),'error') + with self.assertRaises(ValueError): + (area(-5, 3)) + def test_negativenumbers(self): + with self.assertRaises(ValueError): + (perimeter(-5, 3)) + + def test_str(self): + with self.assertRaises(TypeError): + (area('bcd','bcd')) def test_str(self): - self.assertEqual(area('bcd','bcd'),'error') - self.assertEqual(perimeter('bcd','bcd'),'error') + with self.assertRaises(TypeError): + (perimeter('bcd', 'bcd')) if __name__ == '__main__': unittest.main() \ No newline at end of file diff --git a/testsquare.py b/testsquare.py index 827e339394..c5814b4369 100644 --- a/testsquare.py +++ b/testsquare.py @@ -4,14 +4,22 @@ class SquareTestCase(unittest.TestCase): def test_int(self): self.assertEqual(area(7),7*7) + def test_int(self): self.assertEqual(perimeter(7),4*7) def test_negativenumbers(self): - self.assertEqual(area(-7),'error') - self.assertEqual(perimeter(-7),'error') + with self.assertRaises(ValueError): + (area(-7)) + + def test_negativenumbers(self): + with self.assertRaises(ValueError): + (perimeter(-7)) def test_str(self): - self.assertEqual(area('cde','cde'),'error') - self.assertEqual(perimeter('cde','cde'),'error') + with self.assertRaises(TypeError): + (area('cde','cde')) + def test_str(self): + with self.assertRaises(TypeError): + (perimeter('cde','cde')) if __name__ == '__main__': unittest.main() \ No newline at end of file diff --git a/testtriangle.py b/testtriangle.py index 4aaa9a9558..af0e5db542 100644 --- a/testtriangle.py +++ b/testtriangle.py @@ -8,6 +8,11 @@ def test_int(self): c = 11 h = 13 self.assertEqual(area(a,h),a*h/2) + def test_int(self): + a = 9 + b = 10 + c = 11 + h = 13 self.assertEqual(perimeter(a,b,c),a+b+c) def test_negativenumbers(self): @@ -15,15 +20,28 @@ def test_negativenumbers(self): b = 10 c = -11 h = 13 - self.assertEqual(area(a,h),'error') - self.assertEqual(perimeter(a,b,c),'error') + with self.assertRaises(ValueError): + (area(a,h)) + + def test_negativenumbers(self): + a = -9 + b = 10 + c = -11 + h = 13 + with self.assertRaises(ValueError): + (perimeter(a, b, c)) + def test_str(self): + a = -9 + b = 10 + c = -11 + h = 13 + self.assertEqual(area('def','def'),TypeError) def test_str(self): - a = 'def' - b = 'def' - c = 'def' - h = 'def' - self.assertEqual(area('def','def'),'error') - self.assertEqual(perimeter('def','def','def'),'error') + a = -9 + b = 10 + c = -11 + h = 13 + self.assertEqual(perimeter('def','def','def'),TypeError) if __name__ == '__main__': unittest.main() From ed64c2e4681b221458580f13eae4b1a2a805d1c7 Mon Sep 17 00:00:00 2001 From: paramonovvlad Date: Mon, 25 Dec 2023 12:47:13 +0300 Subject: [PATCH 08/12] files changed --- testcircle.py | 4 ++-- triangle.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/testcircle.py b/testcircle.py index 1e506ed023..24b16a5446 100644 --- a/testcircle.py +++ b/testcircle.py @@ -6,9 +6,9 @@ class CircleTestCase(unittest.TestCase): def test_int(self): - self.assertAlmostEqual(area(3),round(pi*3**2, 2)) + self.assertAlmostEqual(area(3),28.26, delta=0.01) def test_int(self): - self.assertAlmostEqual(perimeter(3),round(2*pi*3, 2)) + self.assertAlmostEqual(perimeter(3),18.84, delta=0.01) def test_negativenumbers(self): with self.assertRaises(ValueError): diff --git a/triangle.py b/triangle.py index 3b1c1e3ce3..c2dc5c91b3 100644 --- a/triangle.py +++ b/triangle.py @@ -2,5 +2,6 @@ def area(a, h): return a * h / 2 + def perimeter(a, b, c): return a + b + c From dffb90aa0e67dffebbd85cd0bda5198237056d47 Mon Sep 17 00:00:00 2001 From: paramonovvlad Date: Mon, 25 Dec 2023 14:50:22 +0300 Subject: [PATCH 09/12] unittests updated --- .DS_Store | Bin 6148 -> 6148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.DS_Store b/.DS_Store index fe09453f85669b7528d328729b13fe193686dbb3..9eca3cc05de98bae71ab8ac03d252fc2da45ee67 100644 GIT binary patch delta 31 mcmZoMXffEp%qC=LsiR> From 9aff33e180d6390bbdf6793f57fa8f8a1b4d70be Mon Sep 17 00:00:00 2001 From: paramonovvlad Date: Mon, 25 Dec 2023 15:27:40 +0300 Subject: [PATCH 10/12] testtriangle for str was changed --- .DS_Store | Bin 6148 -> 6148 bytes testtriangle.py | 13 +------------ 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/.DS_Store b/.DS_Store index 9eca3cc05de98bae71ab8ac03d252fc2da45ee67..a28f53a1134c1c5cfa75940e87d2e95c0ef29348 100644 GIT binary patch delta 70 zcmZoMXffE}!^*_Ku-T8*jggH31UM)Au`5j8#l`~^o_vB$m)8_1X#5`xfFexnb|48S M_A-#RUF=>009_^$EC2ui delta 70 zcmZoMXffE}!^-sk|7Jf{H%7Mq{}~tp>ob diff --git a/testtriangle.py b/testtriangle.py index af0e5db542..def46ba19b 100644 --- a/testtriangle.py +++ b/testtriangle.py @@ -30,18 +30,7 @@ def test_negativenumbers(self): h = 13 with self.assertRaises(ValueError): (perimeter(a, b, c)) - def test_str(self): - a = -9 - b = 10 - c = -11 - h = 13 - self.assertEqual(area('def','def'),TypeError) - def test_str(self): - a = -9 - b = 10 - c = -11 - h = 13 - self.assertEqual(perimeter('def','def','def'),TypeError) + if __name__ == '__main__': unittest.main() From 0665a9970b8443119167ea2e51225be5137eb613 Mon Sep 17 00:00:00 2001 From: paramonovvlad Date: Mon, 25 Dec 2023 15:31:57 +0300 Subject: [PATCH 11/12] testtriangle update for str --- testtriangle.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/testtriangle.py b/testtriangle.py index def46ba19b..09d126f7f3 100644 --- a/testtriangle.py +++ b/testtriangle.py @@ -32,5 +32,8 @@ def test_negativenumbers(self): (perimeter(a, b, c)) + + + if __name__ == '__main__': unittest.main() From e51e501a1f7e83b2fde0a0d36918ebb7bbf6c538 Mon Sep 17 00:00:00 2001 From: paramonovvlad <144106023+paramonovvlad@users.noreply.github.com> Date: Mon, 25 Dec 2023 15:37:14 +0300 Subject: [PATCH 12/12] cicd_409308 --- .github/workflows/main.yml | 45 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000000..3a2bcfdf55 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,45 @@ + +name: CI/CD + +on: + push: + branches: + - cicd_409308 + pull_request: + branches: + - cicd_409308 + +jobs: + test-on-linux: + runs-on: ubuntu-latest + steps: + - name: repository clone + uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + architecture: x64 + - name: Run tests + run: | + python -m unittest "testcircle.py" + python -m unittest "testrectangle.py" + python -m unittest "testsquare.py" + python -m unittest "testtriangle.py" + + test-on-windows: + runs-on: windows-latest + steps: + - name: repository clone + uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + architecture: x64 + - name: Run tests + run: | + python -m unittest "testcircle.py" + python -m unittest "testrectangle.py" + python -m unittest "testsquare.py" + python -m unittest "testtriangle.py"