# test_anglicize.py
# Walker M. White (wmw2)
# September 2, 2015
"""Unit test for the module anglicize"""
import cornelltest          # cornelltest assert functions
import anglicize            # function to be tested

    
def test_anglicize():
    """Test procedure for the primary anglicize function"""
    result = anglicize.anglicize(1)
    cornelltest.assert_equals("one", result)
    result = anglicize.anglicize(19)
    cornelltest.assert_equals("nineteen", result)
    result = anglicize.anglicize(20)
    cornelltest.assert_equals("twenty", result)
    result = anglicize.anglicize(35)
    cornelltest.assert_equals("thirty five", result)
    result = anglicize.anglicize(50)
    cornelltest.assert_equals("fifty", result)
    result = anglicize.anglicize(99)
    cornelltest.assert_equals("ninety nine", result)
    result = anglicize.anglicize(100)
    cornelltest.assert_equals("one hundred", result)
    result = anglicize.anglicize(301)
    cornelltest.assert_equals("three hundred one", result)
    result = anglicize.anglicize(999)
    cornelltest.assert_equals("nine hundred ninety nine", result)
    result = anglicize.anglicize(1000)
    cornelltest.assert_equals("one thousand", result)
    result = anglicize.anglicize(1009)
    cornelltest.assert_equals("one thousand nine", result)
    result = anglicize.anglicize(900000)
    cornelltest.assert_equals("nine hundred thousand", result)
    result = anglicize.anglicize(789436)
    cornelltest.assert_equals("seven hundred eighty nine thousand four hundred thirty six",
                              result)


def test_anglicize1000():
    """Test procedure for the helper function anglicize1000"""
    result = anglicize.anglicize1000(1)
    cornelltest.assert_equals("one", result)
    result = anglicize.anglicize1000(19)
    cornelltest.assert_equals("nineteen", result)
    result = anglicize.anglicize1000(20)
    cornelltest.assert_equals("twenty", result)
    result = anglicize.anglicize1000(35)
    cornelltest.assert_equals("thirty five", result)
    result = anglicize.anglicize1000(50)
    cornelltest.assert_equals("fifty", result)
    result = anglicize.anglicize1000(99)
    cornelltest.assert_equals("ninety nine", result)
    result = anglicize.anglicize1000(100)
    cornelltest.assert_equals("one hundred", result)
    result = anglicize.anglicize1000(301)
    cornelltest.assert_equals("three hundred one", result)
    result = anglicize.anglicize1000(999)
    cornelltest.assert_equals("nine hundred ninety nine", result)


def test_anglicize100to999():
    """Test procedure for the helper function anglicize100to999"""
    result = anglicize.anglicize100to999(100)
    cornelltest.assert_equals("one hundred", result)
    result = anglicize.anglicize100to999(301)
    cornelltest.assert_equals("three hundred one", result)
    result = anglicize.anglicize100to999(999)
    cornelltest.assert_equals("nine hundred ninety nine", result)


def test_anglicize20to99():
    """Test procedure for the helper function anglicize20to99"""
    result = anglicize.anglicize20to99(35)
    cornelltest.assert_equals("thirty five", result)
    result = anglicize.anglicize20to99(50)
    cornelltest.assert_equals("fifty", result)
    result = anglicize.anglicize20to99(99)
    cornelltest.assert_equals("ninety nine", result)


def test_anglicize1to19():
    """Test procedure for the helper function anglicize1to19"""
    result = anglicize.anglicize1to19(1)
    cornelltest.assert_equals("one", result)
    result = anglicize.anglicize1to19(2)
    cornelltest.assert_equals("two", result)
    result = anglicize.anglicize1to19(3)
    cornelltest.assert_equals("three", result)
    result = anglicize.anglicize1to19(4)
    cornelltest.assert_equals("four", result)
    result = anglicize.anglicize1to19(5)
    cornelltest.assert_equals("five", result)
    result = anglicize.anglicize1to19(6)
    cornelltest.assert_equals("six", result)
    result = anglicize.anglicize1to19(7)
    cornelltest.assert_equals("seven", result)
    result = anglicize.anglicize1to19(8)
    cornelltest.assert_equals("eight", result)
    result = anglicize.anglicize1to19(9)
    cornelltest.assert_equals("nine", result)
    result = anglicize.anglicize1to19(10)
    cornelltest.assert_equals("ten", result)
    result = anglicize.anglicize1to19(11)
    cornelltest.assert_equals("eleven", result)
    result = anglicize.anglicize1to19(12)
    cornelltest.assert_equals("twelve", result)
    result = anglicize.anglicize1to19(13)
    cornelltest.assert_equals("thirteen", result)
    result = anglicize.anglicize1to19(14)
    cornelltest.assert_equals("fourteen", result)
    result = anglicize.anglicize1to19(15)
    cornelltest.assert_equals("fifteen", result)
    result = anglicize.anglicize1to19(16)
    cornelltest.assert_equals("sixteen", result)
    result = anglicize.anglicize1to19(17)
    cornelltest.assert_equals("seventeen", result)
    result = anglicize.anglicize1to19(18)
    cornelltest.assert_equals("eighteen", result)
    result = anglicize.anglicize1to19(19)
    cornelltest.assert_equals("nineteen", result)


def test_tens():
    """Test procedure for the helper function tens"""
    result = anglicize.tens(2)
    cornelltest.assert_equals("twenty", result)
    result = anglicize.tens(3)
    cornelltest.assert_equals("thirty", result)
    result = anglicize.tens(4)
    cornelltest.assert_equals("forty", result)
    result = anglicize.tens(5)
    cornelltest.assert_equals("fifty", result)
    result = anglicize.tens(6)
    cornelltest.assert_equals("sixty", result)
    result = anglicize.tens(7)
    cornelltest.assert_equals("seventy", result)
    result = anglicize.tens(8)
    cornelltest.assert_equals("eighty", result)
    result = anglicize.tens(9)
    cornelltest.assert_equals("ninety", result)


# Script code
if __name__ == '__main__':
    test_tens()
    test_anglicize1to19()
    test_anglicize20to99()
    test_anglicize100to999()
    test_anglicize1000()
    test_anglicize()
    print 'Module anglicize is working correctly'