00001 ########################################################################## 00002 # imfit_test.py 00003 # 00004 # Copyright (C) 2008, 2009 00005 # Associated Universities, Inc. Washington DC, USA. 00006 # 00007 # This script is free software; you can redistribute it and/or modify it 00008 # under the terms of the GNU Library General Public License as published by 00009 # the Free Software Foundation; either version 2 of the License, or (at your 00010 # option) any later version. 00011 # 00012 # This library is distributed in the hope that it will be useful, but WITHOUT 00013 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00014 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00015 # License for more details. 00016 # 00017 # You should have received a copy of the GNU Library General Public License 00018 # along with this library; if not, write to the Free Software Foundation, 00019 # Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA. 00020 # 00021 # Correspondence concerning AIPS++ should be adressed as follows: 00022 # Internet email: aips2-request@nrao.edu. 00023 # Postal address: AIPS++ Project Office 00024 # National Radio Astronomy Observatory 00025 # 520 Edgemont Road 00026 # Charlottesville, VA 22903-2475 USA 00027 # 00028 # <author> 00029 # Dave Mehringer 00030 # </author> 00031 # 00032 # <summary> 00033 # Test suite for the CASA tool method ia.continuumsub() 00034 # </summary> 00035 # 00036 # <reviewed reviwer="" date="" tests="" demos=""> 00037 # </reviewed 00038 # 00039 # <prerequisite> 00040 # <ul> 00041 # </ul> 00042 # </prerequisite> 00043 # 00044 # <etymology> 00045 # Test for the ia.continuumsub() tool method 00046 # </etymology> 00047 # 00048 # <synopsis> 00049 # Test for the ia.continuumsub tool method 00050 # </synopsis> 00051 # 00052 # <example> 00053 # 00054 # This test runs as part of the CASA python unit test suite and can be run from 00055 # the command line via eg 00056 # 00057 # `echo $CASAPATH/bin/casapy | sed -e 's$ $/$'` --nologger --log2term -c `echo $CASAPATH | awk '{print $1}'`/code/xmlcasa/scripts/regressions/admin/runUnitTest.py test_ia_continuumsub[test1,test2,...] 00058 # 00059 # </example> 00060 # 00061 # <motivation> 00062 # To provide a test standard for the ia.continuumsub() tool method to ensure 00063 # coding changes do not break the associated bits 00064 # </motivation> 00065 # 00066 00067 ########################################################################### 00068 import shutil 00069 import casac 00070 from tasks import * 00071 from taskinit import * 00072 from __main__ import * 00073 import unittest 00074 00075 class ia_continuumsub_test(unittest.TestCase): 00076 00077 def setUp(self): 00078 self._myia = iatool() 00079 00080 def tearDown(self): 00081 self._myia.done() 00082 00083 def test_beams(self): 00084 """test per plane beams get accounted for correctly""" 00085 myia = self._myia 00086 myia.fromshape("",[4,4,20, 4]) 00087 chunk = myia.getchunk() 00088 for i in range(20): 00089 for j in range(4): 00090 print "i " + str(i) + " j " + str(j) 00091 chunk[2, 2, i, j] = i 00092 myia.putchunk(chunk) 00093 myia.setrestoringbeam("3arcsec","2arcsec", "4deg", channel=10) 00094 for i in range(20): 00095 for j in range(4): 00096 major=qa.quantity(i+4*j+4,"arcsec") 00097 myia.setrestoringbeam(major,"2arcsec","4deg",channel=i, polarization=j) 00098 reg = rg.box(blc=[2, 2, 3, 0], trc=[2, 2, 17, 3]) 00099 outcont = "line.im" 00100 resid = myia.continuumsub(outcont=outcont, fitorder=1, region=reg, pol="U") 00101 for i in range(resid.shape()[2]): 00102 exp = qa.quantity(i+15, "arcsec") 00103 got = resid.restoringbeam(channel=i)["major"] 00104 self.assertTrue(got == exp) 00105 myia.open(outcont) 00106 self.assertTrue(myia.restoringbeam() == resid.restoringbeam()) 00107 resid.done() 00108 00109 def suite(): 00110 return [ia_continuumsub_test]