-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpascals-triangle.py
More file actions
40 lines (32 loc) · 1.02 KB
/
pascals-triangle.py
File metadata and controls
40 lines (32 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Given a non-negative integer numRows, generate the first numRows of Pascal's triangle.
from typing import List
from unittest import TestCase
def generate(numRows: int) -> List[List[int]]:
result = []
for num_row in range(numRows):
row = [0 for _ in range(num_row + 1)]
row[0] = row[-1] = 1
for j in range(1, num_row):
row[j] = result[num_row - 1][j] + result[num_row - 1][j - 1]
result.append(row)
return result
class TestGenerate(TestCase):
def test_check_with_odd_number(self):
self.assertEqual([
[1],
[1, 1],
[1, 2, 1],
[1, 3, 3, 1],
[1, 4, 6, 4, 1]
], generate(5))
def test_check_with_even_number(self):
self.assertEqual([
[1],
[1, 1],
], generate(2))
def test_with_number_one_input(self):
self.assertEqual([
[1]
], generate(1))
def test_with_number_zero_input(self):
self.assertEqual([], generate(0))