1 |
# -*- coding: utf-8 -*- |
2 |
from __future__ import division, print_function, unicode_literals |
3 |
|
4 |
import itertools |
5 |
import unittest |
6 |
|
7 |
from pyradlib import lcompare |
8 |
from pyradlib.pyrad_proc import PIPE, Error, ProcMixin |
9 |
|
10 |
|
11 |
class CntTestCase(unittest.TestCase, ProcMixin): |
12 |
|
13 |
def _runit(self, cmd, actstr): |
14 |
try: |
15 |
proc = self.call_one(cmd, actstr, out=PIPE, |
16 |
universal_newlines=True) |
17 |
raw = proc.stdout.read() |
18 |
except Error as e: |
19 |
self.fail('%s [%s]' % (str(e), self.qjoin(cmd))) |
20 |
finally: |
21 |
proc.wait() |
22 |
return [s.strip() for s in raw.split('\n') if s] |
23 |
|
24 |
def test_cnt_1d(self): |
25 |
for n in (5,10,100,1000,5000, 10000, 99999): |
26 |
cmd = ['cnt', str(n)] |
27 |
exp = range(n) |
28 |
raw = self._runit(cmd, 'test cnt 1dim') |
29 |
res = [float(s) for s in raw if s] |
30 |
try: lcompare.lcompare(res, exp) |
31 |
except lcompare.error as e: |
32 |
self.fail(('test_cnt_1 n=%d - ' % n) + str(e)) |
33 |
|
34 |
def test_cnt_2d(self): |
35 |
# values higher than 1000/1000 will take rather long |
36 |
for n,m in ((3,3), (10,5), (100,200), ):#(1000,200)): |
37 |
cmd = ['cnt', str(n), str(m)] |
38 |
exp = itertools.product(range(n), range(m)) |
39 |
raw = self._runit(cmd, 'test cnt 2dim') |
40 |
res = [[float(ss) for ss in s.split('\t')] for s in raw] |
41 |
try: lcompare.llcompare(res, exp) |
42 |
except lcompare.error as e: |
43 |
self.fail(('test_cnt_2 %d/%d - ' % (n,m)) + str(e)) |
44 |
|
45 |
def test_cnt_3d(self): |
46 |
# values higher than 100/100/100 will take rather long |
47 |
for n,m,o in ((3,3,3), (10,5,7), (44, 33,22),):# (200,50,10)): |
48 |
cmd = ['cnt', str(n), str(m), str(o)] |
49 |
exp = itertools.product(range(n), range(m), range(o)) |
50 |
res = self._runit(cmd, 'test cnt 3dim') |
51 |
res = [[float(ss) for ss in s.split('\t')] for s in res] |
52 |
try: lcompare.llcompare(res, exp) |
53 |
except lcompare.error as e: |
54 |
self.fail(('test_cnt_3 %d/%d/%d - ' % (n,m,o)) + str(e)) |
55 |
|
56 |
|
57 |
# vi: set ts=4 sw=4 : |