tests.unit.test_digital
Module¶
This module contains all unit tests for the lib.digital
module.
tests.unit.test_digital
– Unit Tests¶
-
class
tests.unit.test_digital.
TestDigitSum
¶ Bases:
object
A collection of positive and negative unit tests for the
lib.digital.digit_sum()
function-
classmethod
get_import
()¶ Get and return the
lib.digital.digit_sum()
functionNote
this isolates the import so any error/exception is raised by individual unit tests.
Returns: the lib.digital.digit_sum()
function
-
test_digit_sum_bad_base_negative
()¶ Test that
lib.digital.digit_sum()
raises aValueError
for a negative value for base
-
test_digit_sum_bad_base_type_float
()¶ Test that
lib.digital.digit_sum()
raises aTypeError
for a non-int
value for base (float
)
-
test_digit_sum_bad_base_type_str
()¶ Test that
lib.digital.digit_sum()
raises aTypeError
for a non-int
value for base (str
)
-
test_digit_sum_bad_n_negative
()¶ Test that
lib.digital.digit_sum()
raises aValueError
for a negative value for n
-
test_digit_sum_bad_n_type_float
()¶ Test that
lib.digital.digit_sum()
raises aTypeError
for a non-int
value for n (float
)
-
test_digit_sum_bad_n_type_str
()¶ Test that
lib.digital.digit_sum()
raises aTypeError
for a non-int
value for n (str
)
-
test_digit_sum_correctness
(value, expected_answer)¶ Test the correctness of
lib.digital.digit_sum()
using known answer testsParameters: - value (
int
) – the input value - expected_answer (
int
) – the expected answer
Raises: - AssertionError – if
lib.digital.digit_sum()
returns the wrong type - AssertionError – if
lib.digital.digit_sum()
returns the wrong value
- value (
-
classmethod
-
class
tests.unit.test_digital.
TestDigitsOf
¶ Bases:
object
A collection of positive and negative unit tests for the
lib.digital.digits_of()
function-
classmethod
get_import
()¶ Get and return the
lib.digital.digits_of()
functionNote
this isolates the import so any error/exception is raised by individual unit tests.
Returns: the lib.digital.digits_of()
function
-
test_digits_of_bad_base_negative
()¶ Test that
lib.digital.digits_of()
raises aValueError
for a negative value for base
-
test_digits_of_bad_base_type_float
()¶ Test that
lib.digital.digits_of()
raises aTypeError
for a non-int
value for base (float
)
-
test_digits_of_bad_base_type_str
()¶ Test that
lib.digital.digits_of()
raises aTypeError
for a non-int
value for base (str
)
-
test_digits_of_bad_n_negative
()¶ Test that
lib.digital.digits_of()
raises aValueError
for a negative value for n
-
test_digits_of_bad_n_type_float
()¶ Test that
lib.digital.digits_of()
raises aTypeError
for a non-int
value for n (float
)
-
test_digits_of_bad_n_type_str
()¶ Test that
lib.digital.digits_of()
raises aTypeError
for a non-int
value for n (str
)
-
test_digits_of_correctness
(n, base, expected_answer)¶ Test the correctness of
lib.digital.digits_of()
using known answer testsParameters: - n (
int
) – the input integer - base (
int
) – the base to build digits in - expected_answer (
int
) – the expected answer
Raises: - AssertionError – if
lib.digital.digits_of()
returns the wrong type - AssertionError – if
lib.digital.digits_of()
returns the wrong value
- n (
-
classmethod
-
class
tests.unit.test_digital.
TestDigitsToNum
¶ Bases:
object
A collection of positive and negative unit tests for the
lib.digital.digits_to_num()
function-
classmethod
get_import
()¶ Get and return the
lib.digital.digits_to_sum()
functionNote
this isolates the import so any error/exception is raised by individual unit tests.
Returns: the lib.digital.digits_to_num()
function
-
test_digits_to_num_bad_base_negative
()¶ Test that
lib.digital.digits_to_num()
raises aValueError
for a negative value for base
-
test_digits_to_num_bad_base_type_float
()¶ Test that
lib.digital.digits_to_num()
raises aTypeError
for a non-int
value for base (float
)
-
test_digits_to_num_bad_base_type_str
()¶ Test that
lib.digital.digits_to_num()
raises aTypeError
for a non-int
value for base (str
)
-
test_digits_to_num_bad_digits_negative_element
()¶ Test that
lib.digital.digits_to_num()
raises aValueError
for a negative value in digits
-
test_digits_to_num_bad_digits_type_float
()¶ Test that
lib.digital.digits_to_num()
raises aTypeError
for a non-list
value for digits (float
)
-
test_digits_to_num_bad_digits_type_list_of_float
()¶ Test that
lib.digital.digits_to_num()
raises aTypeError
for a list of non-int
values for digits (list offloat
)
-
test_digits_to_num_bad_digits_type_list_of_str
()¶ Test that
lib.digital.digits_to_num()
raises aTypeError
for a list of non-int
values for digits (list ofstr
)
-
test_digits_to_num_bad_digits_type_str
()¶ Test that
lib.digital.digits_to_num()
raises aTypeError
for a non-list
value for digits (str
)
-
test_digits_to_num_correctness
(digits, base, expected_answer)¶ Test the correctness of
lib.digital.digits_to_num()
using known answer testsParameters: - digits (
List
[int
]) – the input digits - base (
int
) – the base to build digits in - expected_answer (
int
) – the expected answer
Raises: - AssertionError – if
lib.digital.digits_to_num()
returns the wrong type - AssertionError – if
lib.digital.digits_to_num()
returns the wrong value
- digits (
-
classmethod
-
class
tests.unit.test_digital.
TestIsPalindrome
¶ Bases:
object
A collection of positive and negative unit tests for the
lib.digital.is_palindrome()
function-
classmethod
get_import
()¶ Get and return the
lib.digital.is_palindrome()
functionNote
this isolates the import so any error/exception is raised by individual unit tests.
Returns: the lib.digital.is_palindrome()
function
-
test_is_palindrome_bad_base_negative
()¶ Test that
lib.digital.is_palindrome()
raises aValueError
for a negative value for base
-
test_is_palindrome_bad_base_type_float
()¶ Test that
lib.digital.is_palindrome()
raises aTypeError
for a non-int
value for base (float
)
-
test_is_palindrome_bad_base_type_str
()¶ Test that
lib.digital.is_palindrome()
raises aTypeError
for a non-int
value for base (str
)
-
test_is_palindrome_bad_n_negative
()¶ Test that
lib.digital.is_palindrome()
raises aValueError
for a negative value for n
-
test_is_palindrome_bad_n_type_float
()¶ Test that
lib.digital.is_palindrome()
raises aTypeError
for a non-int
value for n (float
)
-
test_is_palindrome_bad_n_type_str
()¶ Test that
lib.digital.is_palindrome()
raises aTypeError
for a non-int
value for n (str
)
-
test_is_palindrome_correctness
(value, base, expected_answer)¶ Test the correctness of
lib.digital.is_palindrome()
using known answer testsParameters: - value (
int
) – the input value - base (
int
) – consider value in the given base - expected_answer (
int
) – the expected answer
Raises: - AssertionError – if
lib.digital.is_palindrome()
returns the wrong type - AssertionError – if
lib.digital.is_palindrome()
returns the wrong value
- value (
-
test_is_palindrome_unsupported_base
(base)¶ Test that
lib.digital.is_palindrome()
raises aValueError
for unsupported values of baseParameters: base ( int
) – consider value in the given base
-
classmethod
-
class
tests.unit.test_digital.
TestIsPandigital
¶ Bases:
object
A collection of positive and negative unit tests for the
lib.digital.is_pandigital()
function-
classmethod
get_import
()¶ Get and return the
lib.digital.is_pandigital()
functionNote
this isolates the import so any error/exception is raised by individual unit tests.
Returns: the lib.digital.is_pandigital()
function
-
test_is_pandigital_bad_base_negative
()¶ Test that
lib.digital.is_pandigital()
raises aValueError
for a negative value for base
-
test_is_pandigital_bad_base_type_float
()¶ Test that
lib.digital.is_pandigital()
raises aTypeError
for a non-int
value for base (float
)
-
test_is_pandigital_bad_base_type_str
()¶ Test that
lib.digital.is_pandigital()
raises aTypeError
for a non-int
value for base (str
)
-
test_is_pandigital_bad_d_negative
()¶ Test that
lib.digital.is_pandigital()
raises aValueError
for a negative value for d
-
test_is_pandigital_bad_d_type_float
()¶ Test that
lib.digital.is_pandigital()
raises aTypeError
for a non-int
value for d (float
)
-
test_is_pandigital_bad_d_type_str
()¶ Test that
lib.digital.is_pandigital()
raises aTypeError
for a non-int
value for d (str
)
-
test_is_pandigital_bad_int_n_negative
()¶ Test that
lib.digital.is_pandigital()
raises aValueError
for a negative value for n
-
test_is_pandigital_bad_int_n_type_float
()¶ Test that
lib.digital.is_pandigital()
raises aTypeError
for a non-int
value for n (float
)
-
test_is_pandigital_bad_int_n_type_str
()¶ Test that
lib.digital.is_pandigital()
raises aTypeError
for a non-int
value for n (str
)
-
test_is_pandigital_bad_list_n_negative
()¶ Test that
lib.digital.is_pandigital()
raises aValueError
for a negative value for n
-
test_is_pandigital_bad_list_n_type_float
()¶ Test that
lib.digital.is_pandigital()
raises aTypeError
for a non-int
value for n (float
)
-
test_is_pandigital_bad_list_n_type_str
()¶ Test that
lib.digital.is_pandigital()
raises aTypeError
for a non-int
value for n (str
)
-
test_is_pandigital_bad_lower_negative
()¶ Test that
lib.digital.is_pandigital()
raises aValueError
for a negative value for lower
-
test_is_pandigital_bad_lower_type_float
()¶ Test that
lib.digital.is_pandigital()
raises aTypeError
for a non-int
value for lower (float
)
-
test_is_pandigital_bad_lower_type_str
()¶ Test that
lib.digital.is_pandigital()
raises aTypeError
for a non-int
value for lower (str
)
-
test_is_pandigital_correctness
(value, d, expected_answer)¶ Test the correctness of
lib.digital.is_pandigital()
using known answer testsParameters: - value (
Union
[int
,List
[int
]]) – the input value - d (
int
) – parameter in d-pandigital - expected_answer (
int
) – the expected answer
Raises: - AssertionError – if
lib.digital.is_pandigital()
returns the wrong type - AssertionError – if
lib.digital.is_pandigital()
returns the wrong value
- value (
-
classmethod
-
class
tests.unit.test_digital.
TestNumDigits
¶ Bases:
object
A collection of positive and negative unit tests for the
lib.digital.num_digits()
function-
classmethod
get_import
()¶ Get and return the
lib.digital.num_digits()
functionNote
this isolates the import so any error/exception is raised by individual unit tests.
Returns: the lib.digital.num_digits()
function
-
test_num_digits_bad_base_negative
()¶ Test that
lib.digital.num_digits()
raises aValueError
for a negative value for base
-
test_num_digits_bad_base_type_float
()¶ Test that
lib.digital.num_digits()
raises aTypeError
for a non-int
value for base (float
)
-
test_num_digits_bad_base_type_str
()¶ Test that
lib.digital.num_digits()
raises aTypeError
for a non-int
value for base (str
)
-
test_num_digits_bad_n_negative
()¶ Test that
lib.digital.num_digits()
raises aValueError
for a negative value for n
-
test_num_digits_bad_n_type_float
()¶ Test that
lib.digital.num_digits()
raises aTypeError
for a non-int
value for n (float
)
-
test_num_digits_bad_n_type_str
()¶ Test that
lib.digital.num_digits()
raises aTypeError
for a non-int
value for n (str
)
-
test_num_digits_correctness_kat
(value, expected_answer)¶ Test the correctness of
lib.digital.num_digits()
using known answer testsParameters: - value (
int
) – the input value - expected_answer (
int
) – the expected answer
Raises: - AssertionError – if
lib.digital.num_digits()
returns the wrong type - AssertionError – if
lib.digital.num_digits()
returns the wrong value
- value (
-
test_num_digits_correctness_random
()¶ Test the correctness of
lib.digital.num_digits()
using random inputs with predictable answersThat is, generate a random length (n) and a random integer of that length (x). Then, check that
lib.digital.num_digits()
evaluated at x equals n.Raises: - AssertionError – if
lib.digital.num_digits()
returns the wrong type - AssertionError – if
lib.digital.num_digits()
returns the wrong value
- AssertionError – if
-
classmethod