10000 Result of dojo 2018-08-10 · python-sorocaba/coding-dojo@ec6ab14 · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Feb 2, 2020. It is now read-only.

Commit ec6ab14

Browse files
Result of dojo 2018-08-10
1 parent 5de055a commit ec6ab14

File tree

3 files changed

+131
-0
lines changed

3 files changed

+131
-0
lines changed

2018-08-10/main.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
2+
def is_prime_number(number):
3+
if number == 1:
4+
return False
5+
elif number == 0:
6+
return False
7+
elif number < 0:
8+
return False
9+
elif number % 2 == 0 and number != 2:
10+
return False
11+
elif number % 10 == 5 and number > 5:
12+
return False
13+
elif number % 1 == 0 and number % number == 0:
14+
return True
15+
16+
17+
def char_to_number(char):
18+
if char.isupper():
19+
return ord(char) - 38
20+
21+
return ord(char) - 96
22+
23+
24+
def sum_word(word):
25+
result = 0
26+
for char in word:
27+
result += char_to_number(char)
28+
return result
29+
30+
31+
def is_word_prime(word):
32+
word_value = sum_word(word)
33+
return is_prime_number(word_value)

2018-08-10/participantes.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
- @laurenmariaferreira
2+
- @edsonyamamoto
3+
- @cacarrara
4+
- @gabrielDpadua
5+
- @cauethenorio
6+
- @thiagolopes
7+
- @pedro-walter
8+
- @rafaelhenrique
9+
- maicon mracina
10+
- felipe mracina

2018-08-10/test_main.py

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
import pytest
2+
3+
from main import (
4+
is_prime_number, char_to_number, sum_word, is_word_prime
5+
)
6+
7+
8+
def test_one_is_not_prime():
9+
assert is_prime_number(1) is False
10+
11+
12+
def test_zero_is_not_prime():
13+
assert is_prime_number(0) is False
14+
15+
16+
def test_two_is_prime():
17+
assert is_prime_number(2) is True
18+
19+
20+
def test_negative_number_is_not_prime():
21+
assert is_prime_number(-1) is False
22+
23+
24+
def test_three_number_is_prime():
25+
assert is_prime_number(3) is True
26+
27+
28+
@pytest.mark.parametrize('number', (4, 6, 10, 232))
29+
def test_even_bigger_than_two_is_not_prime(number):
30+
assert is_prime_number(number) is False
31+
32+
33+
@pytest.mark.parametrize('number', (15, 25, 55, 555))
34+
def test_number_ending_in_five_bigger_than_five_is_not_prime(number):
35+
assert is_prime_number(number) is False
36+
37+
38+
@pytest.mark.parametrize('number', (5, 101, 367, 523))
39+
def test_number_is_prime(number):
40+
assert is_prime_number(number) is True
41+
42+
43+
@pytest.mark.parametrize('number', (4, 6, 10, 232))
44+
def test_number_is_not_prime(number):
45+
assert is_prime_number(number) is False
46+
47+
48+
@pytest.mark.parametrize('number', (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997))
49+
def test_prime_numbers_below_one_thousand(number):
50+
assert is_prime_number(number) is True
51+
52+
53+
@pytest.mark.parametrize('char, expected', (
54+
('a', 1),
55+
('z', 26),
56+
))
57+
def test_lower_a_char_to_number(char, expected):
58+
assert char_to_number(char) == expected
59+
60+
61+
@pytest.mark.parametrize('char, expected', (
62+
('A', 27),
63+
('Z', 52),
64+
))
65+
def test_upper_a_char_to_number(char, expected):
66+
assert char_to_number(char) == expected
67+
68+
69+
@pytest.mark.parametrize('word, expected', (
70+
('a', 1),
71+
('aa', 2),
72+
('aA', 28),
73+
('AA', 54),
74+
('Aa', 28),
75+
('python', 98),
76+
('p', 16)
77+
))
78+
def test_sum_word(word, expected):
79+
assert sum_word(word) == expected
80+
81+
82+
@pytest.mark.parametrize('word, expected', (
83+
('b', True),
84+
('a', False),
85+
('python', False)
86+
))
87+
def test_is_word_prime(word, expected):
88+
assert is_word_prime(word) is expected

0 commit comments

Comments
 (0)
0