Changes in / [f9ba422:e2b2473] in sasview


Ignore:
Files:
7 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sascalc/dataloader/data_info.py

    ra1b8fee r17e257b5  
    11611161    final_dataset = None 
    11621162    if isinstance(data, plottable_1D): 
    1163         final_dataset = Data1D(data.x, data.y) 
     1163        final_dataset = Data1D(data.x, data.y, isSesans=datainfo.isSesans) 
    11641164        final_dataset.dx = data.dx 
    11651165        final_dataset.dy = data.dy 
    11661166        final_dataset.dxl = data.dxl 
    11671167        final_dataset.dxw = data.dxw 
     1168        final_dataset.x_unit = data._xunit 
     1169        final_dataset.y_unit = data._yunit 
    11681170        final_dataset.xaxis(data._xaxis, data._xunit) 
    11691171        final_dataset.yaxis(data._yaxis, data._yunit) 
  • src/sas/sascalc/dataloader/file_reader_base_class.py

    rdcb91cf ra78a02f  
    66 
    77import os 
     8import re 
    89import logging 
    910import numpy as np 
     
    106107        for data in self.output: 
    107108            if isinstance(data, Data1D): 
     109                # Normalize the units for 
     110                data.x_unit = self.format_unit(data.x_unit) 
     111                data.y_unit = self.format_unit(data.y_unit) 
    108112                # Sort data by increasing x and remove 1st point 
    109113                ind = np.lexsort((data.y, data.x)) 
     
    131135        for dataset in self.output: 
    132136            if isinstance(dataset, Data2D): 
     137                # Normalize the units for 
     138                dataset.x_unit = self.format_unit(dataset.Q_unit) 
     139                dataset.y_unit = self.format_unit(dataset.I_unit) 
    133140                dataset.data = dataset.data.astype(np.float64) 
    134141                dataset.qx_data = dataset.qx_data.astype(np.float64) 
     
    155162                dataset.data = dataset.data.flatten() 
    156163 
     164    def format_unit(self, unit=None): 
     165        """ 
     166        Format units a common way 
     167        :param unit: 
     168        :return: 
     169        """ 
     170        if unit: 
     171            split = unit.split("/") 
     172            if len(split) == 1: 
     173                return unit 
     174            elif split[0] == '1': 
     175                return "{0}^".format(split[1]) + "{-1}" 
     176            else: 
     177                return "{0}*{1}^".format(split[0], split[1]) + "{-1}" 
     178 
    157179    def set_all_to_none(self): 
    158180        """ 
  • src/sas/sascalc/dataloader/readers/cansas_reader.py

    rdcb91cf ra78a02f  
    299299                    self.current_dataset.dx = np.append(self.current_dataset.dx, data_point) 
    300300                elif tagname == 'dQw': 
    301                     if self.current_dataset.dqw is None: self.current_dataset.dqw = np.empty(0) 
     301                    if self.current_dataset.dxw is None: 
     302                        self.current_dataset.dxw = np.empty(0) 
    302303                    self.current_dataset.dxw = np.append(self.current_dataset.dxw, data_point) 
    303304                elif tagname == 'dQl': 
    304                     if self.current_dataset.dxl is None: self.current_dataset.dxl = np.empty(0) 
     305                    if self.current_dataset.dxl is None: 
     306                        self.current_dataset.dxl = np.empty(0) 
    305307                    self.current_dataset.dxl = np.append(self.current_dataset.dxl, data_point) 
    306308                elif tagname == 'Qmean': 
  • src/sas/sascalc/dataloader/readers/danse_reader.py

    r713a047 ra78a02f  
    189189        x_vals = np.tile(x_vals, (size_y, 1)).flatten() 
    190190        y_vals = np.tile(y_vals, (size_x, 1)).T.flatten() 
    191         if self.current_dataset.err_data == np.all(np.array(None)) or np.any(self.current_dataset.err_data <= 0): 
     191        if (np.all(self.current_dataset.err_data == None) 
     192                or np.any(self.current_dataset.err_data <= 0)): 
    192193            new_err_data = np.sqrt(np.abs(self.current_dataset.data)) 
    193194        else: 
  • test/sasdataloader/test/utest_abs_reader.py

    rce8c7bd ra78a02f  
    2020    def setUp(self): 
    2121        reader = AbsReader() 
    22         self.data = reader.read("jan08002.ABS") 
     22        data = reader.read("jan08002.ABS") 
     23        self.data= data[0] 
    2324 
    2425    def test_abs_checkdata(self): 
     
    4748        self.assertEqual(self.data.detector[0].beam_center.y, center_y) 
    4849 
    49         self.assertEqual(self.data.y_unit, '1/cm') 
     50        self.assertEqual(self.data.y_unit, 'cm^{-1}') 
    5051        self.assertEqual(self.data.x[0], 0.002618) 
    5152        self.assertEqual(self.data.x[1], 0.007854) 
     
    6970        # the generic loader should work as well 
    7071        data = Loader().load("jan08002.ABS") 
    71         self.assertEqual(data.meta_data['loader'], "IGOR 1D") 
     72        self.assertEqual(data[0].meta_data['loader'], "IGOR 1D") 
    7273 
    7374class DanseReaderTests(unittest.TestCase): 
     
    7576    def setUp(self): 
    7677        reader = DANSEReader() 
    77         self.data = reader.read("MP_New.sans") 
     78        data = reader.read("MP_New.sans") 
     79        self.data = data[0] 
    7880 
    7981    def test_checkdata(self): 
     
    112114        # the generic loader should work as well 
    113115        data = Loader().load("MP_New.sans") 
    114         self.assertEqual(data.meta_data['loader'], "DANSE") 
     116        self.assertEqual(data[0].meta_data['loader'], "DANSE") 
    115117 
    116118 
     
    144146        # Data 
    145147        self.assertEqual(len(self.data.x), 2) 
    146         self.assertEqual(self.data.x_unit, '1/A') 
    147         self.assertEqual(self.data.y_unit, '1/cm') 
     148        self.assertEqual(self.data.x_unit, 'A^{-1}') 
     149        self.assertEqual(self.data.y_unit, 'cm^{-1}') 
    148150        self.assertAlmostEqual(self.data.x[0], 0.02, 6) 
    149151        self.assertAlmostEqual(self.data.y[0], 1000, 6) 
     
    257259            self.assertTrue(item.date in ['04-Sep-2007 18:35:02', 
    258260                                          '03-SEP-2006 11:42:47']) 
    259             print(item.term) 
    260261            for t in item.term: 
    261262                if (t['name'] == "ABS:DSTAND" 
     
    309310 
    310311        self.assertEqual(self.data.meta_data['loader'], "CanSAS XML 1D") 
    311         print(self.data.errors) 
    312         self.assertEqual(len(self.data.errors), 1) 
     312        self.assertEqual(len(self.data.errors), 0) 
    313313 
    314314    def test_slits(self): 
     
    324324        # Data 
    325325        self.assertEqual(len(self.data.x), 2) 
    326         self.assertEqual(self.data.x_unit, '1/A') 
    327         self.assertEqual(self.data.y_unit, '1/cm') 
     326        self.assertEqual(self.data.x_unit, 'A^{-1}') 
     327        self.assertEqual(self.data.y_unit, 'cm^{-1}') 
    328328        self.assertEqual(self.data.x[0], 0.02) 
    329329        self.assertEqual(self.data.y[0], 1000) 
     
    333333        self.assertEqual(self.data.x[1], 0.03) 
    334334        self.assertAlmostEquals(self.data.y[1], 1001.0) 
    335         self.assertEqual(self.data.dx, None) 
     335        self.assertEqual(self.data.dx[0], 0.0) 
    336336        self.assertEqual(self.data.dxl[1], 0.005) 
    337337        self.assertEqual(self.data.dxw[1], 0.001) 
  • test/sasdataloader/test/utest_ascii.py

    rad92c5a ra78a02f  
    3232        self.assertEqual(self.f1.x[0],0.002618) 
    3333        self.assertEqual(self.f1.x[9],0.0497) 
    34         self.assertEqual(self.f1.x_unit, '1/A') 
    35         self.assertEqual(self.f1.y_unit, '1/cm') 
     34        self.assertTrue(self.f1.x_unit == 'A^{-1}') 
     35        self.assertTrue(self.f1.y_unit == 'cm^{-1}') 
    3636         
    3737        self.assertEqual(self.f1.meta_data['loader'],"ASCII") 
  • test/sasdataloader/test/utest_cansas.py

    r1fc50fb2 r17e257b5  
    2020 
    2121from lxml import etree 
     22from lxml.etree import XMLSyntaxError 
    2223from xml.dom import minidom 
    2324 
     
    6263        """ 
    6364        invalid = StringIO.StringIO('<a><c></b></a>') 
    64         XMLreader(invalid) 
     65        self.assertRaises(XMLSyntaxError, lambda: XMLreader(invalid)) 
    6566 
    6667    def test_xml_validate(self): 
     
    302303        self.assertTrue(data._yunit == "cm^{-1}") 
    303304        self.assertTrue(data.y.size == 100) 
    304         self.assertAlmostEqual(data.y[9], 0.952749011516985) 
    305         self.assertAlmostEqual(data.x[9], 0.3834415188257777) 
     305        self.assertAlmostEqual(data.y[40], 0.952749011516985) 
     306        self.assertAlmostEqual(data.x[40], 0.3834415188257777) 
    306307        self.assertAlmostEqual(len(data.meta_data), 0) 
    307308 
  • test/sasdataloader/test/utest_sesans.py

    ra67c494 ra78a02f  
    44 
    55import unittest 
     6from sas.sascalc.dataloader.loader_exceptions import FileContentsException,\ 
     7    DefaultReaderException 
    68from sas.sascalc.dataloader.readers.sesans_reader import Reader 
    79from sas.sascalc.dataloader.loader import  Loader 
     
    1719            Test .SES in the full loader to make sure that the file type is correctly accepted 
    1820        """ 
    19         f = Loader().load("sesans_examples/sphere2micron.ses") 
     21        file = Loader().load("sesans_examples/sphere2micron.ses") 
     22        f = file[0] 
    2023        # self.assertEqual(f, 5) 
    2124        self.assertEqual(len(f.x), 40) 
     
    3437            Test .SES loading on a TOF dataset 
    3538        """ 
    36         f = self.loader("sesans_examples/sphere_isis.ses") 
     39        file = self.loader("sesans_examples/sphere_isis.ses") 
     40        f = file[0] 
    3741        self.assertEqual(len(f.x), 57) 
    3842        self.assertEqual(f.x[-1], 19303.4) 
     
    4852        """ 
    4953        self.assertRaises( 
    50             RuntimeError, 
     54            FileContentsException, 
    5155            self.loader, 
    5256            "sesans_examples/sesans_no_data.ses") 
     
    5761        """ 
    5862        self.assertRaises( 
    59             RuntimeError, 
     63            FileContentsException, 
    6064            self.loader, 
    6165            "sesans_examples/no_spin_echo_unit.ses") 
    62  
    63     def test_sesans_no_version(self): 
    64         """ 
    65             Confirm that sesans files with no file format version raise an appropriate error 
    66         """ 
    67         self.assertRaises( 
    68             RuntimeError, 
    69             self.loader, 
    70             "sesans_examples/no_version.ses") 
    7166 
    7267    def test_sesans_future_version(self): 
     
    7570        """ 
    7671        self.assertRaises( 
    77             RuntimeError, 
     72            FileContentsException, 
    7873            self.loader, 
    7974            "sesans_examples/next_gen.ses") 
     
    8479        """ 
    8580        self.assertRaises( 
    86             RuntimeError, 
     81            FileContentsException, 
    8782            self.loader, 
    8883            "sesans_examples/no_wavelength.ses") 
     
    9388        """ 
    9489        self.assertRaises( 
    95             RuntimeError, 
     90            FileContentsException, 
    9691            self.loader, 
    9792            "sesans_examples/too_many_headers.ses") 
  • test/utest_sasview.py

    raaf5e49 rb54440d  
    4444    n_errors = 0 
    4545    n_failures = 0 
    46      
     46 
    4747    for d in (dirs if dirs else os.listdir(test_root)): 
    48          
     48 
    4949        # Check for modules to be skipped 
    5050        if d in SKIPPED_DIRS: 
    5151            continue 
    52          
     52 
    5353 
    5454        # Go through modules looking for unit tests 
     
    6464                    #print std_out 
    6565                    #sys.exit() 
    66                     has_failed = True 
    6766                    m = re.search("Ran ([0-9]+) test", std_out) 
    6867                    if m is not None: 
    69                         has_failed = False 
    7068                        n_tests += int(m.group(1)) 
     69                        has_tests = True 
     70                    else: 
     71                        has_tests = False 
    7172 
    72                     m = re.search("FAILED \(errors=([0-9]+)\)", std_out) 
     73                    has_failed = "FAILED (" in std_out 
     74                    m = re.search("FAILED \(.*errors=([0-9]+)", std_out) 
    7375                    if m is not None: 
    74                         has_failed = True 
    7576                        n_errors += int(m.group(1)) 
    76                      
    77                     m = re.search("FAILED \(failures=([0-9]+)\)", std_out) 
     77                    m = re.search("FAILED \(.*failures=([0-9]+)", std_out) 
    7878                    if m is not None: 
    79                         has_failed = True 
    8079                        n_failures += int(m.group(1)) 
    81                      
    82                     if has_failed: 
     80 
     81                    if has_failed or not has_tests: 
    8382                        failed += 1 
    8483                        print("Result for %s (%s): FAILED" % (module_name, module_dir)) 
     
    102101        print("    Test errors:  %d" % n_errors) 
    103102    print("----------------------------------------------") 
    104      
     103 
    105104    return failed 
    106105 
     
    110109    if run_tests(dirs=dirs, all=all)>0: 
    111110        sys.exit(1) 
    112      
     111 
Note: See TracChangeset for help on using the changeset viewer.