Example #1
0
    def test_calculate_interval_without_white(self):
        schedule = Schedule()

        interval1 = RepetitiveInterval(
          fromIsoString("20150825T000000"),
          fromIsoString("20150827T000000"), 5, 10, 2,
          RepetitiveInterval.RepeatUnit.DAY)
        interval2 = RepetitiveInterval(
          fromIsoString("20150825T000000"),
          fromIsoString("20150827T000000"), 6, 8, 1,
          RepetitiveInterval.RepeatUnit.DAY)

        schedule.addBlackInterval(interval1)
        schedule.addBlackInterval(interval2)

        # timePoint1 --> negative 8.25 4-10
        timePoint1 = fromIsoString("20150825T063000")
        result = schedule.getCoveringInterval(timePoint1)
        self.assertEqual(result.isPositive, False)
        self.assertEqual(result.interval.isEmpty(), False)
        self.assertEqual(toIsoString(result.interval.getStartTime()), "20150825T050000")
        self.assertEqual(toIsoString(result.interval.getEndTime()), "20150825T100000")

        # timePoint2 --> negative 8.25 0-4
        timePoint2 = fromIsoString("20150825T013000")
        result = schedule.getCoveringInterval(timePoint2)
        self.assertEqual(result.isPositive, False)
        self.assertEqual(result.interval.isEmpty(), False)
        self.assertEqual(toIsoString(result.interval.getStartTime()), "20150825T000000")
        self.assertEqual(toIsoString(result.interval.getEndTime()), "20150826T000000")
Example #2
0
    def test_calculate_interval_without_white(self):
        schedule = Schedule()

        interval1 = RepetitiveInterval(fromIsoString("20150825T000000"),
                                       fromIsoString("20150827T000000"), 5, 10,
                                       2, RepetitiveInterval.RepeatUnit.DAY)
        interval2 = RepetitiveInterval(fromIsoString("20150825T000000"),
                                       fromIsoString("20150827T000000"), 6, 8,
                                       1, RepetitiveInterval.RepeatUnit.DAY)

        schedule.addBlackInterval(interval1)
        schedule.addBlackInterval(interval2)

        # timePoint1 --> negative 8.25 4-10
        timePoint1 = fromIsoString("20150825T063000")
        result = schedule.getCoveringInterval(timePoint1)
        self.assertEqual(result.isPositive, False)
        self.assertEqual(result.interval.isEmpty(), False)
        self.assertEqual(toIsoString(result.interval.getStartTime()),
                         "20150825T050000")
        self.assertEqual(toIsoString(result.interval.getEndTime()),
                         "20150825T100000")

        # timePoint2 --> negative 8.25 0-4
        timePoint2 = fromIsoString("20150825T013000")
        result = schedule.getCoveringInterval(timePoint2)
        self.assertEqual(result.isPositive, False)
        self.assertEqual(result.interval.isEmpty(), False)
        self.assertEqual(toIsoString(result.interval.getStartTime()),
                         "20150825T000000")
        self.assertEqual(toIsoString(result.interval.getEndTime()),
                         "20150826T000000")
