Changeset 40b14f3 in sasview for test


Ignore:
Timestamp:
Aug 8, 2016 8:16:18 AM (8 years ago)
Author:
lewis
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
048381b3
Parents:
e8418bb (diff), ab06de7 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' into corfunc

Location:
test
Files:
7 added
1 edited

Legend:

Unmodified
Added
Removed
  • test/sasdataloader/test/utest_cansas.py

    rb699768 r83b6408  
    22    Unit tests for the new recursive cansas reader 
    33""" 
    4 import logging 
    5 import warnings 
    6 warnings.simplefilter("ignore") 
    7  
    84import sas.sascalc.dataloader.readers.cansas_reader as cansas 
    95from sas.sascalc.dataloader.loader import Loader 
    10 from sas.sascalc.dataloader.data_info import Data1D 
     6from sas.sascalc.dataloader.data_info import Data1D, Data2D 
    117from sas.sascalc.dataloader.readers.xml_reader import XMLreader 
    128from sas.sascalc.dataloader.readers.cansas_reader import Reader 
     
    2016import unittest 
    2117import numpy 
     18import logging 
     19import warnings 
    2220 
    2321from lxml import etree 
    2422from xml.dom import minidom 
    25   
     23 
     24warnings.simplefilter("ignore") 
     25 
    2626CANSAS_FORMAT = CansasConstants.CANSAS_FORMAT 
    2727CANSAS_NS = CansasConstants.CANSAS_NS 
    28      
    29 class cansas_reader(unittest.TestCase): 
    30      
     28 
     29class cansas_reader_xml(unittest.TestCase): 
     30 
    3131    def setUp(self): 
    3232        self.loader = Loader() 
     
    3737        self.cansas1d_slit = "cansas1d_slit.xml" 
    3838        self.cansas1d_units = "cansas1d_units.xml" 
     39        self.cansas1d_notitle = "cansas1d_notitle.xml" 
    3940        self.isis_1_0 = "ISIS_1_0.xml" 
    4041        self.isis_1_1 = "ISIS_1_1.xml" 
     
    4344        self.schema_1_0 = "cansas1d_v1_0.xsd" 
    4445        self.schema_1_1 = "cansas1d_v1_1.xsd" 
    45          
    46      
     46 
     47 
    4748    def get_number_of_entries(self, dictionary, name, i): 
    4849        if dictionary.get(name) is not None: 
     
    5253            name = self.get_number_of_entries(dictionary, name, i) 
    5354        return name 
    54      
    55      
     55 
     56 
    5657    def test_invalid_xml(self): 
    5758        """ 
     
    6061        invalid = StringIO.StringIO('<a><c></b></a>') 
    6162        reader = XMLreader(invalid) 
    62         
     63 
    6364 
    6465    def test_xml_validate(self): 
     
    7879        self.assertTrue(xmlschema.validate(valid)) 
    7980        self.assertFalse(xmlschema.validate(invalid)) 
    80          
    81          
     81 
     82 
    8283    def test_real_xml(self): 
    8384        reader = XMLreader(self.xml_valid, self.schema_1_0) 
     
    8788        else: 
    8889            self.assertFalse(valid) 
    89              
    90              
     90 
     91 
    9192    def _check_data(self, data): 
    9293        self.assertTrue(data.title == "TK49 c10_SANS") 
     
    101102        self.assertTrue(data.process[0].name == "Mantid generated CanSAS1D XML") 
    102103        self.assertTrue(data.meta_data["xmlpreprocess"] != None) 
    103          
    104      
     104 
     105 
    105106    def _check_data_1_1(self, data): 
    106107        spectrum = data.trans_spectrum[0] 
    107108        self.assertTrue(len(spectrum.wavelength) == 138) 
    108          
    109      
     109 
     110 
    110111    def test_cansas_xml(self): 
    111112        filename = "isis_1_1_write_test.xml" 
     
    132133            written_data = return_data[0] 
    133134            self._check_data(written_data) 
    134      
    135      
     135 
     136 
    136137    def test_double_trans_spectra(self): 
    137138        xmlreader = XMLreader(self.isis_1_1_doubletrans, self.schema_1_1) 
     
    141142        for item in data: 
    142143            self._check_data(item) 
    143      
    144                      
     144 
     145 
    145146    def test_entry_name_recurse(self): 
    146147        test_values = [1,2,3,4,5,6] 
     
    151152            d[new_key] = value 
    152153        self.assertTrue(len(d) == 6) 
    153          
    154      
     154 
     155 
    155156    def test_load_cansas_file(self): 
    156157        valid = [] 
     
    169170        reader7 = XMLreader(self.isis_1_1, self.schema_1_0) 
    170171        self.assertFalse(reader7.validate_xml()) 
    171          
    172         
     172 
     173 
     174    def test_invalid_cansas(self): 
     175        list = self.loader.load(self.cansas1d_notitle) 
     176        data = list[0] 
     177        self.assertTrue(data.x.size == 2) 
     178        self.assertTrue(len(data.meta_data) == 3) 
     179        self.assertTrue(len(data.errors) == 1) 
     180        self.assertTrue(data.detector[0].distance_unit == "mm") 
     181        self.assertTrue(data.detector[0].name == "fictional hybrid") 
     182        self.assertTrue(data.detector[0].distance == 4150) 
     183 
     184 
    173185    def test_old_cansas_files(self): 
    174186        reader1 = XMLreader(self.cansas1d, self.schema_1_0) 
     
    182194        reader4 = XMLreader(self.cansas1d_slit, self.schema_1_0) 
    183195        self.assertTrue(reader4.validate_xml()) 
    184          
    185      
     196 
     197 
    186198    def test_save_cansas_v1_0(self): 
    187199        filename = "isis_1_0_write_test.xml" 
     
    204216            self.assertTrue(valid) 
    205217            self._check_data(written_data) 
    206          
    207          
     218 
     219 
    208220    def test_processing_instructions(self): 
    209221        reader = XMLreader(self.isis_1_1, self.schema_1_1) 
     
    214226            self.assertTrue(dic == {'xml-stylesheet': \ 
    215227                                    'type="text/xsl" href="cansas1d.xsl" '}) 
    216              
     228 
    217229            xml = "<test><a><b><c></c></b></a></test>" 
    218230            xmldoc = minidom.parseString(xml) 
    219              
     231 
    220232            ## take the processing instructions and put them back in 
    221233            xmldoc = self.set_processing_instructions(xmldoc, dic) 
    222234            xml_output = xmldoc.toprettyxml() 
    223              
    224      
     235 
     236 
    225237    def set_processing_instructions(self, minidom_object, dic): 
    226238        xmlroot = minidom_object.firstChild 
     
    229241            minidom_object.insertBefore(pi, xmlroot) 
    230242        return minidom_object 
    231      
    232      
     243 
     244 
    233245    def get_processing_instructions(self, xml_reader_object): 
    234246        dict = {} 
     
    247259            pi = pi.getprevious() 
    248260        return dict 
    249          
     261 
     262 
     263class cansas_reader_hdf5(unittest.TestCase): 
     264 
     265    def setUp(self): 
     266        self.loader = Loader() 
     267        self.datafile_basic = "simpleexamplefile.h5" 
     268        self.datafile_multiplesasentry = "cansas_1Dand2D_samedatafile.h5" 
     269        self.datafile_multiplesasdata = "cansas_1Dand2D_samesasentry.h5" 
     270        self.datafile_multiplesasdata_multiplesasentry = "cansas_1Dand2D_multiplesasentry_multiplesasdata.h5" 
     271 
     272    def test_real_data(self): 
     273        self.data = self.loader.load(self.datafile_basic) 
     274        self._check_example_data(self.data[0]) 
     275 
     276    def test_multiple_sasentries(self): 
     277        self.data = self.loader.load(self.datafile_multiplesasentry) 
     278        self.assertTrue(len(self.data) == 2) 
     279        self._check_multiple_data(self.data[0]) 
     280        self._check_multiple_data(self.data[1]) 
     281        self._check_1d_data(self.data[0]) 
     282 
     283    def _check_multiple_data(self, data): 
     284        self.assertTrue(data.title == "MH4_5deg_16T_SLOW") 
     285        self.assertTrue(data.run[0] == '33837') 
     286        self.assertTrue(len(data.run) == 1) 
     287        self.assertTrue(data.instrument == "SANS2D") 
     288        self.assertTrue(data.source.radiation == "Spallation Neutron Source") 
     289        self.assertTrue(len(data.detector) == 1) 
     290        self.assertTrue(data.detector[0].name == "rear-detector") 
     291        self.assertTrue(data.detector[0].distance == 4.385281) 
     292        self.assertTrue(data.detector[0].distance_unit == 'm') 
     293        self.assertTrue(len(data.trans_spectrum) == 1) 
     294 
     295    def _check_1d_data(self, data): 
     296        self.assertTrue(isinstance(data, Data1D)) 
     297        self.assertTrue(len(data.x) == 66) 
     298        self.assertTrue(len(data.x) == len(data.y)) 
     299        self.assertTrue(data.dy[10] == 0.20721350111248701) 
     300        self.assertTrue(data.y[10] == 24.193889608153476) 
     301        self.assertTrue(data.x[10] == 0.008981127988654792) 
     302 
     303    def _check_2d_data(self, data): 
     304        self.assertTrue(isinstance(data, Data2D)) 
     305        self.assertTrue(len(data.x) == 66) 
     306        self.assertTrue(len(data.x) == len(data.y)) 
     307        self.assertTrue(data.dy[10] == 0.20721350111248701) 
     308        self.assertTrue(data.y[10] == 24.193889608153476) 
     309        self.assertTrue(data.x[10] == 0.008981127988654792) 
     310 
     311    def _check_example_data(self, data): 
     312        self.assertTrue(data.title == "") 
     313        self.assertTrue(data.x.size == 100) 
     314        self.assertTrue(data._xunit == "A^{-1}") 
     315        self.assertTrue(data._yunit == "cm^{-1}") 
     316        self.assertTrue(data.y.size == 100) 
     317        self.assertAlmostEqual(data.y[9], 0.952749011516985) 
     318        self.assertAlmostEqual(data.x[9], 0.3834415188257777) 
     319        self.assertAlmostEqual(len(data.meta_data), 0) 
     320 
    250321 
    251322if __name__ == '__main__': 
Note: See TracChangeset for help on using the changeset viewer.