| 1 |
# -*- coding: utf-8 -*-
|
| 2 |
from __future__ import division, print_function, unicode_literals
|
| 3 |
|
| 4 |
import unittest
|
| 5 |
|
| 6 |
import testsupport as ts
|
| 7 |
from pyradlib import lcompare
|
| 8 |
from pyradlib.pyrad_proc import PIPE, Error, ProcMixin
|
| 9 |
|
| 10 |
|
| 11 |
class HistoTestCase(unittest.TestCase, ProcMixin):
|
| 12 |
|
| 13 |
def _runit(self, cmd, fn):
|
| 14 |
try:
|
| 15 |
proc = self.call_one(cmd, 'call histo', _in=fn, 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 |
if 'proc' in locals():
|
| 22 |
proc.wait()
|
| 23 |
return lcompare.split_rad(raw)
|
| 24 |
|
| 25 |
def test_histo(self):
|
| 26 |
infile = ts.datafile('histo.dat')
|
| 27 |
cmd = 'histo -0.5 8.5 9'.split()
|
| 28 |
result = self._runit(cmd, infile)
|
| 29 |
expect = [
|
| 30 |
[0, 720, 240, 432, 1080, 270],
|
| 31 |
[1, 720, 240, 432, 1080, 270],
|
| 32 |
[2, 720, 240, 432, 0, 270],
|
| 33 |
[3, 0, 240, 432, 0, 270],
|
| 34 |
[4, 0, 240, 432, 0, 270],
|
| 35 |
[5, 0, 240, 0, 0, 270],
|
| 36 |
[6, 0, 240, 0, 0, 270],
|
| 37 |
[7, 0, 240, 0, 0, 270],
|
| 38 |
[8, 0, 240, 0, 0, 0],
|
| 39 |
]
|
| 40 |
try: lcompare.llcompare(result, expect, ignore_empty=1)
|
| 41 |
except lcompare.error as e:
|
| 42 |
self.fail('%s [%s]' % (str(e),cmd))
|
| 43 |
|
| 44 |
def test_histo_c(self):
|
| 45 |
infile = ts.datafile('histo.dat')
|
| 46 |
cmd = 'histo -c -0.5 8.5 9'.split()
|
| 47 |
result = self._runit(cmd, infile)
|
| 48 |
expect = [
|
| 49 |
[-0.5, 0, 0, 0, 0, 0],
|
| 50 |
[0.5, 720, 240, 432, 1080, 270],
|
| 51 |
[1.5, 1440, 480, 864, 2160, 540],
|
| 52 |
[2.5, 2160, 720, 1296, 2160, 810],
|
| 53 |
[3.5, 2160, 960, 1728, 2160, 1080],
|
| 54 |
[4.5, 2160, 1200, 2160, 2160, 1350],
|
| 55 |
[5.5, 2160, 1440, 2160, 2160, 1620],
|
| 56 |
[6.5, 2160, 1680, 2160, 2160, 1890],
|
| 57 |
[7.5, 2160, 1920, 2160, 2160, 2160],
|
| 58 |
[8.5, 2160, 2160, 2160, 2160, 2160],
|
| 59 |
]
|
| 60 |
try: lcompare.llcompare(result, expect, ignore_empty=1)
|
| 61 |
except lcompare.error as e:
|
| 62 |
self.fail('%s [%s]' % (str(e),cmd))
|
| 63 |
|
| 64 |
def test_histo_p(self):
|
| 65 |
infile = ts.datafile('histo.dat')
|
| 66 |
cmd = 'histo -p -0.5 8.5 9'.split()
|
| 67 |
result = self._runit(cmd, infile)
|
| 68 |
expect = [
|
| 69 |
[0, 33.333333, 11.111111, 20.0, 50.0, 12.5],
|
| 70 |
[1, 33.333333, 11.111111, 20.0, 50.0, 12.5],
|
| 71 |
[2, 33.333333, 11.111111, 20.0, 0.0, 12.5],
|
| 72 |
[3, 0.0, 11.111111, 20.0, 0.0, 12.5],
|
| 73 |
[4, 0.0, 11.111111, 20.0, 0.0, 12.5],
|
| 74 |
[5, 0.0, 11.111111, 0.0, 0.0, 12.5],
|
| 75 |
[6, 0.0, 11.111111, 0.0, 0.0, 12.5],
|
| 76 |
[7, 0.0, 11.111111, 0.0, 0.0, 12.5],
|
| 77 |
[8, 0.0, 11.111111, 0.0, 0.0, 0.0],
|
| 78 |
]
|
| 79 |
try: lcompare.llcompare(result, expect, ignore_empty=1)
|
| 80 |
except lcompare.error as e:
|
| 81 |
self.fail('%s [%s]' % (str(e),cmd))
|
| 82 |
|
| 83 |
def test_histo_pc(self):
|
| 84 |
infile = ts.datafile('histo.dat')
|
| 85 |
cmd = 'histo -p -c -0.5 8.5 9'.split()
|
| 86 |
result = self._runit(cmd, infile)
|
| 87 |
expect = [
|
| 88 |
[-0.5, 0.0, 0.0, 0.0, 0.0, 0.0],
|
| 89 |
[0.5, 33.333333, 11.111111, 20.0, 50.0, 12.5],
|
| 90 |
[1.5, 66.666667, 22.222222, 40.0, 100.0, 25.0],
|
| 91 |
[2.5, 100.0, 33.333333, 60.0, 100.0, 37.5],
|
| 92 |
[3.5, 100.0, 44.444444, 80.0, 100.0, 50.0],
|
| 93 |
[4.5, 100.0, 55.555556, 100.0, 100.0, 62.5],
|
| 94 |
[5.5, 100.0, 66.666667, 100.0, 100.0, 75.0],
|
| 95 |
[6.5, 100.0, 77.777778, 100.0, 100.0, 87.5],
|
| 96 |
[7.5, 100.0, 88.888889, 100.0, 100.0, 100.0],
|
| 97 |
[8.5, 100.0, 100.0, 100.0, 100.0, 100.0],
|
| 98 |
]
|
| 99 |
try: lcompare.llcompare(result, expect, ignore_empty=1)
|
| 100 |
except lcompare.error as e:
|
| 101 |
self.fail('%s [%s]' % (str(e),cmd))
|
| 102 |
|
| 103 |
|
| 104 |
# vi: set ts=4 sw=4 :
|