File tree Expand file tree Collapse file tree 3 files changed +59
-0
lines changed Expand file tree Collapse file tree 3 files changed +59
-0
lines changed Original file line number Diff line number Diff line change 4848/203 /README.md 
4949/191 /README.md 
5050/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