def start_simulation(self): metadataprovider = IMetaDataProvider(self) point_type = metadataprovider.get_meta('point_type', 'scalar') point_value = metadataprovider.get_meta('value', 0) if point_type == 'scalar': self.parent.scalarcount += 1 try: minvalue = int(point_value) except ValueError: minvalue = float(point_value) maxvalue = 100 stepvalue = 1 upmagnitude = not (self.parent.scalarcount % 5) if upmagnitude: minvalue += 500 maxvalue *= 10 oddscalar = self.parent.scalarcount % 2 if oddscalar: step = 0.5 minvalue = metadataprovider.get_meta('min', str(minvalue)) maxvalue = metadataprovider.get_meta('max', str(maxvalue)) stepvalue = metadataprovider.get_meta('step', str(stepvalue)) scalartype = simulators.SequentialInteger conversion = int try: minvalue = int(minvalue) except ValueError: conversion = float minvalue = float(minvalue) scalartype = simulators.SequentialNumber try: maxvalue = int(maxvalue) except ValueError: conversion = float maxvalue = float(maxvalue) scalartype = simulators.SequentialNumber try: stepvalue = int(stepvalue) except ValueError: conversion = float stepvalue = float(stepvalue) scalartype = simulators.SequentialNumber #self.scalarconversion = conversion # Overriding for demonstration which uses all floats. self.scalarconversion = float self._simulator = scalartype(minvalue, maxvalue, stepvalue) elif point_type == 'enumeration': values = point_value.keys() values.sort() names = map(point_value.get, values) enumerations = map(EnumeratedValue, values, names) self._simulator = simulators.SequentialEnumeration(enumerations) self.pointtype = point_type periodvalue = 15 periodvalue = metadataprovider.get_meta('period', str(periodvalue)) try: periodvalue = int(periodvalue) except ValueError: periodvalue = float(periodvalue) self._simulator = simulators.PeriodicModifier(self._simulator, periodvalue) self.mode = 'simulation'
del(meta1) del(meta2) meta2 = IMetaDataProvider(first) assert items == meta2.get_items(), 'Mismatched data' assert items is not meta2.get_items(), 'Should not be same object' assert meta_dict == meta2.get_meta_dictionary(), 'Mismatched data' assert predicates == meta2.get_predicates(), 'Mismatched data' assert triples == meta2.get_triples(), 'Mismatched data' assert values == meta2.get_values(), 'Mismatched data' meta3 = IMetaDataProvider(first) assert meta2 is not meta3, 'Should not be same object' meta3.add_meta('Test', 'test') assert meta2.get_meta('Test') == 'test', 'Changes not reflected.' try: meta3['no such predicate'] except KeyError: pass else: assert True, 'Should have raised exception' try: predicate = meta3.get_meta('no such predicate', 'predicate') except KeyError: assert True, 'Should have returned default' else: assert predicate == 'predicate', 'Wrong default returned' try: meta3['no such predicate'] except KeyError: pass else: assert True, 'Still should have raised exception' try: predicate = meta3.setdefault_meta('no such predicate', 'predicate') except KeyError: assert True, 'Should have returned default'
del (meta1) del (meta2) meta2 = IMetaDataProvider(first) assert items == meta2.get_items(), 'Mismatched data' assert items is not meta2.get_items(), 'Should not be same object' assert meta_dict == meta2.get_meta_dictionary(), 'Mismatched data' assert predicates == meta2.get_predicates(), 'Mismatched data' assert triples == meta2.get_triples(), 'Mismatched data' assert values == meta2.get_values(), 'Mismatched data' meta3 = IMetaDataProvider(first) assert meta2 is not meta3, 'Should not be same object' meta3.add_meta('Test', 'test') assert meta2.get_meta('Test') == 'test', 'Changes not reflected.' try: meta3['no such predicate'] except KeyError: pass else: assert True, 'Should have raised exception' try: predicate = meta3.get_meta('no such predicate', 'predicate') except KeyError: assert True, 'Should have returned default' else: assert predicate == 'predicate', 'Wrong default returned'