mirror of
https://github.com/bspeice/metrik
synced 2025-09-05 22:34:46 -04:00
Initial commit for metrik
This commit is contained in:
40
test/targets/pickle_target.py
Normal file
40
test/targets/pickle_target.py
Normal file
@ -0,0 +1,40 @@
|
||||
from unittest import TestCase
|
||||
import luigi
|
||||
from metrik.targets.pickle_target import PickleTarget
|
||||
|
||||
|
||||
class FibTask(luigi.Task):
|
||||
s = luigi.IntParameter()
|
||||
|
||||
def requires(self):
|
||||
if self.s >= 2:
|
||||
return [FibTask(self.s - 1), FibTask(self.s - 2)]
|
||||
else:
|
||||
return []
|
||||
|
||||
def output(self):
|
||||
return PickleTarget(self.task_id)
|
||||
|
||||
def run(self):
|
||||
if self.s <= 1:
|
||||
val = self.s
|
||||
else:
|
||||
count = 0
|
||||
for input in self.input():
|
||||
count += input.read()
|
||||
val = count
|
||||
|
||||
self.output().write(val)
|
||||
|
||||
|
||||
class TestPickleTarget(TestCase):
|
||||
def test_fibonacci(self):
|
||||
f = FibTask(6)
|
||||
luigi.build([f], local_scheduler=True)
|
||||
|
||||
ret = f.output().read()
|
||||
assert ret == 8
|
||||
|
||||
f = FibTask(100)
|
||||
luigi.build([f], local_scheduler=True)
|
||||
assert f.output().read() == 354224848179261915075
|
Reference in New Issue
Block a user