示例#1
0
 def testAdd(self):
     m = Modulo(self.MAX_VALUE, self.INVALID_VALUE)
     self.assertEqual(0, m.add(0, 0))
     self.assertEqual(123, m.add(23, 100))
     self.assertEqual(100, m.add(-100, 200))
     self.assertEqual(self.INVALID_VALUE, m.add(self.INVALID_VALUE, 100))
     self.assertEqual(self.INVALID_VALUE, m.add(100, self.INVALID_VALUE))
     self.assertEqual(self.INVALID_VALUE,
                      m.add(self.INVALID_VALUE, self.INVALID_VALUE))
示例#2
0
class Date:
    def __init__(self):
        self.weekday = Modulo(7, 1)
        self.year = 1900

    def __repr__(self):
        return weekdays[self.weekday.value] + " " + str(self.year)

    def isSUN(self):
        if self.weekday == Modulo(7, 0): return True
        else: return False

    def isLeapYear(self):
        if self.year % 4 == 0:
            if self.year % 100 == 0:
                if self.year % 400 == 0:
                    return True
                else:
                    return False
            else:
                return True
        else:
            return False

    def countSundays(self):
        for mon in months:  # 1900 is not a leap year and not part of the 20th century
            self.weekday.add(months[mon])
        self.year += 1
        # now in the 20th century
        count = 0
        print(self)
        if self.isSUN(): count += 1
        for i in range(100):
            if not self.isLeapYear():
                for mon in months:
                    self.weekday.add(months[mon])
                    if self.isSUN():
                        count += 1
                        print(
                            month_names[Modulo(
                                12, month_names.index(mon)).add(1).value] +
                            ": ", self)
            else:
                for mon in months_leap:
                    self.weekday.add(months_leap[mon])
                    if self.isSUN():
                        count += 1
                        print(
                            month_names[Modulo(
                                12, month_names.index(mon)).add(1).value] +
                            ": ", self)
            self.year += 1
        return count