Beispiel #1
0
    def arrayDimensionOrder(self):
        from numpy import int16, zeros
        from random import randint
        ptree = Tree('seg_tree', -1, 'NEW')
        ptree.addNode('IMM')
        ptree.write()
        ptree = Tree('seg_tree', -1)
        ptree.createPulse(1)
        ptree = Tree('seg_tree', 1)
        node = ptree.getNode('IMM')
        WIDTH = 640
        HEIGHT = 480
        currFrame = zeros(WIDTH * HEIGHT, dtype=int16)
        currTime = float(0)
        for i in range(0, WIDTH):
            for j in range(0, HEIGHT):
                currFrame[i * HEIGHT + j] = randint(0, 255)
        currTime = float(0)
        startTime = Float32(currTime)
        endTime = Float32(currTime)
        dim = Float32Array(currTime)
        segment = Int16Array(currFrame)
        segment.resize([1, HEIGHT, WIDTH])
        shape = segment.getShape()
        node.makeSegment(startTime, endTime, dim, segment)
        retShape = node.getShape()

        self.assertEqual(shape[0], retShape[0])
        self.assertEqual(shape[1], retShape[1])
        self.assertEqual(shape[2], retShape[2])
Beispiel #2
0
 def openTrees(self):
     with Tree('pytree',self.shot+1,'new'): pass
     filepath = ('%s/pytree_%03d.tree'%(self.tmpdir,self.shot+1)).replace(os.sep,'/')
     self.assertEqual(Tree.getFileName('pytree',self.shot+1), filepath)
     pytree = Tree('pytree',self.shot+1)
     self.assertEqual(pytree.getFileName(), filepath)
     self.assertEqual(str(pytree),'Tree("PYTREE",%d,"Normal")'%(self.shot+1,))
     pytree.createPulse(self.shot+2)
     self.assertEqual(pytree.number_opened,1)
     if not Tests.inThread:
         Tree.setCurrent('pytree',self.shot+2)
         pytree2=Tree('pytree',0)
         self.assertEqual(str(pytree2),'Tree("PYTREE",%d,"Normal")'%(self.shot+2,))
         self.assertEqual(pytree2.incrementCurrent(1000),self.shot+1002)
         self.assertEqual(pytree2.getCurrent(),self.shot+1002)
         pytree2.setCurrent()
         self.assertEqual(Tree.getCurrent('pytree'),self.shot+2)
     else:
         pytree2=Tree('pytree',self.shot+2)
     self.assertEqual(pytree2.number_opened,1)
     self.assertEqual(pytree.shotid,pytree.shot)
     self.assertEqual(pytree.tree,pytree.expt)
     self.assertEqual(pytree.max_open,8)
     try:  pytree.versions_in_model = True
     except TreeNOEDIT: pass
     else: self.assertEqual("TreeSUCCESS","TreeNOEDIT")
     try:  pytree.versions_in_pulse = True
     except TreeNOEDIT: pass
     else: self.assertEqual("TreeSUCCESS","TreeNOEDIT")
 def segments(self):
     pytree = Tree('pytree', self.shot)
     signal = pytree.SIG01
     signal.record = None
     signal.compress_on_put = False
     for i in range(2000):
         signal.putRow(100, Range(1, 1000).data(), DateToQuad("now"))
     pytree.createPulse(self.shot + 2)
     signal.compress_segments = True
     pytree3 = Tree('pytree', self.shot + 2)
     pytree3.compressDatafile()
     self.assertEqual((signal.record == pytree3.SIG01.record).all(), True)
     signal.deleteData()
     # beginning a block set next_row to 0
     signal.beginTimestampedSegment(Int32Array([0, 7]))
     self.assertEqual(str(signal.record), "Build_Signal([], *, [])")
     self.assertEqual(str(signal.getSegment(0)), "Build_Signal([], *, [])")
     # beginning adding row increments next_row to 1
     signal.putRow(1, Int32Array([1]), -1)
     self.assertEqual(str(signal.record), "Build_Signal([1], *, [-1Q])")
     self.assertEqual(str(signal.getSegment(0)),
                      "Build_Signal([1], *, [-1Q])")
     # beginning a new block set next_row back to 0 of the new block
     # the previous block is assumed to be full as the tailing zero could be valid data
     signal.beginTimestampedSegment(Int32Array([0]))
     self.assertEqual(str(signal.record),
                      "Build_Signal([1,7], *, [-1Q,0Q])")
     self.assertEqual(str(signal.getSegment(0)),
                      "Build_Signal([1,7], *, [-1Q,0Q])")
 def openTrees(self):
     pytree = Tree('pytree', self.shot)
     self.assertEqual(str(pytree),
                      'Tree("PYTREE",%d,"Normal")' % (self.shot, ))
     pytree.createPulse(self.shot + 1)
     if not treeTests.inThread:
         Tree.setCurrent('pytree', self.shot + 1)
         pytree2 = Tree('pytree', 0)
         self.assertEqual(str(pytree2),
                          'Tree("PYTREE",%d,"Normal")' % (self.shot + 1, ))
