def run(self): t = lut.load(self.cli['table']) do_build = False if self.cli['method'] in [None, 'linear', 'cosine']: t.method = self.cli['method'] do_build = True if self.cli['range']: t.range = self.cli['range'] do_build = True if self.cli['size']: t.size = self.cli['size'] do_build = True if do_build: t.build() if self.cli['file']: values = [] with open(self.cli['file']) as f: strings = f.read().replace('\n', ' ').replace(',', ' ').split() values = [float(s) for s in strings if s] result = t.get(values) else: result = t.get(self.cli['value']) sys.stdout.write(str(result) + '\n') return 0
def test_load(self): d = { "range": [10, 20], "size": 100, "table": [ [0, 150], [0.5, 200], [1, 234] ] } t = lut.load(d) self.assertTrue(100 <= t.size) self.assertEqual([10, 20], t.range) self.assertEqual(234, t.get(20))
def test_loadf(self): s = '''{ "range": [10, 20], "size": 100, "table": [ [0, 150], [0.5, 200], [1, 234] ] }''' fn = 'tmp.json' with open(fn, 'w') as f: f.write(s) t = lut.load(fn) self.assertTrue(100 <= t.size) self.assertEqual([10, 20], t.range) self.assertEqual(234, t.get(20)) import os if os.path.exists(fn): os.remove(fn)