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")
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")
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)
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")
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")
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")
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")