예제 #1
0
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
예제 #2
0
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
예제 #3
0
    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
예제 #4
0
    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))
예제 #5
0
    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))