Changeset eda8972 in sasview for test/sansdataloader/test/utest_cansas.py
- Timestamp:
- Dec 13, 2013 4:48:36 PM (10 years ago)
- 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, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- a25d242
- Parents:
- f28fd9cf
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
test/sansdataloader/test/utest_cansas.py
rffbe487 reda8972 6 6 7 7 import unittest 8 from sans.dataloader.loader import Loader 9 from sans.dataloader.readers.cansas_reader_new import Reader 8 import numpy 9 import sans.dataloader.readers.cansas_reader as cansas 10 from sans.dataloader.loader import Loader 11 from sans.dataloader.data_info import Data1D 12 from sans.dataloader.readers.xml_reader import XMLreader 13 from sans.dataloader.readers.cansas_reader import Reader 14 from sans.dataloader.readers.cansas_constants import cansasConstants 10 15 11 16 import os 12 17 import sys 18 import urllib2 19 import StringIO 13 20 14 21 from lxml import etree … … 17 24 HAS_CONVERTER = True 18 25 try: 19 from sans.data_util.nxsunit import Converter26 from data_util.nxsunit import Converter 20 27 except: 21 28 HAS_CONVERTER = False 22 29 23 CANSAS_NS = "cansas1d/1.0" 30 CANSAS_FORMAT = cansasConstants.CANSAS_FORMAT 31 CANSAS_NS = cansasConstants.CANSAS_NS 24 32 ALLOW_ALL = True 25 33 … … 28 36 def setUp(self): 29 37 self.loader = Loader() 30 self.reader = Reader() 38 self.xml_valid = "cansas_test_modified.xml" 39 self.xml_invalid = "cansas_test.xml" 40 self.cansas1d_badunits = "cansas1d_badunits.xml" 41 self.cansas1d = "cansas1d.xml" 42 self.cansas1d_slit = "cansas1d_slit.xml" 43 self.cansas1d_units = "cansas1d_units.xml" 44 self.write_test = "write_test.xml" 45 self.isis_1_0 = "ISIS_1_0.xml" 46 self.isis_1_1 = "ISIS_1_1.xml" 47 self.isis_1_1_notrans = "ISIS_1_1_notrans.xml" 48 self.schema_1_0 = "cansas1d_v1_0.xsd" 49 self.schema_1_1 = "cansas1d_v1_1.xsd" 50 51 def get_number_of_entries(self, dictionary, name, i): 52 if dictionary.get(name) is not None: 53 i += 1 54 name = name.split("_")[0] 55 name += "_{0}".format(i) 56 name = self.get_number_of_entries(dictionary, name, i) 57 return name 58 59 def test_xml_validate(self): 60 string = "<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" 61 string += "\t<xsd:element name=\"a\" type=\"AType\"/>\n" 62 string += "\t<xsd:complexType name=\"AType\">\n" 63 string += "\t\t<xsd:sequence>\n" 64 string += "\t\t\t<xsd:element name=\"b\" type=\"xsd:string\" />\n" 65 string += "\t\t</xsd:sequence>\n" 66 string += "\t</xsd:complexType>\n" 67 string += "</xsd:schema>" 68 f = StringIO.StringIO(string) 69 xmlschema_doc = etree.parse(f) 70 xmlschema = etree.XMLSchema(xmlschema_doc) 71 valid = etree.parse(StringIO.StringIO('<a><b></b></a>')) 72 invalid = etree.parse(StringIO.StringIO('<a><c></c></a>')) 73 self.assertTrue(xmlschema.validate(valid)) 74 self.assertFalse(xmlschema.validate(invalid)) 31 75 32 def test_checkdata(self): 33 output = [] 34 ns = [] 35 path = "cansas_test.xml" 36 if os.path.isfile(path): 37 basename = os.path.basename(path) 38 root, extension = os.path.splitext(basename) 39 if ALLOW_ALL or extension.lower() in self.ext: 40 try: 41 tree = tree = etree.parse(path, parser=etree.ETCompatXMLParser()) 42 # Check the format version number 43 # Specifying the namespace will take care of the file 44 # format version 45 for elem in tree.iter(): 46 tag = elem.tag.replace('{cansas1d/1.0}', '') 47 print 'element: {0}, stripped element: {1}, value: {2}'.format( 48 elem.tag, tag, elem.text) 49 # reader_return = self.reader._parse_entry(tree) 50 51 except Exception as e: 52 exc_type, exc_obj, exc_tb = sys.exc_info() 53 fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] 54 print(exc_type, fname, exc_tb.tb_lineno) 76 def test_real_xml(self): 77 reader = XMLreader(self.xml_valid, self.schema_1_0) 78 valid = reader.validateXML() 79 if valid: 80 self.assertTrue(valid) 81 else: 82 self.assertFalse(valid) 55 83 56 print(output) 84 def test_cansas_xml(self): 85 xmlreader = XMLreader(self.isis_1_1, self.schema_1_1) 86 valid = xmlreader.validateXML() 87 self.assertTrue(valid) 88 reader = Reader() 89 dataloader = reader.read(self.isis_1_1) 90 for data in dataloader: 91 self.assertTrue(data.title == "TK49 c10_SANS") 92 self.assertTrue(data.x.size == 138) 93 self.assertTrue(len(data.meta_data) == 417) 94 self.assertTrue(data.detector[0].distance_unit == "mm") 95 96 def test_entry_name_recurse(self): 97 test_values = [1,2,3,4,5,6] 98 base_key = "key" 99 d = {} 100 for value in test_values: 101 new_key = self.get_number_of_entries(d, base_key, i = 0) 102 d[new_key] = value 103 self.assertTrue(len(d) == 6) 104 105 def test_load_cansas_file(self): 106 valid = [] 107 reader1 = XMLreader(self.xml_valid, self.schema_1_0) 108 self.assertTrue(reader1.validateXML()) 109 reader2 = XMLreader(self.xml_invalid, self.schema_1_0) 110 self.assertFalse(reader2.validateXML()) 111 reader3 = XMLreader(self.xml_valid, self.schema_1_1) 112 self.assertFalse(reader3.validateXML()) 113 reader4 = XMLreader(self.xml_invalid, self.schema_1_1) 114 self.assertFalse(reader4.validateXML()) 115 reader5 = XMLreader(self.isis_1_0, self.schema_1_0) 116 self.assertTrue(reader5.validateXML()) 117 reader6 = XMLreader(self.isis_1_1, self.schema_1_1) 118 self.assertTrue(reader6.validateXML()) 119 reader7 = XMLreader(self.isis_1_1, self.schema_1_0) 120 self.assertFalse(reader7.validateXML()) 121 122 def test_old_cansas_files(self): 123 reader1 = XMLreader(self.cansas1d, self.schema_1_0) 124 self.assertTrue(reader1.validateXML()) 125 reader2 = XMLreader(self.cansas1d_units, self.schema_1_0) 126 self.assertTrue(reader2.validateXML()) 127 reader3 = XMLreader(self.cansas1d_badunits, self.schema_1_0) 128 self.assertTrue(reader3.validateXML()) 129 reader4 = XMLreader(self.cansas1d_slit, self.schema_1_0) 130 self.assertTrue(reader4.validateXML()) 131 reader5 = XMLreader(self.write_test, self.schema_1_0) 132 self.assertTrue(reader5.validateXML()) 57 133 134 58 135 if __name__ == '__main__': 59 unittest.main() 136 unittest.main()
Note: See TracChangeset
for help on using the changeset viewer.