@@ -24,16 +24,21 @@ def test_adding_vectors():
24
24
25
25
26
26
def test_add_zero_length_vectors ():
27
- """ """
27
+ """ Test function for adding empty vectors """
28
28
assert stp .add_vectors ([], []) == []
29
29
30
30
31
- ############################################################
31
+ #######################################################################
32
+ # Advance pytest topics #
33
+ #######################################################################
32
34
# Pytest useful decorators
33
35
# - fixture
34
- # - mark.skip
35
- # - mark.parametrize
36
36
# - mark.xfail
37
+ # - mark.parametrize
38
+ # - mark.skip
39
+
40
+ # Possible other discussion
41
+ # - pytest.approx(val, rel=1e-5)
37
42
38
43
39
44
@pytest .fixture
@@ -46,10 +51,11 @@ def generate_numbers():
46
51
return random .sample (range (100 ), 10 )
47
52
48
53
54
+ # shortcuts for pytest decorators
49
55
skip = pytest .mark .skip
50
56
parametrize = pytest .mark .parametrize
51
57
xfail = pytest .mark .xfail
52
- ###########################################################
58
+ #######################################################################
53
59
54
60
55
61
def test_random_sum_numbers (generate_numbers ):
@@ -67,42 +73,34 @@ def test_random_sum_numbers_add_1(generate_numbers):
67
73
assert our_result == sum (generate_numbers ) + 1
68
74
69
75
70
- @xfail (strict = True )
71
- def test_add_different_length_vectors ():
72
- """TODO: Docstring for test_add_zero_length_vectors.
73
- @return: TODO
74
-
76
+ @xfail
77
+ def test_sum_numbers_with_bad_args ():
78
+ """ Test sum numbers when not given good input
75
79
"""
76
- assert False
80
+ bad_number_list = ['these' , 'R' , False , "#s" ]
81
+ result = stp .sum_numbers (bad_number_list )
77
82
78
83
79
- @skip
80
- def test_add_skip_test ():
81
- """TODO: Docstring for test_add_zero_length_vectors.
82
- @return: TODO
84
+ @pytest .mark .parametrize ("number_list, expect_val" , [
85
+ ([1 , 2 , 3 ], 6 ),
86
+ ([- 2 , 0 , 1 ], - 1 ),
87
+ ([3.5 , 7.25 , - .75 ], 10 ),
88
+ ])
89
+ def test_parametrize_sum_numbers (number_list , expect_val ):
90
+ assert stp .sum_numbers (number_list ) == expect_val
83
91
84
- """
85
- assert False
86
92
93
+ @xfail (strict = True )
94
+ def test_add_different_length_vectors ():
95
+ """
96
+ """
97
+ v1 = [2 , 3 , 4 ]
98
+ v2 = [4 , 9 , 16 , 25 ]
99
+ result = stp .add_vectors (v1 , v2 ) # doctest: +IGNORE_EXCEPTION_DETAIL
87
100
88
- @xfail
89
- def test_adding_vectores_with_bad_args ():
90
- """TODO: Docstring for test_adding_lists_with_bad_args.
91
- @return: TODO
92
101
102
+ @skip
103
+ def test_add_skip_test ():
104
+ """ This test would fail if not for the decorator
93
105
"""
94
106
assert False
95
- # TEST_CASE("Test Adding Vectors with Bad Args")
96
- # {
97
- # // Setup
98
- # const int N = 10, M = 100;
99
- # std::vector<double> v1(N);
100
- # std::vector<double> v2(M);
101
-
102
- # // Generally check that it throws an exception
103
- # REQUIRE_THROWS(add_vectors(v1, v2));
104
-
105
- # // Check that it throws a specific type of exception
106
- # REQUIRE_THROWS_AS(add_vectors(v1, v2), std::invalid_argument);
107
- # }
108
- pass
0 commit comments