Sha256: 7d220fb435e2cbc8fca6a2085cf68f1617332f8e8de6fb8fb9261798511922a3

Contents?: true

Size: 853 Bytes

Versions: 62

Compression:

Stored size: 853 Bytes

Contents

import unittest

from collatz_conjecture import collatz_steps

# Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.1


class CollatzConjectureTests(unittest.TestCase):

    def test_zero_steps_for_one(self):
        self.assertEqual(collatz_steps(1), 0)

    def test_divide_if_even(self):
        self.assertEqual(collatz_steps(16), 4)

    def test_even_and_odd_steps(self):
        self.assertEqual(collatz_steps(12), 9)

    def test_large_number_of_even_and_odd_steps(self):
        self.assertEqual(collatz_steps(1000000), 152)

    def test_zero_is_invalid_input(self):
        self.assertEqual(collatz_steps(0), None)

    def test_negative_number_is_invalid_input(self):
        self.assertEqual(collatz_steps(-1), None)

        self.assertEqual(collatz_steps(-15), None)


if __name__ == '__main__':
    unittest.main()

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
trackler-2.2.1.107 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.106 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.105 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.104 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.103 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.102 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.101 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.100 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.99 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.98 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.97 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.96 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.95 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.94 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.93 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.92 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.91 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.90 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.89 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py
trackler-2.2.1.88 tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py