#################################################
# 15-110-f18 hw3
# Your Name:
# Your Andrew ID:
# Your Section:
#################################################

# Edit these functions so they return the correct values.

def digitCount(n):
    return 42

def hasConsecutiveDigits(n):
    return 42

def containsDigit(n, d):
    return 42

def hasIncreasingDigits(n):
    return 42

def longestDigitRun(n):
    # This is optiona/bonus!
    return 42

#################################################
# ignore_rest # Keep this line here so the autograder
#             # ignores everything below here!!!!
################################################

#################################################
# Test Functions (do not edit these!)
################################################

def testDigitCount():
    print('Test digitCount()...', end='')
    assert(digitCount(0) == 1)
    assert(digitCount(5) == 1)
    assert(digitCount(-5) == 1)
    assert(digitCount(42) == 2)
    assert(digitCount(-42) == 2)
    assert(digitCount(121) == 3)
    assert(digitCount(-121) == 3)
    assert(digitCount(-10002000) == 8)
    print('Passed')

def testHasConsecutiveDigits():
    print('Testing hasConsecutiveDigits()... ', end='')
    assert(hasConsecutiveDigits(0) == False)
    assert(hasConsecutiveDigits(123456789) == False)
    assert(hasConsecutiveDigits(1212) == False)
    assert(hasConsecutiveDigits(1212111212) == True)
    assert(hasConsecutiveDigits(33) == True)
    assert(hasConsecutiveDigits(330) == True)
    assert(hasConsecutiveDigits(3003) == True)
    assert(hasConsecutiveDigits(-1212111212) == True)
    print('Passed.')

def testContainsDigit():
    print('Testing containsDigit()... ', end='')
    assert(containsDigit(12323, 3) == True)
    assert(containsDigit(12323, 4) == False)
    assert(containsDigit(12, 0) == False)
    assert(containsDigit(120, 0) == True)
    assert(containsDigit(12323012512392, 5) == True)
    assert(containsDigit(12323012512392, 6) == False)
    assert(containsDigit(-12323012512392, 5) == True)
    assert(containsDigit(-12323012512392, 6) == False)
    assert(containsDigit(0, 6) == False)
    assert(containsDigit(0, 0) == True)
    assert(containsDigit(10000000000, 0) == True)
    print('Passed.')

def testHasIncreasingDigits():
    print('Testing hasIncreasingDigits()... ', end='')
    assert(hasIncreasingDigits(0) == True)
    assert(hasIncreasingDigits(9) == True)
    assert(hasIncreasingDigits(10) == False)
    assert(hasIncreasingDigits(11) == False)
    assert(hasIncreasingDigits(12) == True)
    assert(hasIncreasingDigits(1225) == False)
    assert(hasIncreasingDigits(1235) == True)
    assert(hasIncreasingDigits(24579) == True)
    assert(hasIncreasingDigits(245079) == False)
    assert(hasIncreasingDigits(-24579) == True) # sign doesn't matter
    print('Passed.')

def testLongestDigitRun():
    print('Testing optional/bonus longestDigitRun()... ', end='')
    assert(longestDigitRun(117773732) == 7)
    assert(longestDigitRun(-677886) == 7)
    assert(longestDigitRun(5544) == 4)
    assert(longestDigitRun(1) == 1)
    assert(longestDigitRun(0) == 0)
    assert(longestDigitRun(22222) == 2)
    assert(longestDigitRun(111222111) == 1)
    print('Passed.')

#################################################
# hw2 Main (Do not edit below here!)
################################################

def testAll():
    testDigitCount()
    testHasConsecutiveDigits()
    testContainsDigit()
    testHasIncreasingDigits()
    testLongestDigitRun()

def main():
    testAll()

if __name__ == '__main__':
    main()
