Exemplo n.º 1
0
    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')
Exemplo n.º 4
0
    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
Exemplo n.º 7
0
 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])
Exemplo n.º 10
0
    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])
Exemplo n.º 12
0
    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])