Example #3
0
    def setManager(self, manager):
        # Set up the first schedule.
        schedule1 = Schedule()
        interval11 = RepetitiveInterval(
            Schedule.fromIsoString("20150825T000000"),
            Schedule.fromIsoString("20150827T000000"), 5, 10, 2,
            RepetitiveInterval.RepeatUnit.DAY)
        interval12 = RepetitiveInterval(
            Schedule.fromIsoString("20150825T000000"),
            Schedule.fromIsoString("20150827T000000"), 6, 8, 1,
            RepetitiveInterval.RepeatUnit.DAY)
        interval13 = RepetitiveInterval(
            Schedule.fromIsoString("20150827T000000"),
            Schedule.fromIsoString("20150827T000000"), 7, 8)
        schedule1.addWhiteInterval(interval11)
        schedule1.addWhiteInterval(interval12)
        schedule1.addBlackInterval(interval13)

        # Set up the second schedule.
        schedule2 = Schedule()
        interval21 = RepetitiveInterval(
            Schedule.fromIsoString("20150825T000000"),
            Schedule.fromIsoString("20150827T000000"), 9, 12, 1,
            RepetitiveInterval.RepeatUnit.DAY)
        interval22 = RepetitiveInterval(
            Schedule.fromIsoString("20150827T000000"),
            Schedule.fromIsoString("20150827T000000"), 6, 8)
        interval23 = RepetitiveInterval(
            Schedule.fromIsoString("20150827T000000"),
            Schedule.fromIsoString("20150827T000000"), 2, 4)
        schedule2.addWhiteInterval(interval21)
        schedule2.addWhiteInterval(interval22)
        schedule2.addBlackInterval(interval23)

        # Add them to the group manager database.
        manager.addSchedule("schedule1", schedule1)
        manager.addSchedule("schedule2", schedule2)

        # Make some adaptions to certificate.
        dataBlob = self.certificate.wireEncode()

        memberA = Data()
        memberA.wireDecode(dataBlob, TlvWireFormat.get())
        memberA.setName(Name("/ndn/memberA/KEY/ksk-123/ID-CERT/123"))
        memberB = Data()
        memberB.wireDecode(dataBlob, TlvWireFormat.get())
        memberB.setName(Name("/ndn/memberB/KEY/ksk-123/ID-CERT/123"))
        memberC = Data()
        memberC.wireDecode(dataBlob, TlvWireFormat.get())
        memberC.setName(Name("/ndn/memberC/KEY/ksk-123/ID-CERT/123"))

        # Add the members to the database.
        manager.addMember("schedule1", memberA)
        manager.addMember("schedule1", memberB)
        manager.addMember("schedule2", memberC)
Example #4
0
    def setManager(self, manager):
        # Set up the first schedule.
        schedule1 = Schedule()
        interval11 = RepetitiveInterval(
          Schedule.fromIsoString("20150825T000000"),
          Schedule.fromIsoString("20150827T000000"), 5, 10, 2,
          RepetitiveInterval.RepeatUnit.DAY)
        interval12 = RepetitiveInterval(
          Schedule.fromIsoString("20150825T000000"),
          Schedule.fromIsoString("20150827T000000"), 6, 8, 1,
          RepetitiveInterval.RepeatUnit.DAY)
        interval13 = RepetitiveInterval(
          Schedule.fromIsoString("20150827T000000"),
          Schedule.fromIsoString("20150827T000000"), 7, 8)
        schedule1.addWhiteInterval(interval11)
        schedule1.addWhiteInterval(interval12)
        schedule1.addBlackInterval(interval13)

        # Set up the second schedule.
        schedule2 = Schedule()
        interval21 = RepetitiveInterval(
          Schedule.fromIsoString("20150825T000000"),
          Schedule.fromIsoString("20150827T000000"), 9, 12, 1,
          RepetitiveInterval.RepeatUnit.DAY)
        interval22 = RepetitiveInterval(
          Schedule.fromIsoString("20150827T000000"),
          Schedule.fromIsoString("20150827T000000"), 6, 8)
        interval23 = RepetitiveInterval(
          Schedule.fromIsoString("20150827T000000"),
          Schedule.fromIsoString("20150827T000000"), 2, 4)
        schedule2.addWhiteInterval(interval21)
        schedule2.addWhiteInterval(interval22)
        schedule2.addBlackInterval(interval23)

        # Add them to the group manager database.
        manager.addSchedule("schedule1", schedule1)
        manager.addSchedule("schedule2", schedule2)

        # Make some adaptions to certificate.
        dataBlob = self.certificate.wireEncode()

        memberA = Data()
        memberA.wireDecode(dataBlob, TlvWireFormat.get())
        memberA.setName(Name("/ndn/memberA/KEY/ksk-123/ID-CERT/123"))
        memberB = Data()
        memberB.wireDecode(dataBlob, TlvWireFormat.get())
        memberB.setName(Name("/ndn/memberB/KEY/ksk-123/ID-CERT/123"))
        memberC = Data()
        memberC.wireDecode(dataBlob, TlvWireFormat.get())
        memberC.setName(Name("/ndn/memberC/KEY/ksk-123/ID-CERT/123"))

        # Add the members to the database.
        manager.addMember("schedule1", memberA)
        manager.addMember("schedule1", memberB)
        manager.addMember("schedule2", memberC)
