def test_map(manifest_type): expected = DummyManifest(manifest_type, begin_id=0, end_id=10) for item in expected: item.duration = 3.14 def transform_fn(item): item.duration = 3.14 return item data = DummyManifest(manifest_type, begin_id=0, end_id=10) eager_result = data.map(transform_fn) assert list(eager_result) == list(expected) with as_lazy(data) as lazy_data: lazy_result = lazy_data.map(transform_fn) assert list(lazy_result) == list(expected)
def test_filter(manifest_type): expected = DummyManifest(manifest_type, begin_id=0, end_id=5) for idx, item in enumerate(expected): item.duration = idx def predicate(item): return item.duration < 5 data = DummyManifest(manifest_type, begin_id=0, end_id=10) for idx, item in enumerate(data): item.duration = idx eager_result = data.filter(predicate) assert list(eager_result) == list(expected) with as_lazy(data) as lazy_data: lazy_result = lazy_data.filter(predicate) assert list(lazy_result) == list(expected)
def test_composable_operations(): expected_durations = [0, 2, 4, 6, 8, 0, 2, 4, 6, 8] data = DummyManifest(CutSet, begin_id=0, end_id=10) for idx, cut in enumerate(data): cut.duration = idx def less_than_5s(item): return item.duration < 5 def double_duration(item): return fastcopy(item, duration=item.duration * 2) eager_result = data.repeat(2).filter(less_than_5s).map(double_duration) assert [c.duration for c in eager_result] == expected_durations with as_lazy(data) as lazy_data: lazy_result = lazy_data.repeat(2).filter(less_than_5s).map( double_duration) assert [item.duration for item in lazy_result] == list(expected_durations)