# Independently authored integer rounding; CPython 3.9 oracle domain is bounded.
for number in (-350, -250, -150, -51, -50, -49, 0, 49, 50, 51, 150, 250, 350):
    print(number, round(number, -2), round(number, -1), round(number))
print(round(number=12500, ndigits=-3), round(ndigits=-3, number=-13500))
print(round(True), round(False, None), round(True, False), round(False, True))
print(round(123456789012345678901234567890, -20))
print(round(17, 100000000000000000000000000000000000000000000000000))
nearest = round
def make_rounder(places):
    return lambda number: nearest(number, places)
hundreds = make_rounder(-2)
print(hundreds(250), hundreds(350), hundreds(-250), hundreds(-350))
print(nearest(*(1250, -2)), nearest(**{'number': 1350, 'ndigits': -2}))
try:
    round(7, '2')
except TypeError as error:
    print(type(error).__name__, str(error))