Example #5
0
    def test_encode_and_decode(self):
        schedule = Schedule()

        interval1 = RepetitiveInterval(fromIsoString("20150825T000000"),
                                       fromIsoString("20150828T000000"), 5, 10,
                                       2, RepetitiveInterval.RepeatUnit.DAY)
        interval2 = RepetitiveInterval(fromIsoString("20150825T000000"),
                                       fromIsoString("20150828T000000"), 6, 8,
                                       1, RepetitiveInterval.RepeatUnit.DAY)
        interval3 = RepetitiveInterval(fromIsoString("20150827T000000"),
                                       fromIsoString("20150827T000000"), 7, 8)
        interval4 = RepetitiveInterval(fromIsoString("20150825T000000"),
                                       fromIsoString("20150825T000000"), 4, 7)

        schedule.addWhiteInterval(interval1)
        schedule.addWhiteInterval(interval2)
        schedule.addWhiteInterval(interval4)
        schedule.addBlackInterval(interval3)

        encoding = schedule.wireEncode()
        encoding2 = Blob(SCHEDULE, False)
        self.assertTrue(encoding.equals(encoding2))

        schedule2 = Schedule()
        schedule2.wireDecode(encoding)

        # timePoint1 --> positive 8.25 4-10
        timePoint1 = fromIsoString("20150825T063000")
        result = schedule.getCoveringInterval(timePoint1)
        self.assertEqual(result.isPositive, True)
        self.assertEqual(toIsoString(result.interval.getStartTime()),
                         "20150825T040000")
        self.assertEqual(toIsoString(result.interval.getEndTime()),
                         "20150825T100000")

        # timePoint2 --> positive 8.26 6-8
        timePoint2 = fromIsoString("20150826T073000")
        result = schedule.getCoveringInterval(timePoint2)
        self.assertEqual(result.isPositive, True)
        self.assertEqual(toIsoString(result.interval.getStartTime()),
                         "20150826T060000")
        self.assertEqual(toIsoString(result.interval.getEndTime()),
                         "20150826T080000")
Example #6
0
    def test_encode_and_decode(self):
        schedule = Schedule()

        interval1 = RepetitiveInterval(
          fromIsoString("20150825T000000"),
          fromIsoString("20150828T000000"), 5, 10, 2,
          RepetitiveInterval.RepeatUnit.DAY)
        interval2 = RepetitiveInterval(
          fromIsoString("20150825T000000"),
          fromIsoString("20150828T000000"), 6, 8, 1,
          RepetitiveInterval.RepeatUnit.DAY)
        interval3 = RepetitiveInterval(
          fromIsoString("20150827T000000"),
          fromIsoString("20150827T000000"), 7, 8)
        interval4 = RepetitiveInterval(
          fromIsoString("20150825T000000"),
          fromIsoString("20150825T000000"), 4, 7)

        schedule.addWhiteInterval(interval1)
        schedule.addWhiteInterval(interval2)
        schedule.addWhiteInterval(interval4)
        schedule.addBlackInterval(interval3)

        encoding = schedule.wireEncode()
        encoding2 = Blob(SCHEDULE, False)
        self.assertTrue(encoding.equals(encoding2))

        schedule2 = Schedule()
        schedule2.wireDecode(encoding)

        # timePoint1 --> positive 8.25 4-10
        timePoint1 = fromIsoString("20150825T063000")
        result = schedule.getCoveringInterval(timePoint1)
        self.assertEqual(result.isPositive, True)
        self.assertEqual(toIsoString(result.interval.getStartTime()), "20150825T040000")
        self.assertEqual(toIsoString(result.interval.getEndTime()), "20150825T100000")

        # timePoint2 --> positive 8.26 6-8
        timePoint2 = fromIsoString("20150826T073000")
        result = schedule.getCoveringInterval(timePoint2)
        self.assertEqual(result.isPositive, True)
        self.assertEqual(toIsoString(result.interval.getStartTime()), "20150826T060000")
        self.assertEqual(toIsoString(result.interval.getEndTime()), "20150826T080000")
