def matchingDummiesByTimeValue(value, precision=1): result = [] value = datetime_to_minutes(value, precision) for i, dummy in dummies: start = datetime_to_minutes(dummy.start(), precision) stop = datetime_to_minutes(dummy.stop(), precision) if ((start is None or start <= value) and (stop is None or stop >= value)): result.append((i, dummy)) return result
def _convertDateTime(self, value): value = datetime_to_minutes(value, self.precision_value) if value is None: return None if (value > self.ceiling_value or value < self.floor_value): # handle values outside our specified range return None return value
def test_precision(self): precision = 5 index = self._makeOne('work', 'start', 'stop', precision_value=precision) for i, dummy in dummies: index.index_object(i, dummy) for i, dummy in dummies: datum = map(lambda d: datetime_to_minutes(d, precision), dummy.datum()) self.assertEqual(index.getEntryForObject(i), tuple(datum)) for value in range(-1, 15): matches = matchingDummiesByTimeValue(value, precision) results, used = self._checkApply(index, {'work': value}, matches) matches = sorted(matches, key=lambda d: d[1].name()) for result, match in zip(results, matches): datum = map(lambda d: datetime_to_minutes(d, precision), match[1].datum()) self.assertEqual(index.getEntryForObject(result), tuple(datum))