Beispiel #5
0
 def test():
     from MDSplus import Tree, DateToQuad, Range
     with Tree('seg_tree', self.shot, 'NEW') as ptree:
         ptree.addNode('S').compress_on_put = False
         ptree.write()
     ptree = Tree(self.tree, self.shot)
     node = ptree.S
     for i in range(200):
         node.putRow(100, Range(1, 100).data(), DateToQuad("now"))
     ptree.createPulse(self.shot + 1)
     node.compress_segments = True
     ptree1 = Tree(self.tree, self.shot + 1)
     ptree1.compressDatafile()
     self.assertEqual((node.record == ptree1.S.record).all(), True)
Beispiel #6
0
 def test():
     filepath = ('%s/pytree_%03d.tree' %
                 (self.tmpdir, self.shot)).replace(os.sep, '/')
     self.assertEqual(Tree.getFileName('pytree', self.shot), filepath)
     pytree = Tree('pytree', self.shot)
     self.assertEqual(pytree.getFileName(), filepath)
     self.assertEqual(str(pytree),
                      'Tree("PYTREE",%d,"Normal")' % (self.shot, ))
     pytree.createPulse(self.shot + 1)
     if not Tests.inThread:
         Tree.setCurrent('pytree', self.shot + 1)
         pytree2 = Tree('pytree', 0)
         self.assertEqual(
             str(pytree2),
             'Tree("PYTREE",%d,"Normal")' % (self.shot + 1, ))
Beispiel #7
0
 def open(self):
     shot1 = self.shot + 1
     shot2 = shot1 + 1
     with Tree('pytree', shot1, 'new') as pytree:
         a = pytree.addNode('A', 'TEXT')
         pytree.write()
     pytree.open()
     a.record = 'a' * 64
     self.assertEqual(pytree.getDatafileSize(), 84)
     pytree.close()
     with Tree('pytree', shot1, 'new') as pytree:
         # new should clear datafile (O_TRUNC)
         self.assertEqual(pytree.getDatafileSize(), 0)
     filepath = ('%s/pytree_%03d.tree' % (self.tmpdir, shot1)).replace(
         os.sep, '/')
     self.assertEqual(Tree.getFileName('pytree', shot1), filepath)
     pytree = Tree('pytree', shot1)
     self.assertEqual(pytree.getFileName(), filepath)
     self.assertEqual(str(pytree), 'Tree("PYTREE",%d,"Normal")' % (shot1, ))
     pytree.createPulse(shot2)
     self.assertEqual(pytree.number_opened, 1)
     if not Tests.inThread:
         Tree.setCurrent('pytree', shot2)
         pytree2 = Tree('pytree', 0)
         self.assertEqual(str(pytree2),
                          'Tree("PYTREE",%d,"Normal")' % (shot2, ))
         self.assertEqual(pytree2.incrementCurrent(1000), shot2 + 1000)
         self.assertEqual(pytree2.getCurrent(), shot2 + 1000)
         pytree2.setCurrent()
         self.assertEqual(Tree.getCurrent('pytree'), shot2)
     else:
         pytree2 = Tree('pytree', shot2)
     self.assertEqual(pytree2.number_opened, 1)
     self.assertEqual(pytree.shotid, pytree.shot)
     self.assertEqual(pytree.tree, pytree.expt)
     self.assertEqual(pytree.max_open, 8)
     try:
         pytree.versions_in_model = True
     except TreeNOEDIT:
         pass
     else:
         self.assertEqual("TreeSUCCESS", "TreeNOEDIT")
     try:
         pytree.versions_in_pulse = True
     except TreeNOEDIT:
         pass
     else:
         self.assertEqual("TreeSUCCESS", "TreeNOEDIT")