Example #7
0
    def test_calculate_interval_with_black_and_white(self):
        schedule = Schedule()

        interval1 = RepetitiveInterval(fromIsoString("20150825T000000"),
                                       fromIsoString("20150827T000000"), 5, 10,
                                       2, RepetitiveInterval.RepeatUnit.DAY)
        interval2 = RepetitiveInterval(fromIsoString("20150825T000000"),
                                       fromIsoString("20150827T000000"), 6, 8,
                                       1, RepetitiveInterval.RepeatUnit.DAY)
        interval3 = RepetitiveInterval(fromIsoString("20150827T000000"),
                                       fromIsoString("20150827T000000"), 7, 8)
        interval4 = RepetitiveInterval(fromIsoString("20150825T000000"),
                                       fromIsoString("20150825T000000"), 4, 7)

        schedule.addWhiteInterval(interval1)
        schedule.addWhiteInterval(interval2)
        schedule.addWhiteInterval(interval4)
        schedule.addBlackInterval(interval3)

        # timePoint1 --> positive 8.25 4-10
        timePoint1 = fromIsoString("20150825T063000")
        result = schedule.getCoveringInterval(timePoint1)
        self.assertEqual(result.isPositive, True)
        self.assertEqual(toIsoString(result.interval.getStartTime()),
                         "20150825T040000")
        self.assertEqual(toIsoString(result.interval.getEndTime()),
                         "20150825T100000")

        # timePoint2 --> positive 8.26 6-8
        timePoint2 = fromIsoString("20150826T073000")
        result = schedule.getCoveringInterval(timePoint2)
        self.assertEqual(result.isPositive, True)
        self.assertEqual(toIsoString(result.interval.getStartTime()),
                         "20150826T060000")
        self.assertEqual(toIsoString(result.interval.getEndTime()),
                         "20150826T080000")

        # timePoint3 --> positive 8.27 5-7
        timePoint3 = fromIsoString("20150827T053000")
        result = schedule.getCoveringInterval(timePoint3)
        self.assertEqual(result.isPositive, True)
        self.assertEqual(toIsoString(result.interval.getStartTime()),
                         "20150827T050000")
        self.assertEqual(toIsoString(result.interval.getEndTime()),
                         "20150827T070000")

        # timePoint4 --> positive 8.27 5-7
        timePoint4 = fromIsoString("20150827T063000")
        result = schedule.getCoveringInterval(timePoint4)
        self.assertEqual(result.isPositive, True)
        self.assertEqual(toIsoString(result.interval.getStartTime()),
                         "20150827T050000")
        self.assertEqual(toIsoString(result.interval.getEndTime()),
                         "20150827T070000")

        # timePoint5 --> negative 8.27 7-8
        timePoint5 = fromIsoString("20150827T073000")
        result = schedule.getCoveringInterval(timePoint5)
        self.assertEqual(result.isPositive, False)
        self.assertEqual(result.interval.isEmpty(), False)
        self.assertEqual(toIsoString(result.interval.getStartTime()),
                         "20150827T070000")
        self.assertEqual(toIsoString(result.interval.getEndTime()),
                         "20150827T080000")

        # timePoint6 --> negative 8.25 10-24
        timePoint6 = fromIsoString("20150825T113000")
        result = schedule.getCoveringInterval(timePoint6)
        self.assertEqual(result.isPositive, False)
        self.assertEqual(result.interval.isEmpty(), False)
        self.assertEqual(toIsoString(result.interval.getStartTime()),
                         "20150825T100000")
        self.assertEqual(toIsoString(result.interval.getEndTime()),
                         "20150826T000000")
