def testGetMessageDateTimesForSegment(self):
     messagesPerDay = 7
     guardTimeMinutes = 15
     dayStart = time(hour=9, minute=0, second=0)
     dayEnd = time(hour=21, minute=0, second=0)
     startDateTime = datetime(2011, 12, 25, 9, 0, 0)
     endDateTime = datetime(2011, 12, 25, 21, 0, 0)
     length = endDateTime - startDateTime
     segment = DaySegment(startDateTime, length, dayStart, dayEnd)
     segment.setDayStart(startDateTime)
     dayLength = datetime(2011, 12, 25, dayEnd.hour, dayEnd.minute, dayEnd.second) - datetime(
         2011, 12, 25, dayStart.hour, dayStart.minute, dayStart.second
     )
     for iteration in xrange(1, 100):
         result = self.messageGenerator.getMessageDateTimesForSegment(
             segment, messagesPerDay, dayLength, guardTimeMinutes
         )
         self.assertEqual(7, len(result), "should have exactly 7 times, but was %d" % len(result))
         self.assertTrue(result[-1].hour >= 19, "Last interval should be larger than 19.")
         guardTimeTimeDelta = timedelta(minutes=guardTimeMinutes)
         for index in xrange(1, 6):
             distance = result[index] - result[index - 1]
             self.assertTrue(
                 (
                     distance < guardTimeTimeDelta,
                     "distance is larger than guard time: %s < %s" % (distance, guardTimeTimeDelta),
                 )
             )
 def testGetNumberOfMessagesForSegmentPartialDay(self):
     messagesPerDay = 7
     dayStart = time(hour=9, minute=0, second=0)
     dayEnd = time(hour=21, minute=0, second=0)
     startDateTime = datetime(2011, 12, 25, 19, 0, 0)
     endDateTime = datetime(2011, 12, 25, 21, 0, 0)
     length = endDateTime - startDateTime
     segment = DaySegment(startDateTime, length, dayStart, dayEnd)
     segment.setDayStart(startDateTime)
     expectedMessagesForSegment = 1
     dayLength = datetime(2011, 12, 25, dayEnd.hour, dayEnd.minute, dayEnd.second) - datetime(
         2011, 12, 25, dayStart.hour, dayStart.minute, dayStart.second
     )
     result = self.messageGenerator.getNumberOfMessagesForSegment(segment, messagesPerDay, dayLength)
     self.assertEqual(expectedMessagesForSegment, result)
 def xtestGetMessageDateTimesForSegmentPutInFile(self):
     messagesPerDay = 7
     guardTimeMinutes = 15
     dayStart = time(hour=9, minute=0, second=0)
     dayEnd = time(hour=21, minute=0, second=0)
     startDateTime = datetime(2011, 12, 25, 9, 0, 0)
     endDateTime = datetime(2011, 12, 25, 21, 0, 0)
     length = endDateTime - startDateTime
     segment = DaySegment(startDateTime, length, dayStart, dayEnd)
     segment.setDayStart(startDateTime)
     dayLength = datetime(2011, 12, 25, dayEnd.hour, dayEnd.minute, dayEnd.second) - datetime(
         2011, 12, 25, dayStart.hour, dayStart.minute, dayStart.second
     )
     contents = ""
     for iteration in xrange(1, 10000):
         result = self.messageGenerator.getMessageDateTimesForSegment(
             segment, messagesPerDay, dayLength, guardTimeMinutes
         )
         for item in result:
             contents += "%s:%s\t" % (item.hour, item.minute)
         contents += "\n"
     f = open("message-time-series.txt", "w")
     f.write(contents)
     f.close()