Beispiel #8
0
    def thick(self):
        def testnci(thick, local, con, nci):
            l = local.S.__getattribute__(nci)
            t = thick.S.__getattribute__(nci)
            if nci.endswith("_nids"):
                l, t = str(l), str(t)
                try:
                    c = str(con.get("getnci(getnci(S,$),'nid_number')", nci))
                except TreeNNF:
                    c = '[]'
            else:
                c = con.get("getnci(S,$)", nci)
            try:
                self.assertEqual(t, c)
                self.assertEqual(t, l)
            except:
                print(nci, t, l, c)
                raise

        server, server_port = self._setup_mdsip('ACTION_SERVER', 'ACTION_PORT',
                                                7000 + self.index, True)

        svr, svr_log = self._start_mdsip(server, server_port, 'thick')
        try:
            con = Connection(server)
            self.assertEqual(
                con.get("zero([1,1,1,1,1,1,1,1],1)").tolist(),
                [[[[[[[[0]]]]]]]])
            with Tree(self.tree, -1, "new") as local:
                local.addNode(self.treesub, "SUBTREE")
                s = local.addNode("S", "SIGNAL")
                s.addTag("tagS")
                s.record = ADD(Float32(1), Float32(2))
                t = local.addNode("T", "TEXT")
                t.addNode("TT", "TEXT").addTag("tagTT")
                t.record = t.TT
                t.TT = "recTT"
                local.write()
            with Tree(self.treesub, -1, "new") as sub:
                sub.addNode("OK")
                sub.write()
            local.normal()
            Tree.setCurrent(self.tree, 7)
            setenv("%s_path" % self.tree, "%s::" % server)
            print(con.get("getenv($//'_path')", self.tree))
            con.get("TreeShr->TreeOpen(ref($),val($),val(1))", self.tree, -1)
            thick = Tree(self.tree, -1)
            thick.createPulse(1)
            thick1 = Tree(self.tree, 1)
            self.assertEqual(
                getattr(local, self.treesub.upper()).OK.nid,
                getattr(thick1, self.treesub.upper()).OK.nid)
            local_filename = local.getFileName()
            thick_filename = thick.getFileName()
            self.assertTrue("::" in thick_filename, thick_filename)
            self.assertTrue(local_filename, thick_filename.split("::", 1)[1])
            """ TreeTurnOff / TreeTurnOn """
            thick.S.on = False
            self.assertEqual(local.S.on, False)
            thick.S.on = True
            self.assertEqual(local.S.on, True)
            """ TreeSetCurrentShotId / TreeGetCurrentShotId """
            Tree.setCurrent(self.tree, 1)
            self.assertEqual(Tree.getCurrent(self.tree), 1)
            """ TreeGetRecord / TreeSetRecord """
            self.assertEqual(str(local.S.record), "1. + 2.")
            self.assertEqual(str(thick.S.record), "1. + 2.")
            thick.S.record = ADD(Float32(2), Float32(4))
            self.assertEqual(str(local.S.record), "2. + 4.")
            self.assertEqual(str(thick.S.record), "2. + 4.")
            self.assertEqual(str(local.T.record), str(thick.T.record))
            """ GetDefaultNid / SetDefaultNid """
            self.assertEqual(thick.getDefault(), thick.top)
            thick.setDefault(thick.S)
            self.assertEqual(thick.getDefault(), thick.top.S)
            thick.setDefault(thick.top)
            """ FindNodeWildRemote """
            self.assertEqual(str(thick.getNodeWild("T*")),
                             str(local.getNodeWild("T*")))
            """ FindTagWildRemote """
            self.assertEqual(thick.findTags("*"), local.findTags("*"))
            """ nci """
            thick.S.write_once = True
            self.assertEqual(thick.S.write_once, True)
            for nci in (
                    'on',
                    'depth',
                    'usage_str',
                    'dtype',
                    'length',
                    'rlength',
                    'fullpath',
                    'minpath',
                    'member_nids',
                    'children_nids',
                    'rfa',
                    'write_once',
            ):
                testnci(thick, local, con, nci)
            """ new stuff """
            self.assertEqual(local.getFileName(),
                             con.get("treefilename($,-1)", self.tree))
        finally:
            if svr_log:
                svr_log.close()
            self._stop_mdsip((svr, server))