Example #8
0
    def test_calculate_interval_with_black_and_white(self):
        schedule = Schedule()

        interval1 = RepetitiveInterval(
          fromIsoString("20150825T000000"),
          fromIsoString("20150827T000000"), 5, 10, 2,
          RepetitiveInterval.RepeatUnit.DAY)
        interval2 = RepetitiveInterval(
          fromIsoString("20150825T000000"),
          fromIsoString("20150827T000000"), 6, 8, 1,
          RepetitiveInterval.RepeatUnit.DAY)
        interval3 = RepetitiveInterval(
          fromIsoString("20150827T000000"),
          fromIsoString("20150827T000000"), 7, 8)
        interval4 = RepetitiveInterval(
          fromIsoString("20150825T000000"),
          fromIsoString("20150825T000000"), 4, 7)

        schedule.addWhiteInterval(interval1)
        schedule.addWhiteInterval(interval2)
        schedule.addWhiteInterval(interval4)
        schedule.addBlackInterval(interval3)

        # timePoint1 --> positive 8.25 4-10
        timePoint1 = fromIsoString("20150825T063000")
        result = schedule.getCoveringInterval(timePoint1)
        self.assertEqual(result.isPositive, True)
        self.assertEqual(toIsoString(result.interval.getStartTime()), "20150825T040000")
        self.assertEqual(toIsoString(result.interval.getEndTime()), "20150825T100000")

        # timePoint2 --> positive 8.26 6-8
        timePoint2 = fromIsoString("20150826T073000")
        result = schedule.getCoveringInterval(timePoint2)
        self.assertEqual(result.isPositive, True)
        self.assertEqual(toIsoString(result.interval.getStartTime()), "20150826T060000")
        self.assertEqual(toIsoString(result.interval.getEndTime()), "20150826T080000")

        # timePoint3 --> positive 8.27 5-7
        timePoint3 = fromIsoString("20150827T053000")
        result = schedule.getCoveringInterval(timePoint3)
        self.assertEqual(result.isPositive, True)
        self.assertEqual(toIsoString(result.interval.getStartTime()), "20150827T050000")
        self.assertEqual(toIsoString(result.interval.getEndTime()), "20150827T070000")

        # timePoint4 --> positive 8.27 5-7
        timePoint4 = fromIsoString("20150827T063000")
        result = schedule.getCoveringInterval(timePoint4)
        self.assertEqual(result.isPositive, True)
        self.assertEqual(toIsoString(result.interval.getStartTime()), "20150827T050000")
        self.assertEqual(toIsoString(result.interval.getEndTime()), "20150827T070000")

        # timePoint5 --> negative 8.27 7-8
        timePoint5 = fromIsoString("20150827T073000")
        result = schedule.getCoveringInterval(timePoint5)
        self.assertEqual(result.isPositive, False)
        self.assertEqual(result.interval.isEmpty(), False)
        self.assertEqual(toIsoString(result.interval.getStartTime()), "20150827T070000")
        self.assertEqual(toIsoString(result.interval.getEndTime()), "20150827T080000")

        # timePoint6 --> negative 8.25 10-24
        timePoint6 = fromIsoString("20150825T113000")
        result = schedule.getCoveringInterval(timePoint6)
        self.assertEqual(result.isPositive, False)
        self.assertEqual(result.interval.isEmpty(), False)
        self.assertEqual(toIsoString(result.interval.getStartTime()), "20150825T100000")
        self.assertEqual(toIsoString(result.interval.getEndTime()), "20150826T000000")