Changeset 4baf505 in sasview


Ignore:
Timestamp:
Sep 15, 2016 8:33:57 AM (5 years ago)
Author:
Piotr Rozyczko <rozyczko@…>
Branches:
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
Children:
661bd79
Parents:
a9d3abb
git-author:
Jeff Krzywon <krzywon@…> (08/19/16 09:03:10)
git-committer:
Piotr Rozyczko <rozyczko@…> (09/15/16 08:33:57)
Message:

Fix cansas XML reader issues to resolve broken unit tests.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sascalc/dataloader/readers/cansas_reader.py

    r158cb9e r4baf505  
    206206        # Go through each child in the parent element 
    207207        for node in dom: 
     208            attr = node.attrib 
     209            name = attr.get("name", "") 
     210            type = attr.get("type", "") 
    208211            # Get the element name and set the current names level 
    209212            tagname = node.tag.replace(self.base_ns, "") 
     
    223226                ## Recursion step to access data within the group 
    224227                self._parse_entry(node) 
     228                if tagname == "SASsample": 
     229                    self.current_datainfo.sample.name = name 
     230                elif tagname == "beam_size": 
     231                    self.current_datainfo.source.beam_size_name = name 
     232                elif tagname == "SAScollimation": 
     233                    self.collimation.name = name 
     234                elif tagname == "aperture": 
     235                    self.aperture.name = name 
     236                    self.aperture.type = type 
    225237                self.add_intermediate() 
    226238            else: 
     
    229241                ## If this is a dataset, store the data appropriately 
    230242                if tagname == 'Run': 
     243                    self.current_datainfo.run_name[data_point] = name 
    231244                    self.current_datainfo.run.append(data_point) 
    232245                elif tagname == 'Title': 
     
    369382                    self.process.notes.append(data_point) 
    370383                elif tagname == 'term' and self.parent_class == 'SASprocess': 
    371                     self.process.term.append(data_point) 
     384                    unit = attr.get("unit", "") 
     385                    dic = {} 
     386                    dic["name"] = name 
     387                    dic["value"] = data_point 
     388                    dic["unit"] = unit 
     389                    self.process.term.append(dic) 
    372390 
    373391                ## Transmission Spectrum 
     
    531549            self.current_datainfo.collimation.append(self.collimation) 
    532550            self.collimation = Collimation() 
    533         elif self.parent_class == 'SASaperture': 
     551        elif self.parent_class == 'aperture': 
    534552            self.collimation.aperture.append(self.aperture) 
    535553            self.aperture = Aperture() 
     
    646664        err_msg = None 
    647665        default_unit = None 
    648         if 'unit' in attr and attr.get('unit') is not None and not self.ns_list.ns_optional: 
     666        if not isinstance(node_value, float): 
     667            node_value = float(node_value) 
     668        if 'unit' in attr and attr.get('unit') is not None: 
    649669            try: 
    650670                local_unit = attr['unit'] 
    651                 if not isinstance(node_value, float): 
    652                     node_value = float(node_value) 
    653671                unitname = self.ns_list.current_level.get("unit", "") 
    654672                if "SASdetector" in self.names: 
     
    907925                self.write_node(point, "I", datainfo.y[i], 
    908926                                {'unit': datainfo.y_unit}) 
    909             if datainfo.dy != None and len(datainfo.dy) > i: 
     927            if datainfo.dy is not None and len(datainfo.dy) > i: 
    910928                self.write_node(point, "Idev", datainfo.dy[i], 
    911929                                {'unit': datainfo.y_unit}) 
    912             if datainfo.dx != None and len(datainfo.dx) > i: 
     930            if datainfo.dx is not None and len(datainfo.dx) > i: 
    913931                self.write_node(point, "Qdev", datainfo.dx[i], 
    914932                                {'unit': datainfo.x_unit}) 
    915             if datainfo.dxw != None and len(datainfo.dxw) > i: 
     933            if datainfo.dxw is not None and len(datainfo.dxw) > i: 
    916934                self.write_node(point, "dQw", datainfo.dxw[i], 
    917935                                {'unit': datainfo.x_unit}) 
    918             if datainfo.dxl != None and len(datainfo.dxl) > i: 
     936            if datainfo.dxl is not None and len(datainfo.dxl) > i: 
    919937                self.write_node(point, "dQl", datainfo.dxl[i], 
    920938                                {'unit': datainfo.x_unit}) 
     
    11841202                if isinstance(term, list): 
    11851203                    value = term['value'] 
     1204                    del term['value'] 
     1205                elif isinstance(term, dict): 
     1206                    value = term.get("value") 
    11861207                    del term['value'] 
    11871208                else: 
  • test/sasdataloader/test/utest_abs_reader.py

    rb699768 r4baf505  
    176176         
    177177        self.assertEqual(self.data.run[0], "1234") 
    178         self.assertEqual(self.data.meta_data['loader'], "CanSAS 1D") 
    179         self.assertEqual(len(self.data.errors), 0) 
     178        self.assertEqual(self.data.meta_data['loader'], "CanSAS XML 1D") 
    180179         
    181180        # Data 
     
    198197        self.assertEqual(self.data.sample.name, "my sample") 
    199198        self.assertEqual(self.data.sample.thickness_unit, 'mm') 
    200         self.assertEqual(self.data.sample.thickness, 1.03) 
    201          
    202         self.assertEqual(self.data.sample.transmission, 0.327) 
     199        self.assertAlmostEqual(self.data.sample.thickness, 1.03) 
     200         
     201        self.assertAlmostEqual(self.data.sample.transmission, 0.327) 
    203202         
    204203        self.assertEqual(self.data.sample.temperature_unit, 'C') 
     
    233232         
    234233        self.assertEqual(self.data.source.wavelength_max_unit, "nm") 
    235         self.assertEqual(self.data.source.wavelength_max, 1.0) 
     234        self.assertAlmostEqual(self.data.source.wavelength_max, 1.0) 
    236235        self.assertEqual(self.data.source.wavelength_min_unit, "nm") 
    237         self.assertEqual(self.data.source.wavelength_min, 0.22) 
     236        self.assertAlmostEqual(self.data.source.wavelength_min, 0.22) 
    238237        self.assertEqual(self.data.source.wavelength_spread_unit, "percent") 
    239238        self.assertEqual(self.data.source.wavelength_spread, 14.3) 
     
    248247            self.assertEqual(item.size_unit,'mm') 
    249248            self.assertEqual(item.distance_unit,'mm') 
    250              
     249 
    251250            if item.size.x==50 \ 
    252251                and item.distance==11000.0 \ 
     
    294293            self.assertTrue(item.date in ['04-Sep-2007 18:35:02', 
    295294                                          '03-SEP-2006 11:42:47']) 
     295            print item.term 
    296296            for t in item.term: 
    297297                if t['name']=="ABS:DSTAND" \ 
     
    345345        self.assertEqual(self.data.filename, filename) 
    346346        # The followed should not have been loaded 
    347         self.assertEqual(self.data.sample.thickness, 0.00103) 
     347        self.assertAlmostEqual(self.data.sample.thickness, 0.00103) 
    348348        # This one should 
    349         self.assertEqual(self.data.sample.transmission, 0.327) 
    350          
    351         self.assertEqual(self.data.meta_data['loader'], "CanSAS 1D") 
     349        self.assertAlmostEqual(self.data.sample.transmission, 0.327) 
     350         
     351        self.assertEqual(self.data.meta_data['loader'], "CanSAS XML 1D") 
    352352        print self.data.errors 
    353353        self.assertEqual(len(self.data.errors), 1) 
     
    385385 
    386386if __name__ == '__main__': 
    387     unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) 
     387    unittest.main() 
Note: See TracChangeset for help on using the changeset viewer.