Exemple #1
0
    def test_map(self):
        def expand_to_frame(intrvl):
            new_bounds = intrvl['bounds'].copy()
            new_bounds['x1'] = 0
            new_bounds['x2'] = 1
            new_bounds['y1'] = 0
            new_bounds['y2'] = 1
            return Interval(new_bounds, intrvl['payload'])

        is1 = IntervalSet([
            Interval(Bounds3D(0, 1, 0.3, 0.4, 0.5, 0.6)),
            Interval(Bounds3D(0, 0.5, 0.2, 0.3, 0.5, 0.6))
        ])
        is1 = is1.map(expand_to_frame)
        target = IntervalSet([
            Interval(Bounds3D(0, 0.5, 0, 1, 0, 1)),
            Interval(Bounds3D(0, 1, 0, 1, 0, 1)),
        ])
        self.assertIntervalSetEq(is1, target)
Exemple #2
0
def main():
    '''
    Examples of simple functions on IntervalSets.
    '''

    # filter examples
    is1 = IntervalSet([
        Interval(Bounds3D(0, 1, 0, 1, 0, 1), 1),
        Interval(Bounds3D(0, 0.5, 0.5, 1, 0, 0.5), 2),
        Interval(Bounds3D(0, 0.5, 0, 1, 0, 0.5), 3),
    ])
    print('is1:')
    print(is1)
    is1_filtered = is1.filter(lambda i: i['payload'] > 2)
    print('is1 filtered on payload:')
    print(is1_filtered)
    print()

    # map example
    def expand_to_frame(intrvl):
        new_bounds = intrvl['bounds'].copy()
        new_bounds['x1'] = 0
        new_bounds['x2'] = 1
        new_bounds['y1'] = 0
        new_bounds['y2'] = 1
        return Interval(new_bounds, intrvl['payload'])

    is2 = IntervalSet([
        Interval(Bounds3D(0, 1, 0.3, 0.4, 0.5, 0.6)),
        Interval(Bounds3D(0, 0.5, 0.2, 0.3, 0.5, 0.6))
    ])
    print('is2:')
    print(is2)
    is2_expanded = is2.map(expand_to_frame)
    print('is2 expanded to the frame:')
    print(is2_expanded)