def test_scid(self): # Record tree of cases via SimpleCaseIterDriver. top = Assembly() top.recorders = [ListCaseRecorder()] top.add('driver2', SCIDriver(3, 'comp2')) top.add('comp2', CaseComponent()) top.driver2.workflow.add('comp2') top.add('driver1', SCIDriver(2, 'comp1')) top.add('comp1', CaseComponent()) top.driver1.workflow.add(['comp1', 'driver2']) top.driver.workflow.add('driver1') top.run() print print 'Forest:' roots = CaseTreeNode.sort(top.recorders[0].get_iterator()) for root in roots: root.dump(1) print print 'Iternames:' for root in roots: for name in root.iternames(): print ' ', name expected = [ '1', '1-1.1', '1-1.1-2.1', '1-1.1-2.2', '1-1.1-2.3', '1-1.2', '1-1.2-2.1', '1-1.2-2.2', '1-1.2-2.3' ] for i, name in enumerate(roots[0].iternames()): self.assertEqual(name, expected[i])
def test_vtree(self): top = Assembly() sub = top.add('sub', Assembly()) sub.add('comp', LoadsComp()) sub.driver.workflow.add('comp') sub.create_passthrough('comp.loads_in') sub.create_passthrough('comp.loads_out') top.driver.workflow.add('sub') jsonfile = os.path.join(self.tempdir, 'test_vtree.json') old_json_file = os.path.join(os.path.dirname(__file__), 'vtree.json') top.recorders = [JSONCaseRecorder(jsonfile)] loads = Loads() loads.Fx = [1, 2, 3] loads.Fy = [4, 5, 6] loads.Fz = [7, 8, 9] arr = LoadsArray() arr.loads = [loads] top.sub.loads_in = arr top.run() cdsnew = CaseDataset(jsonfile, 'json') cdsold = CaseDataset(old_json_file, 'json') cdsold.data.vars('sub.comp.loads_out').fetch( )[0][0]['loads'][0]['Fx'] == cdsnew.data.vars( 'sub.comp.loads_out').fetch()[0][0]['loads'][0]['Fx'] cdsold.data.vars('sub.comp.loads_out').fetch( )[1][0]['loads'][0]['Fz'] == cdsnew.data.vars( 'sub.comp.loads_out').fetch()[1][0]['loads'][0]['Fz']
def test_vtree(self): top = Assembly() sub = top.add('sub', Assembly()) sub.add('comp', LoadsComp()) sub.driver.workflow.add('comp') sub.create_passthrough('comp.loads_in') sub.create_passthrough('comp.loads_out') top.driver.workflow.add('sub') sout = StringIO() top.recorders = [JSONCaseRecorder(sout)] loads = Loads() loads.Fx = [1, 2, 3] loads.Fy = [4, 5, 6] loads.Fz = [7, 8, 9] arr = LoadsArray() arr.loads = [loads] top.sub.loads_in = arr top.run() # with open('vtree.new', 'w') as out: # out.write(sout.getvalue()) self.verify(sout, 'vtree.json')
def test_vtree(self): top = Assembly() sub = top.add('sub', Assembly()) sub.add('comp', LoadsComp()) sub.driver.workflow.add('comp') sub.create_passthrough('comp.loads_in') sub.create_passthrough('comp.loads_out') top.driver.workflow.add('sub') sout = StringIO() top.recorders = [JSONCaseRecorder(sout)] loads = Loads() loads.Fx = [1, 2, 3] loads.Fy = [4, 5, 6] loads.Fz = [7, 8, 9] arr = LoadsArray() arr.loads = [loads] top.sub.loads_in = arr top.run() # with open('vtree.new', 'w') as out: # out.write(sout.getvalue()) self.verify(sout, 'vtree.json')
def test_vtree(self): top = Assembly() sub = top.add('sub', Assembly()) sub.add('comp', LoadsComp()) sub.driver.workflow.add('comp') sub.create_passthrough('comp.loads_in') sub.create_passthrough('comp.loads_out') top.driver.workflow.add('sub') jsonfile = os.path.join(self.tempdir, 'test_vtree.json') old_json_file = os.path.join(os.path.dirname(__file__), 'vtree.json') top.recorders = [JSONCaseRecorder(jsonfile)] loads = Loads() loads.Fx = [1, 2, 3] loads.Fy = [4, 5, 6] loads.Fz = [7, 8, 9] arr = LoadsArray() arr.loads = [loads] top.sub.loads_in = arr top.run() cdsnew = CaseDataset(jsonfile, 'json') cdsold = CaseDataset(old_json_file, 'json') cdsold.data.vars('sub.comp.loads_out').fetch()[0][0]['loads'][0]['Fx'] == cdsnew.data.vars('sub.comp.loads_out').fetch()[0][0]['loads'][0]['Fx'] cdsold.data.vars('sub.comp.loads_out').fetch()[1][0]['loads'][0]['Fz'] == cdsnew.data.vars('sub.comp.loads_out').fetch()[1][0]['loads'][0]['Fz']
def _create_assembly(self, dbname, drivertype): asm = Assembly() driver = asm.add('driver', drivertype()) asm.add('comp1', TracedExecComp(exprs=['z=x+y'])) asm.add('comp2', TracedExecComp(exprs=['z=x+y'])) asm.connect('comp1.z', 'comp2.x') driver.workflow.add(['comp1', 'comp2']) asm.recorders = [DBCaseRecorder(dbname, append=True)] return asm
def _create_assembly(self, dbname, drivertype): asm = Assembly() driver = asm.add('driver', drivertype()) asm.add('comp1', TracedExecComp(exprs=['z=x+y'])) asm.add('comp2', TracedExecComp(exprs=['z=x+y'])) asm.connect('comp1.z', 'comp2.x') driver.workflow.add(['comp1', 'comp2']) asm.recorders = [DBCaseRecorder(dbname, append=True)] return asm
def test_workflow_itername(self): # top # comp1 # driverA # comp1 # comp2 # driverB # comp2 # subassy # comp3 top = Assembly() top.add('comp1', Basic_Component()) top.add('driverA', Run_N(4)) top.add('comp2', Basic_Component()) top.add('driverB', Run_N(3)) sub = top.add('subassy', Assembly()) sub.add('comp3', Basic_Component()) sub.driver.workflow.add('comp3') top.driver.workflow.add(('comp1', 'driverA', 'driverB')) sout = StringIO.StringIO() top.recorders = [DumpCaseRecorder(sout)] top.driverA.workflow.add(('comp1', 'comp2')) top.driverB.workflow.add(('comp2', 'subassy')) top.run() expected = [ 'driverA.workflow.itername: 1-driverA.1', 'driverA.workflow.itername: 1-driverA.2', 'driverA.workflow.itername: 1-driverA.3', 'driverA.workflow.itername: 1-driverA.4', 'driverA.workflow.itername: 1-driverA.5', 'subassy.driver.workflow.itername: 1-driverB.1-subassy.1', 'driverB.workflow.itername: 1-driverB.1', 'subassy.driver.workflow.itername: 1-driverB.2-subassy.1', 'driverB.workflow.itername: 1-driverB.2', 'subassy.driver.workflow.itername: 1-driverB.3-subassy.1', 'driverB.workflow.itername: 1-driverB.3', 'subassy.driver.workflow.itername: 1-driverB.4-subassy.1', 'driverB.workflow.itername: 1-driverB.4', 'driver.workflow.itername: 1' ] lines = [ l.strip() for l in sout.getvalue().split('\n') if 'workflow.itername' in l ] for i, line in enumerate(lines): self.assertEqual(line, expected[i])
def test_workflow_itername(self): # top # comp1 # driverA # comp1 # comp2 # driverB # comp2 # subassy # comp3 top = Assembly() top.add('comp1', Basic_Component()) top.add('driverA', Run_N(4)) top.add('comp2', Basic_Component()) top.add('driverB', Run_N(3)) sub = top.add('subassy', Assembly()) sub.add('comp3', Basic_Component()) sub.driver.workflow.add('comp3') top.driver.workflow.add(('comp1', 'driverA', 'driverB')) sout = StringIO.StringIO() top.recorders = [DumpCaseRecorder(sout)] top.driverA.workflow.add(('comp1', 'comp2')) top.driverB.workflow.add(('comp2', 'subassy')) top.run() expected = [ 'driverA.workflow.itername: 1-driverA.1', 'driverA.workflow.itername: 1-driverA.2', 'driverA.workflow.itername: 1-driverA.3', 'driverA.workflow.itername: 1-driverA.4', 'driverA.workflow.itername: 1-driverA.5', 'subassy.driver.workflow.itername: 1-driverB.1-subassy.1', 'driverB.workflow.itername: 1-driverB.1', 'subassy.driver.workflow.itername: 1-driverB.2-subassy.1', 'driverB.workflow.itername: 1-driverB.2', 'subassy.driver.workflow.itername: 1-driverB.3-subassy.1', 'driverB.workflow.itername: 1-driverB.3', 'subassy.driver.workflow.itername: 1-driverB.4-subassy.1', 'driverB.workflow.itername: 1-driverB.4', 'driver.workflow.itername: 1' ] lines = [l.strip() for l in sout.getvalue().split('\n') if 'workflow.itername' in l] for i, line in enumerate(lines): self.assertEqual(line, expected[i])
def test_casetree(self): # Record tree of cases via workflow. top = Assembly() top.recorders = [DumbRecorder()] top.add('driver2', CaseDriver(3)) top.add('comp2', CaseComponent()) top.driver2.workflow.add('comp2') top.driver2.add_parameter('comp2.x', low=0, high=10) top.driver2.add_objective('comp2.y') top.add('driver1', CaseDriver(2)) top.add('comp1', CaseComponent()) top.driver1.add_parameter('comp1.x', low=0, high=10) top.driver1.add_objective('comp1.y') top.driver1.workflow.add(['comp1', 'driver2']) top.driver.workflow.add('driver1') top.run() print print 'Forest:' roots = CaseTreeNode.sort(top.recorders[0].get_iterator()) for root in roots: root.dump(1) print print 'Iternames:' for root in roots: for name in root.iternames(): print ' ', name expected = [ '1', '1-driver1.1', '1-driver1.1-driver2.1', '1-driver1.1-driver2.2', '1-driver1.1-driver2.3', '1-driver1.2', '1-driver1.2-driver2.1', '1-driver1.2-driver2.2', '1-driver1.2-driver2.3' ] for i, name in enumerate(roots[0].iternames()): self.assertEqual(name, expected[i])
def test_scid(self): # Record tree of cases via SimpleCaseIterDriver. top = Assembly() top.recorders = [ListCaseRecorder()] top.add('driver2', SCIDriver(3, 'comp2')) top.add('comp2', CaseComponent()) top.driver2.workflow.add('comp2') top.add('driver1', SCIDriver(2, 'comp1')) top.add('comp1', CaseComponent()) top.driver1.workflow.add(['comp1', 'driver2']) top.driver.workflow.add('driver1') top.run() print print 'Forest:' roots = CaseTreeNode.sort(top.recorders[0].get_iterator()) for root in roots: root.dump(1) print print 'Iternames:' for root in roots: for name in root.iternames(): print ' ', name expected = [ '1', '1-1.1', '1-1.1-2.1', '1-1.1-2.2', '1-1.1-2.3', '1-1.2', '1-1.2-2.1', '1-1.2-2.2', '1-1.2-2.3' ] for i, name in enumerate(roots[0].iternames()): self.assertEqual(name, expected[i])
def test_casetree(self): # Record tree of cases via workflow. top = Assembly() top.recorders = [DumbRecorder()] top.add('driver2', CaseDriver(3)) top.add('comp2', CaseComponent()) top.driver2.workflow.add('comp2') top.driver2.add_parameter('comp2.x', low=0, high=10) top.driver2.add_objective('comp2.y') top.add('driver1', CaseDriver(2)) top.add('comp1', CaseComponent()) top.driver1.add_parameter('comp1.x', low=0, high=10) top.driver1.add_objective('comp1.y') top.driver1.workflow.add(['comp1', 'driver2']) top.driver.workflow.add('driver1') top.run() print print 'Forest:' roots = CaseTreeNode.sort(top.recorders[0].get_iterator()) for root in roots: root.dump(1) print print 'Iternames:' for root in roots: for name in root.iternames(): print ' ', name expected = [ '1', '1-driver1.1', '1-driver1.1-driver2.1', '1-driver1.1-driver2.2', '1-driver1.1-driver2.3', '1-driver1.2', '1-driver1.2-driver2.1', '1-driver1.2-driver2.2', '1-driver1.2-driver2.3' ] for i, name in enumerate(roots[0].iternames()): self.assertEqual(name, expected[i])