Source
import os
import sys
import shutil
from __main__ import default
from tasks import *
from taskinit import *
import unittest
import math
import numpy
import numbers
_rg = rgtool( )
#run using
# `which casa` --nologger --log2term -c `echo $CASAPATH | awk '{print $1}'`/code/xmlcasa/scripts/regressions/admin/runUnitTest.py --mem test_imstat
#
'''
Unit tests for task imstat.
'''
class imstat_test(unittest.TestCase):
# Input and output names
moment = 'moment_map.im'
s150 = '150arcsec_pix.im'
s15 = '15arcsec_pix.im'
s0_015 = '0.015arcsec_pix.im'
s0_0015 = '0.0015arcsec_pix.im'
s0_00015 = '0.00015arcsec_pix.im'
linear_coords = 'linearCoords.fits'
fourdim = '4dim.im'
kimage = "ktest.im"
res = None
def _compare(self, resold, resnew, helpstr):
mytype = type(resold)
self.assertTrue(mytype == type(resnew), helpstr + ": types differ")
if mytype == dict:
for k in resold.keys():
self._compare(resold[k], resnew[k], helpstr)
elif mytype == numpy.ndarray:
oldarray = resold.ravel()
newarray = resnew.ravel()
self.assertTrue(
len(oldarray) == len(newarray),
helpstr + ": array lengths not equal"
)
for i in range(len(oldarray)):
self._compare(oldarray[i], newarray[i], helpstr)
elif mytype == str:
self.assertTrue(
resold == resnew,
helpstr + ": string inequality, old = " + resold + ", new = " + resnew
)
elif isinstance(resold, numbers.Integral) or mytype == numpy.int32:
self.assertTrue(
resold == resnew,
helpstr + ": integral inequality, old = " + str(resold) + ", new = " + str(resnew)
)
elif isinstance(resold, numbers.Real):
self.assertTrue(
resold == resnew
or abs(resnew/resold - 1) < 1e-6,
helpstr + "float inequality: old = " + str(resold)
+ ", new = " + str(resnew)
)
else:
self.assertTrue(False, "Unhandled type " + str(mytype))
def setUp(self):
self.res = None
self._myia = iatool()
default(clean)
self.datapath = os.environ.get('CASAPATH').split()[0] + '/data/regression/unittest/imstat/'
def tearDown(self):
self._myia.done()
for dir in [
self.moment, self.s150, self.s15, self.s0_015, self.s0_0015,
self.s0_00015, self.linear_coords, self.fourdim
]:
if os.path.isfile(dir):
os.remove(dir)
elif (os.path.exists(dir)):
shutil.rmtree(dir)
self.assertTrue(len(tb.showcache()) == 0)
def test001(self):
"""Test 1: verify moment maps can have flux densities computed in statistics"""
shutil.copytree(self.datapath+self.moment, self.moment)
stats = imstat(imagename=self.moment)