Skip to content

Commit a1caa19

Browse files
bites 119
1 parent 2cafcae commit a1caa19

File tree

3 files changed

+59
-0
lines changed

3 files changed

+59
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,4 @@
4848
/203/README.md
4949
/191/README.md
5050
/113/README.md
51+
/119/README.md

119/test_xmas.py

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
from xmas import generate_xmas_tree
2+
3+
default_tree = """
4+
*
5+
***
6+
*****
7+
*******
8+
*********
9+
***********
10+
*************
11+
***************
12+
*****************
13+
*******************
14+
"""
15+
smaller_tree = """
16+
*
17+
***
18+
*****
19+
"""
20+
21+
22+
def test_height_xmas_tree():
23+
assert len(generate_xmas_tree().split('\n')) == 10 # default arg
24+
assert len(generate_xmas_tree(5).split('\n')) == 5
25+
assert len(generate_xmas_tree(20).split('\n')) == 20
26+
27+
28+
def test_num_stars_used():
29+
assert generate_xmas_tree(3).count('*') == 9
30+
assert generate_xmas_tree(5).count('*') == 25
31+
assert generate_xmas_tree(20).count('*') == 400
32+
33+
34+
def test_outputs():
35+
actual_tree = generate_xmas_tree().strip('\n').split('\n')
36+
expected_tree = default_tree.strip('\n').split('\n')
37+
for i, j in zip(actual_tree, expected_tree):
38+
assert i.rstrip() == j.rstrip()
39+
40+
actual_tree = generate_xmas_tree(3).strip('\n').split('\n')
41+
expected_tree = smaller_tree.strip('\n').split('\n')
42+
for i, j in zip(actual_tree, expected_tree):
43+
assert i.rstrip() == j.rstrip()

119/xmas.py

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
def generate_xmas_tree(rows=10):
2+
"""Generate a xmas tree of stars (*) for given rows (default 10).
3+
Each row has row_number*2-1 stars, simple example: for rows=3 the
4+
output would be like this (ignore docstring's indentation):
5+
*
6+
***
7+
*****"""
8+
tree = list()
9+
for row in range(rows):
10+
leaves = ((row+1)*2-1) * "*"
11+
tree.append(leaves.center((rows)*2))
12+
tree = "\n".join(tree)
13+
return tree
14+
15+
print(generate_xmas_tree())

0 commit comments

Comments
 (0)