File tree 3 files changed +59
-0
lines changed
3 files changed +59
-0
lines changed Original file line number Diff line number Diff line change 48
48
/203 /README.md
49
49
/191 /README.md
50
50
/113 /README.md
51
+ /119 /README.md
Original file line number Diff line number Diff line change
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 ()
Original file line number Diff line number Diff line change
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 ())
You can’t perform that action at this time.
0 commit comments