~ubuntu-branches/ubuntu/natty/mgltools-vision/natty

« back to all changes in this revision

Viewing changes to Vision/Tests/test_standardlib.py

  • Committer: Bazaar Package Importer
  • Author(s): Steffen Moeller
  • Date: 2008-07-31 22:00:08 UTC
  • Revision ID: james.westby@ubuntu.com-20080731220008-broax3qn6pq9ygnb
Tags: upstream-1.5.2.cvs.20080731
ImportĀ upstreamĀ versionĀ 1.5.2.cvs.20080731

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
## Automatically adapted for numpy.oldnumeric Jul 23, 2007 by 
 
2
 
 
3
#########################################################################
 
4
#
 
5
# Date: Aug [0]003  Authors: Daniel Stoffler, Michel Sanner,Sowjanya Karnati 
 
6
#
 
7
#       stoffler@scripps.edu
 
8
#       sanner@scripps.edu
 
9
#
 
10
# Copyright: Daniel Stoffler, Michel Sanner, and TSRI
 
11
#
 
12
#########################################################################
 
13
 
 
14
import sys,unittest,os
 
15
import numpy.oldnumeric as Numeric
 
16
 
 
17
ed = None
 
18
import Vision
 
19
def pause():
 
20
        from time import sleep
 
21
        sleep(0.3)
 
22
class StandardLibraryBaseTest(unittest.TestCase):
 
23
 
 
24
    def setUp(self):
 
25
        global ed
 
26
        from Vision.VPE import VisualProgramingEnvironment
 
27
        ed = VisualProgramingEnvironment(name='Vision', withShell=0,)
 
28
        ed.master.update_idletasks()
 
29
        ed.configure(withThreads=0)
 
30
 
 
31
 
 
32
    def tearDown(self):
 
33
        ed.exit_cb()
 
34
        import gc
 
35
        gc.collect()
 
36
        try:
 
37
            cmd = "rm -f testfile.py"
 
38
            os.system(cmd)
 
39
        except:
 
40
            pass
 
41
 
 
42
##########################
 
43
## Tests
 
44
##########################
 
45
 
 
46
    def test_01_loadStandardLib(self):
 
47
        
 
48
        from Vision.StandardNodes import stdlib
 
49
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
50
        ed.master.update_idletasks()
 
51
        pause()
 
52
 
 
53
 
 
54
    def test_02_addAllNodes(self):
 
55
        # test all nodes in this library by adding them to the canvas, show widgets
 
56
        # in node if available and show paramPanel if available, then delete node
 
57
        from Vision.StandardNodes import stdlib
 
58
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
59
        ed.master.update_idletasks()
 
60
        pause()
 
61
        lib = 'Standard'
 
62
        libs = ed.libraries
 
63
        posx = 150
 
64
        posy = 150
 
65
        net = ed.currentNetwork
 
66
        for cat in libs[lib].libraryDescr.keys():
 
67
            for node in libs[lib].libraryDescr[cat]['nodes']:
 
68
                klass = node.nodeClass
 
69
                kw = node.kw
 
70
                args = node.args
 
71
                netNode = apply( klass, args, kw )
 
72
                print 'testing: '+node.name # begin node test
 
73
                #add node to canvas
 
74
                net.addNode(netNode,posx,posy)
 
75
                # show widget in node if available:
 
76
                widgetsInNode = netNode.getWidgetsForMaster('Node')
 
77
                if len( widgetsInNode.items() ):
 
78
                    if not netNode.isExpanded():
 
79
                        netNode.toggleNodeExpand_cb()
 
80
                        ed.master.update_idletasks()
 
81
                        pause()
 
82
                    else:
 
83
                        pause()
 
84
                    # and then hide it
 
85
                    netNode.toggleNodeExpand_cb()
 
86
                    ed.master.update_idletasks()
 
87
                    pause()
 
88
 
 
89
                # show widgets in param panel if available:
 
90
                widgetsInPanel = netNode.getWidgetsForMaster('ParamPanel')
 
91
                if len(widgetsInPanel.items()):
 
92
                    netNode.paramPanel.show()
 
93
                    ed.master.update_idletasks()
 
94
                    pause()
 
95
                    #and then hide it
 
96
                    netNode.paramPanel.hide()
 
97
                    ed.master.update_idletasks()
 
98
 
 
99
                # and now delete the node
 
100
                net.deleteNodes([netNode])
 
101
                ed.master.update_idletasks()
 
102
                print 'passed: '+node.name # end node test
 
103
 
 
104
########################################################
 
105
#   Filter Nodes Tests                                 #
 
106
########################################################
 
107
 
 
108
    def test_filter_cast(self):
 
109
        """testing cast node
 
110
        """
 
111
        from Vision.StandardNodes import stdlib
 
112
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
113
        ed.master.update_idletasks()
 
114
        pause()
 
115
        net =ed.currentNetwork
 
116
        net.runOnNewData.value = True
 
117
        #Cast node
 
118
        node1 = Vision.StandardNodes.Cast(library =Vision.StandardNodes.stdlib)
 
119
        net.addNode(node1,150,150)
 
120
        #entry node
 
121
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
122
        net.addNode(node2,50,50)
 
123
        #print node
 
124
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
125
        net.addNode(node3,200,50)
 
126
        net.connectNodes(node1,node3)
 
127
        net.connectNodes(node2,node1)
 
128
        node1.toggleNodeExpand_cb()
 
129
        #INPUT IS 1
 
130
        #int
 
131
        node1.inputPorts[1].widget.set('int')
 
132
        print "testing castnode entry int,input 1,output is:"
 
133
        node2.inputPorts[0].widget.set(1)
 
134
        self.assertEqual(node3.inputPorts[0].getData(),1)
 
135
        #list
 
136
        print "testing castnode entry list,input 1,output is:"
 
137
        node1.inputPorts[1].widget.set('list')
 
138
        self.assertEqual(node3.inputPorts[0].getData(),[1])
 
139
        #str
 
140
        print "testing castnode entry str,input 1,output is:"
 
141
        node1.inputPorts[1].widget.set('str')
 
142
        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
143
#        #0Darray
 
144
#        print "testing castnode entry 0Darray,input 1,output is:"
 
145
#        node1.inputPorts[1].widget.set('0Darray')
 
146
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
147
#        #0Dcomplex
 
148
#        print "testing castnode entry 0Dcomplex,input 1,output is:"
 
149
#        node1.inputPorts[1].widget.set('0Dcomplex')
 
150
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
151
#        #0Ddictionary
 
152
#        print "testing castnode entry 0Ddictionary,input 1,output is:"
 
153
#        node1.inputPorts[1].widget.set('0Ddictionary')
 
154
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
155
#        #0Ddouble
 
156
#        print "testing castnode entry 0Ddouble,input 1,output is:"
 
157
#        node1.inputPorts[1].widget.set('0Ddouble')
 
158
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
159
#        #0Dfloat
 
160
#        print "testing castnode entry 0Dfloat,input 1,output is:"
 
161
#        node1.inputPorts[1].widget.set('0Dfloat')
 
162
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
163
#        #0Dint
 
164
#        print "testing castnode entry 0Dint,input 1,output is:"
 
165
#        node1.inputPorts[1].widget.set('0Dint')
 
166
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
167
#        #0Dlist
 
168
#        print "testing castnode entry 0Dlist,input 1,output is:"
 
169
#        node1.inputPorts[1].widget.set('0Dlist')
 
170
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
171
#        #0Dlong
 
172
#        print "testing castnode entry 0Dlong,input 1,output is:"
 
173
#        node1.inputPorts[1].widget.set('0Dlong')
 
174
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
175
#        #0Dstring
 
176
#        print "testing castnode entry 0Dstring,input 1,output is:"
 
177
#        node1.inputPorts[1].widget.set('0Dstring')
 
178
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
179
#        #0Dtuple
 
180
#        print "testing castnode entry 0Dtuple,input 1,output is:"
 
181
#        node1.inputPorts[1].widget.set('0Dtuple')
 
182
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
183
#        #1Darray
 
184
#        print "testing castnode entry 1Darray,input 1,output is:"
 
185
#        node1.inputPorts[1].widget.set('1Darray')
 
186
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
187
#        #1Dcomplex
 
188
#        print "testing castnode entry 1Dcomplex,input 1,output is:"
 
189
#        node1.inputPorts[1].widget.set('1Dcomplex')
 
190
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
191
#        #1Ddictionary
 
192
#        print "testing castnode entry 1Ddictionary,input 1,output is:"
 
193
#        node1.inputPorts[1].widget.set('1Ddictionary')
 
194
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
195
#        #1Ddouble
 
196
#        print "testing castnode entry 1Ddouble,input 1,output is:"
 
197
#        node1.inputPorts[1].widget.set('1Ddouble')
 
198
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
199
#        #1Dfloat
 
200
#        print "testing castnode entry 1Dfloat,input 1,output is:"
 
201
#        node1.inputPorts[1].widget.set('1Dfloat')
 
202
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
203
#        #1Dint
 
204
#        print "testing castnode entry 1Dint,input 1,output is:"
 
205
#        node1.inputPorts[1].widget.set('1Dint')
 
206
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
207
#        #1Dlist
 
208
#        print "testing castnode entry 1Dlist,input 1,output is:"
 
209
#        node1.inputPorts[1].widget.set('1Dlist')
 
210
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
211
#        #1Dlong
 
212
#        print "testing castnode entry 1Dlong,input 1,output is:"
 
213
#        node1.inputPorts[1].widget.set('1Dlong')
 
214
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
215
#        #1Dstring
 
216
#        print "testing castnode entry 1Dstring,input 1,output is:"
 
217
#        node1.inputPorts[1].widget.set('1Dstring')
 
218
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
219
#        #1Dtuple
 
220
#        print "testing castnode entry 1Dtuple,input 1,output is:"
 
221
#        node1.inputPorts[1].widget.set('1Dtuple')
 
222
#        self.assertEqual(node3.inputPorts[0].getData(),'1')            
 
223
#        #2Darray
 
224
#        print "testing castnode entry 2Darray,input 1,output is:"
 
225
#        node1.inputPorts[1].widget.set('2Darray')
 
226
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
227
#        #2Dcomplex
 
228
#        print "testing castnode entry 2Dcomplex,input 1,output is:"
 
229
#        node1.inputPorts[1].widget.set('2Dcomplex')
 
230
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
231
#        #2Ddictionary
 
232
#        print "testing castnode entry 2Ddictionary,input 1,output is:"
 
233
#        node1.inputPorts[1].widget.set('2Ddictionary')
 
234
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
235
#        #2Ddouble
 
236
#        print "testing castnode entry 2Ddouble,input 1,output is:"
 
237
#        node1.inputPorts[1].widget.set('2Ddouble')
 
238
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
239
#        #2Dfloat
 
240
#        print "testing castnode entry 2Dfloat,input 1,output is:"
 
241
#        node1.inputPorts[1].widget.set('2Dfloat')
 
242
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
243
#        #2Dint
 
244
#        print "testing castnode entry 2Dint,input 1,output is:"
 
245
#        node1.inputPorts[1].widget.set('2Dint')
 
246
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
247
#        #2Dlist
 
248
#        print "testing castnode entry 2Dlist,input 1,output is:"
 
249
#        node1.inputPorts[1].widget.set('2Dlist')
 
250
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
251
#        #2Dlong
 
252
#        print "testing castnode entry 2Dlong,input 1,output is:"
 
253
#        node1.inputPorts[1].widget.set('2Dlong')
 
254
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
255
#        #2Dstring
 
256
#        print "testing castnode entry 2Dstring,input 1,output is:"
 
257
#        node1.inputPorts[1].widget.set('2Dstring')
 
258
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
259
#        #2Dtuple
 
260
#        node1.inputPorts[1].widget.set('2Dtuple')
 
261
#        print "testing castnode entry 2Dtuple,input 1,output is:"
 
262
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
263
#        #3Darray
 
264
#        print "testing castnode entry 3Darray,input 1,output is:"
 
265
#        node1.inputPorts[1].widget.set('3Darray')
 
266
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
267
#        #3Dcomplex
 
268
#        print "testing castnode entry 3Dcomplex,input 1,output is:"
 
269
#        node1.inputPorts[1].widget.set('3Dcomplex')
 
270
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
271
#        #3Ddictionary
 
272
#        print "testing castnode entry 3Ddictionary,input 1,output is:"
 
273
#        node1.inputPorts[1].widget.set('3Ddictionary')
 
274
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
275
#        #3Ddouble
 
276
#        print "testing castnode entry 3Ddouble,input 1,output is:"
 
277
#        node1.inputPorts[1].widget.set('3Ddouble')
 
278
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
279
#        #3Dfloat
 
280
#        print "testing castnode entry 3Dfloat,input 1,output is:"
 
281
#        node1.inputPorts[1].widget.set('3Dfloat')
 
282
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
283
#        #3Dint
 
284
#        print "testing castnode entry 3Dint,input 1,output is:"
 
285
#        node1.inputPorts[1].widget.set('3Dint')
 
286
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
287
#        #3Dlist
 
288
#        print "testing castnode entry 3Dlist,input 1,output is:"
 
289
#        node1.inputPorts[1].widget.set('3Dlist')
 
290
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
291
#        #3Dlong
 
292
#        print "testing castnode entry 3Dlong,input 1,output is:"
 
293
#        node1.inputPorts[1].widget.set('3Dlong')
 
294
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
295
#        #3Dstring
 
296
#        print "testing castnode entry 3Dstring,input 1,output is:"
 
297
#        node1.inputPorts[1].widget.set('3Dstring')
 
298
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
299
#        #3Dtuple
 
300
#        print "testing castnode entry 3Dtuple,input 1,output is:"
 
301
#        node1.inputPorts[1].widget.set('3Dtuple')
 
302
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
303
#        #4Darray
 
304
#        print "testing castnode entry 4Darray,input 1,output is:"
 
305
#        node1.inputPorts[1].widget.set('4Darray')
 
306
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
307
#        #4Dcomplex
 
308
#        print "testing castnode entry 4Dcomplex,input 1,output is:"
 
309
#        node1.inputPorts[1].widget.set('4Dcomplex')
 
310
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
311
#        #4Ddictionary
 
312
#        print "testing castnode entry 4Ddictionary,input 1,output is:"
 
313
#        node1.inputPorts[1].widget.set('4Ddictionary')
 
314
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
315
#        #4Ddouble
 
316
#        print "testing castnode entry 4Ddouble,input 1,output is:"
 
317
#        node1.inputPorts[1].widget.set('4Ddouble')
 
318
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
319
#        #4Dfloat
 
320
#        print "testing castnode entry 4Dfloat,input 1,output is:"
 
321
#        node1.inputPorts[1].widget.set('4Dfloat')
 
322
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
323
#        #4Dint
 
324
#        print "testing castnode entry 4Dint,input 1,output is:" 
 
325
#        node1.inputPorts[1].widget.set('4Dint')
 
326
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
327
#        #4Dlist
 
328
#        print "testing castnode entry 4Dlist,input 1,output is:"
 
329
#        node1.inputPorts[1].widget.set('4Dlist')
 
330
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
331
#        #4Dlong
 
332
#        print "testing castnode entry 4Dlong,input 1,output is:"
 
333
#        node1.inputPorts[1].widget.set('4Dlong')
 
334
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
335
#        #4Dstring
 
336
#        print "testing castnode entry 4Dstring,input 1,output is:"
 
337
#        node1.inputPorts[1].widget.set('4Dstring')
 
338
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
339
#        #4Dtuple
 
340
#        print "testing castnode entry 4Dtuple,input 1,output is:"
 
341
#        node1.inputPorts[1].widget.set('4Dtuple')
 
342
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
343
#        #5Darray
 
344
#        print "testing castnode entry 5Darray,input 1,output is:"
 
345
#        node1.inputPorts[1].widget.set('5Darray')
 
346
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
347
#        #5Dcomplex
 
348
#        print "testing castnode entry 5Dcomplex,input 1,output is:"
 
349
#        node1.inputPorts[1].widget.set('5Dcomplex')
 
350
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
351
#        #5Ddictionary
 
352
#        print "testing castnode entry 5Ddictionary,input 1,output is:"
 
353
#        node1.inputPorts[1].widget.set('5Ddictionary')
 
354
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
355
#        #5Ddouble
 
356
#        print "testing castnode entry 5Ddouble,input 1,output is:"
 
357
#        node1.inputPorts[1].widget.set('5Ddouble')
 
358
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
359
#        #5Dfloat
 
360
#        print "testing castnode entry 5Dfloat,input 1,output is:"
 
361
#        node1.inputPorts[1].widget.set('5Dfloat')
 
362
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
363
#        #5Dint
 
364
#        print "testing castnode entry 5Dint,input 1,output is:"
 
365
#        node1.inputPorts[1].widget.set('5Dint')
 
366
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
367
#        #5Dlist
 
368
#        print "testing castnode entry 5Dlist,input 1,output is:"
 
369
#        node1.inputPorts[1].widget.set('5Dlist')
 
370
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
371
#        #5Dlong
 
372
#        print "testing castnode entry 5Dlong,input 1,output is:"
 
373
#        node1.inputPorts[1].widget.set('5Dlong')
 
374
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
375
#        #5Dstring
 
376
#        print "testing castnode entry 5Dstring,input 1,output is:"
 
377
#        node1.inputPorts[1].widget.set('5Dstring')
 
378
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
379
#        #5Dtuple
 
380
#        print "testing castnode entry 5Dtuple,input 1,output is:"
 
381
#        node1.inputPorts[1].widget.set('5Dtuple')
 
382
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
383
#        #6Darray
 
384
#        print "testing castnode entry 6Darray,input 1,output is:"
 
385
#        node1.inputPorts[1].widget.set('6Darray')
 
386
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
387
#        #6Dcomplex
 
388
#        print "testing castnode entry 6Dcomplex,input 1,output is:"
 
389
#        node1.inputPorts[1].widget.set('6Dcomplex')
 
390
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
391
#        #6Ddictionary
 
392
#        print "testing castnode entry 6Ddictionary,input 1,output is:"
 
393
#        node1.inputPorts[1].widget.set('6Ddictionary')
 
394
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
395
#        #6Ddouble
 
396
#        print "testing castnode entry 6Ddouble,input 1,output is:"
 
397
#        node1.inputPorts[1].widget.set('6Ddouble')
 
398
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
399
#        #6Dfloat
 
400
#        print "testing castnode entry 6Dfloat,input 1,output is:"
 
401
#        node1.inputPorts[1].widget.set('6Dfloat')
 
402
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
403
#        #6Dint
 
404
#        print "testing castnode entry 6Dint,input 1,output is:"
 
405
#        node1.inputPorts[1].widget.set('6Dint')
 
406
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
407
#        #6Dlist
 
408
#        print "testing castnode entry 6Dlist,input 1,output is:"
 
409
#        node1.inputPorts[1].widget.set('6Dlist')
 
410
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
411
#        #6Dlong
 
412
#        print "testing castnode entry 6Dlong,input 1,output is:"
 
413
#        node1.inputPorts[1].widget.set('6Dlong')
 
414
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
415
#        #6Dstring
 
416
#        print "testing castnode entry 6Dstring,input 1,output is:"
 
417
#        node1.inputPorts[1].widget.set('6Dstring')
 
418
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
419
#        #6Dtuple
 
420
#        print "testing castnode entry 6Dtuple,input 1,output is:"
 
421
#        node1.inputPorts[1].widget.set('6Dtuple')
 
422
#        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
423
        #None
 
424
        print "testing castnode entry None,input 1,output is:"
 
425
        node1.inputPorts[1].widget.set('None')
 
426
        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
427
        #NumericArray
 
428
        print "testing castnode entry NumericArray,input 1,output is:"
 
429
        node1.inputPorts[1].widget.set('NumericArray')
 
430
        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
431
        #array
 
432
        #print "testing castnode entry array,input 1,output is:"
 
433
        #node1.inputPorts[1].widget.set('array')
 
434
        #self.assertEqual(node3.inputPorts[0].getData(),'1')
 
435
        #dict
 
436
        #print "testing castnode entry dict,input 1,output is:"
 
437
        #node1.inputPorts[1].widget.set('dict')
 
438
        #self.assertEqual(node3.inputPorts[0].getData(),'1')
 
439
        #float
 
440
        print "testing castnode entry float,input 1,output is:"
 
441
        node1.inputPorts[1].widget.set('float')
 
442
        self.assertEqual(node3.inputPorts[0].getData(),1.0)
 
443
 
 
444
#        #instanceMatrices
 
445
#        print "testing castnode entry instanceMatrices,input 1,output is:"
 
446
#        node1.inputPorts[1].widget.set('instancemat')
 
447
#        self.assertEqual(node3.inputPorts[0].getData(),1.0)
 
448
 
 
449
        #string
 
450
        print "testing castnode entry string,input 1,output is:"
 
451
        node1.inputPorts[1].widget.set('string')
 
452
        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
453
        #triggerIn
 
454
        print "testing castnode entry triggerIn,input 1,output is:"
 
455
        node1.inputPorts[1].widget.set('triggerIn')
 
456
        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
457
        #triggerOut
 
458
        print "testing castnode entry triggerIn,input 1,output is:"
 
459
        node1.inputPorts[1].widget.set('triggerIn')
 
460
        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
461
        #tuple
 
462
        print "testing castnode entry tuple,input 1,output is:"
 
463
        node1.inputPorts[1].widget.set('tuple')
 
464
        self.assertEqual(node3.inputPorts[0].getData(),('1',))
 
465
        #vector
 
466
        print "testing castnode entry vector,input 1,output is:"
 
467
        node1.inputPorts[1].widget.set('vector')
 
468
        self.assertEqual(node3.inputPorts[0].getData(),('1',))
 
469
 
 
470
 
 
471
    def test_filter_duplicate(self):
 
472
        """tests duplicate node when input is 1,p,[0] and entry is 2
 
473
        """
 
474
        from Vision.StandardNodes import stdlib
 
475
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
476
        ed.master.update_idletasks()
 
477
        pause()
 
478
        net = ed.currentNetwork
 
479
        net.runOnNewData.value = True
 
480
        #duplicate node
 
481
        node1 = Vision.StandardNodes.Duplicate(library =Vision.StandardNodes.stdlib)
 
482
        net.addNode(node1,150,150)
 
483
        #entry node
 
484
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
485
        net.addNode(node2,50,50)
 
486
        #pritn node
 
487
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
488
        net.addNode(node3,200,50)
 
489
        #connecting nodes
 
490
        net.connectNodes(node1,node3)
 
491
        net.connectNodes(node2,node1)
 
492
        #toggle node to expand
 
493
        node1.toggleNodeExpand_cb()
 
494
        #setting values to duplicate node and entry node
 
495
        node2.inputPorts[0].widget.set(1)
 
496
        node1.inputPorts[1].widget.set(2)
 
497
        print "tests when duplicate node entry 2,input 1,output is:"
 
498
        ed.master.update_idletasks()
 
499
        pause()
 
500
        self.assertEqual(node3.inputPorts[0].getData(),['1', '1'])
 
501
        print "tests when duplicate node entry 2,input p,output is:"
 
502
        node2.inputPorts[0].widget.set('p')
 
503
        ed.master.update_idletasks()
 
504
        pause()
 
505
        self.assertEqual(node3.inputPorts[0].getData(),['p', 'p'])
 
506
        print "tests when duplicate node entry 2,input [0],output is:"
 
507
        node2.inputPorts[0].widget.set([0])
 
508
        ed.master.update_idletasks()
 
509
        pause()
 
510
        self.assertEqual(node3.inputPorts[0].getData(),['[0]', '[0]'])
 
511
        
 
512
 
 
513
 
 
514
#    def Xtest_filter_index(self):
 
515
#        """tests index node when input is hello and entry 1
 
516
#        """
 
517
#        from Vision.StandardNodes import stdlib
 
518
#        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
519
#        ed.master.update_idletasks()
 
520
#        pause()
 
521
#        net = ed.currentNetwork
 
522
#        #Index node
 
523
#        node1 = Vision.StandardNodes.Index(library =Vision.StandardNodes.stdlib)
 
524
#        net.addNode(node1,150,150)
 
525
#        #entry node
 
526
#        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
527
#        net.addNode(node2,50,50)
 
528
#        #print node
 
529
#        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
530
#        net.addNode(node3,200,50)
 
531
#        #connect nodes
 
532
#        net.connectNodes(node1,node3)
 
533
#        net.connectNodes(node2,node1)
 
534
#        node1.toggleNodeExpand_cb() 
 
535
#        #setting values for index,entry nodes
 
536
#        print "tests when indexnode entry is 1,input hello,output:"
 
537
#        node2.inputPorts[0].widget.set("hello")
 
538
#        node1.inputPorts[1].widget.set(1)
 
539
#        ed.master.update_idletasks()
 
540
#        pause()
 
541
#        self.assertEqual(node3.inputPorts[0].getData(),'e')
 
542
#        print "tests when indexnode entry is 1,input 759087436,output:"
 
543
#        node2.inputPorts[0].widget.set("759087436")
 
544
#        ed.master.update_idletasks()
 
545
#        pause()
 
546
#        self.assertEqual(node3.inputPorts[0].getData(),'5')
 
547
#        print "tests when indexnode entry is 9,input is 75908743674 ,output is :"
 
548
#        node2.inputPorts[0].widget.set("75908743674")
 
549
#        node1.inputPorts[1].widget.set(9)
 
550
#        ed.master.update_idletasks()
 
551
#        pause()
 
552
#        self.assertEqual(node3.inputPorts[0].getData(),'7')
 
553
#        #raising IndexError but not catching it
 
554
#        #self.assertRaises(IndexError,node2.inputPorts[0].widget.set,' ')
 
555
    
 
556
    def test_filter_listOf(self):
 
557
        """tests listOf node when input is 12 output is [12]
 
558
        """
 
559
        from Vision.StandardNodes import stdlib
 
560
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
561
        ed.master.update_idletasks()
 
562
        pause()
 
563
        net = ed.currentNetwork
 
564
        #listof node
 
565
        node1 = Vision.StandardNodes.ListOf(library =Vision.StandardNodes.stdlib)
 
566
        net.addNode(node1,150,150)
 
567
        #generic node
 
568
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
569
        net.addNode(node2,50,50)
 
570
        #print node
 
571
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
572
        net.addNode(node3,200,50)
 
573
        node2.addOutputPort()
 
574
        node2.setFunction("def doit(self):\n\tself.outputData(out0=12)\n")
 
575
        net.connectNodes(node1,node3)
 
576
        print "tests when listOfnode ,input 12 ,output :"
 
577
        #adding an input port for list of
 
578
        node1.addInputPort()
 
579
        #connecting generic nad list of node
 
580
        port3 =node2.outputPorts[0]
 
581
        port4 =node1.inputPorts[1] 
 
582
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
583
        ed.runCurrentNet_cb()
 
584
        self.assertEqual(node3.inputPorts[0].getData(),[12])
 
585
        
 
586
    def test_filter_operator_2_apply_to_elments_1(self):
 
587
        
 
588
        from Vision.StandardNodes import stdlib
 
589
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
590
        ed.master.update_idletasks()
 
591
        pause()
 
592
        net = ed.currentNetwork
 
593
        #operator2 node
 
594
        node1 = Vision.StandardNodes.Operator2(library =Vision.StandardNodes.stdlib)
 
595
        net.addNode(node1,150,150)
 
596
        #generic node
 
597
        node0 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
598
        net.addNode(node0,50,50)
 
599
        #generic node
 
600
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
601
        net.addNode(node2,200,10)
 
602
        #print node
 
603
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
604
        net.addNode(node3,400,100)
 
605
        #adding outports and setting edit functions for generic nodes
 
606
        node0.addOutputPort()
 
607
        node0.setFunction("def doit(self):\n\tself.outputData(out0=['1','2','3','4','5'])\n")
 
608
        node2.addOutputPort()
 
609
        node2.setFunction("def doit(self):\n\tself.outputData(out0=['6','7','8','9','10'])\n")
 
610
        #toggle On apply to elements button
 
611
        node1.inputPorts[3].widget.set(1)
 
612
        #connecting nodes
 
613
        net.connectNodes(node1,node3)
 
614
        #connecting first generic node to operator2 
 
615
        port3 =node0.outputPorts[0]
 
616
        port4 =node1.inputPorts[0] 
 
617
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
618
        #connecting second generic node to operator2
 
619
        port3 =node2.outputPorts[0]
 
620
        port4 =node1.inputPorts[1] 
 
621
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
622
        print "tests operator2 entry concat,input ['1','2','3','4','5'],['6','7','8','9','10'],apply to elements On,output is:"
 
623
        node1.inputPorts[2].widget.set('concat')
 
624
        ed.runCurrentNet_cb()
 
625
        ed.master.update_idletasks()
 
626
        pause()
 
627
        self.assertEqual(node3.inputPorts[0].getData(),['16', '27', '38', '49', '510'])
 
628
        print "tests operator2 entry contains,input ['1','2','3','4','5'],['6','7','8','9','10'],apply to elements On,output is:"
 
629
        node1.inputPorts[2].widget.set('contains')
 
630
        ed.runCurrentNet_cb()
 
631
        ed.master.update_idletasks()
 
632
        pause()
 
633
        self.assertEqual(node3.inputPorts[0].getData(),[False, False, False, False, False])
 
634
        print "tests operator2 entry countOf,input ['1','2','3','4','5'],['6','7','8','9','10'],apply to elements On,output is:"
 
635
        node1.inputPorts[2].widget.set('countOf')
 
636
        ed.runCurrentNet_cb()
 
637
        ed.master.update_idletasks()
 
638
        pause()
 
639
        self.assertEqual(node3.inputPorts[0].getData(),[0, 0, 0, 0, 0])
 
640
        
 
641
    def test_filter_operator_2_apply_to_elments_2(self):
 
642
        
 
643
        from Vision.StandardNodes import stdlib
 
644
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
645
        ed.master.update_idletasks()
 
646
        pause()
 
647
        net = ed.currentNetwork
 
648
        net.runOnNewData.value = True
 
649
        #operator2 node
 
650
        node1 = Vision.StandardNodes.Operator2(library =Vision.StandardNodes.stdlib)
 
651
        net.addNode(node1,150,150)
 
652
        #generic node
 
653
        node0 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
654
        net.addNode(node0,50,50)
 
655
        #generic node
 
656
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
657
        net.addNode(node2,200,10)
 
658
        #print node
 
659
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
660
        net.addNode(node3,400,100)
 
661
        #adding outports ,setting edit functions for generic node
 
662
        node0.addOutputPort()
 
663
        node0.setFunction("def doit(self):\n\tself.outputData(out0=[1,2,3,4,5])\n")
 
664
        node2.addOutputPort()
 
665
        node2.setFunction("def doit(self):\n\tself.outputData(out0=[6,7,8,9,10])\n")
 
666
        #toggle On apply to elements button
 
667
        node1.inputPorts[3].widget.set(1)
 
668
        #connecting nodes
 
669
        net.connectNodes(node1,node3)
 
670
        port3 =node0.outputPorts[0]
 
671
        port4 =node1.inputPorts[0] 
 
672
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
673
        port3 =node2.outputPorts[0]
 
674
        port4 =node1.inputPorts[1] 
 
675
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
676
        #setting operation lt in operator2
 
677
        print "tests operator2 entry lt,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On ,output is:"
 
678
        node1.inputPorts[2].widget.set('lt')
 
679
        ed.runCurrentNet_cb()
 
680
        ed.master.update_idletasks()
 
681
        pause()
 
682
        self.assertEqual(node3.inputPorts[0].getData(),[True, True, True, True, True])
 
683
        print "tests operator2 entry le,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
684
        #setting operation le in operator2
 
685
        node1.inputPorts[2].widget.set('le')
 
686
        ed.master.update_idletasks()
 
687
        pause()
 
688
        self.assertEqual(node3.inputPorts[0].getData(),[True, True, True, True, True])
 
689
        print "tests operator2 entry eq,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
690
        #setting operation eq in operator2
 
691
        node1.inputPorts[2].widget.set('eq')
 
692
        ed.master.update_idletasks()
 
693
        pause()
 
694
        self.assertEqual(node3.inputPorts[0].getData(),[False, False, False, False, False])
 
695
        print "tests operator2 entry ne,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
696
        #setting operation ne in operator2
 
697
        node1.inputPorts[2].widget.set('ne')
 
698
        ed.master.update_idletasks()
 
699
        pause()
 
700
        self.assertEqual(node3.inputPorts[0].getData(),[True, True, True, True, True])
 
701
        print "tests operator2 entry gt,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
702
        #setting operation gt in operator2
 
703
        node1.inputPorts[2].widget.set('gt')
 
704
        ed.master.update_idletasks()
 
705
        pause()
 
706
        self.assertEqual(node3.inputPorts[0].getData(),[False, False, False, False, False])
 
707
        print "tests operator2 entry ge,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
708
        #setting operation ge in operator2
 
709
        node1.inputPorts[2].widget.set('ge')
 
710
        ed.master.update_idletasks()
 
711
        pause()
 
712
        self.assertEqual(node3.inputPorts[0].getData(),[False, False, False, False, False])
 
713
        print "tests operator2 entry is_,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
714
        #setting operation is_ in operator2
 
715
        node1.inputPorts[2].widget.set('is_')
 
716
        ed.master.update_idletasks()
 
717
        pause()
 
718
        self.assertEqual(node3.inputPorts[0].getData(),[False, False, False, False, False])
 
719
        print "tests operator2 entry is_not,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
720
        #setting operation is_not in operator2
 
721
        node1.inputPorts[2].widget.set('is_not')
 
722
        ed.master.update_idletasks()
 
723
        pause()
 
724
        self.assertEqual(node3.inputPorts[0].getData(),[True, True, True, True, True])
 
725
        print "tests operator2 entry add,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
726
        #setting operation add in opeartor2
 
727
        node1.inputPorts[2].widget.set('add')
 
728
        ed.master.update_idletasks()
 
729
        pause()
 
730
        self.assertEqual(node3.inputPorts[0].getData(),[7, 9, 11, 13, 15])
 
731
        print "tests operator2 entry div,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
732
        #setting opeartion div in opeartor2
 
733
        node1.inputPorts[2].widget.set('div')
 
734
        ed.master.update_idletasks()
 
735
        pause()
 
736
        self.assertEqual(node3.inputPorts[0].getData(),[0, 0, 0, 0, 0])
 
737
        print "tests operator2 entry floordiv,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
738
        #setting opeartion floordiv in opeartor2
 
739
        node1.inputPorts[2].widget.set('floordiv')
 
740
        ed.master.update_idletasks()
 
741
        pause()
 
742
        self.assertEqual(node3.inputPorts[0].getData(),[0, 0, 0, 0, 0])
 
743
        print "tests operator2 entry mod,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
744
        #setting opeartion mod in opeartor2
 
745
        node1.inputPorts[2].widget.set('mod')
 
746
        ed.master.update_idletasks()
 
747
        pause()
 
748
        self.assertEqual(node3.inputPorts[0].getData(),[1, 2, 3, 4, 5])
 
749
        print "tests operator2 entry mul,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
750
        #setting opeartion mul in opeartor2
 
751
        node1.inputPorts[2].widget.set('mul')
 
752
        ed.master.update_idletasks()
 
753
        pause()
 
754
        self.assertEqual(node3.inputPorts[0].getData(),[6, 14, 24, 36, 50])
 
755
        print "tests operator2 entry pow,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
756
        #setting opeartion pow in opeartor2
 
757
        node1.inputPorts[2].widget.set('pow')
 
758
        ed.runCurrentNet_cb()
 
759
        ed.master.update_idletasks()
 
760
        pause()
 
761
        self.assertEqual(node3.inputPorts[0].getData(),[1, 128, 6561, 262144, 9765625])
 
762
        print "tests operator2 entry sub,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
763
        #setting opeartion sub in opeartor2
 
764
        node1.inputPorts[2].widget.set('sub')
 
765
        ed.master.update_idletasks()
 
766
        pause()
 
767
        self.assertEqual(node3.inputPorts[0].getData(),[-5, -5, -5, -5, -5])
 
768
        print "tests operator2 entry rshift,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
769
        #setting opeartion rshift in opeartor2
 
770
        node1.inputPorts[2].widget.set('rshift')
 
771
        ed.master.update_idletasks()
 
772
        pause()
 
773
        self.assertEqual(node3.inputPorts[0].getData(),[0, 0, 0, 0, 0])
 
774
        print "tests operator2 entry lshift,input [1,2,3,4,5],[6,7,8,9,10],apply to elements On,output is:"
 
775
        #setting opeartion lshift in opeartor2
 
776
        node1.inputPorts[2].widget.set('lshift')
 
777
        ed.master.update_idletasks()
 
778
        pause()
 
779
        self.assertEqual(node3.inputPorts[0].getData(),[64, 256, 768, 2048, 5120])
 
780
 
 
781
        
 
782
    def test_filter_operator_2_1(self):
 
783
        from Vision.StandardNodes import stdlib
 
784
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
785
        ed.master.update_idletasks()
 
786
        pause()
 
787
        net = ed.currentNetwork
 
788
        net.runOnNewData.value = True
 
789
        #operator2 node
 
790
        node1 = Vision.StandardNodes.Operator2(library =Vision.StandardNodes.stdlib)
 
791
        net.addNode(node1,150,150)
 
792
        #generic node
 
793
        node0 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
794
        net.addNode(node0,50,50)
 
795
        #generic node
 
796
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
797
        net.addNode(node2,200,10)
 
798
        #print node
 
799
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
800
        net.addNode(node3,400,100)
 
801
        #adding outports ,setting edit functions for generic node
 
802
        node0.addOutputPort()
 
803
        node0.setFunction("def doit(self):\n\tself.outputData(out0=[1,2,3,4,5])\n")
 
804
        node2.addOutputPort()
 
805
        node2.setFunction("def doit(self):\n\tself.outputData(out0 = 3)\n")
 
806
        net.connectNodes(node1,node3)
 
807
        port3 =node0.outputPorts[0]
 
808
        port4 =node1.inputPorts[0] 
 
809
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
810
        port3 =node2.outputPorts[0]
 
811
        port4 =node1.inputPorts[1] 
 
812
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
813
        print "tests operator2 entry indexOf,input [1,2,3,4,5],3,output:"
 
814
        node1.inputPorts[2].widget.set('indexOf')
 
815
        ed.runCurrentNet_cb()
 
816
        self.assertEqual(node3.inputPorts[0].getData(),2)
 
817
        print "tests operator2 entry getitem,input [1,2,3,4,5],3,output:"
 
818
        node1.inputPorts[2].widget.set('getitem')
 
819
        self.assertEqual(node3.inputPorts[0].getData(),4)
 
820
        print "tests operator2 entry delitem,input [1,2,3,4,5],3,output:"
 
821
        node1.inputPorts[2].widget.set('delitem')
 
822
        self.assertEqual(node3.inputPorts[0].getData(),[1,2,3,5])
 
823
 
 
824
 
 
825
    def test_filter_Operator2(self):
 
826
        """tests operator2 entry lt,le,eq,ne,gt,ge,is_,is_not,concat,contains,countOf,input through entry buttons
 
827
        """
 
828
        from Vision.StandardNodes import stdlib
 
829
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
830
        ed.master.update_idletasks()
 
831
        pause()
 
832
        net = ed.currentNetwork
 
833
        net.runOnNewData.value = True
 
834
        #opearator2 node
 
835
        node1 = Vision.StandardNodes.Operator2(library =Vision.StandardNodes.stdlib)
 
836
        net.addNode(node1,150,150)
 
837
        #entry node
 
838
        node0 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
839
        net.addNode(node0,50,50)
 
840
        #entry node
 
841
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
842
        net.addNode(node2,200,10)
 
843
        #print node
 
844
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
845
        net.addNode(node3,400,100)
 
846
        #connecting nodes
 
847
        net.connectNodes(node1,node3)
 
848
        port1 = node2.inputPorts[0]
 
849
        port2 = node1.inputPorts[0]
 
850
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
851
        port3 =node0.inputPorts[0]
 
852
        port4 =node1.inputPorts[1] 
 
853
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
854
        node0.inputPorts[0].widget.set(10)
 
855
        node2.inputPorts[0].widget.set(20)
 
856
        print "tests operator2 entry lt,input 10,20,output:"
 
857
        #setting operator lt
 
858
        node1.inputPorts[2].widget.set('lt')
 
859
        ed.master.update_idletasks()
 
860
        pause()
 
861
        self.assertEqual(node3.inputPorts[0].getData(),False)
 
862
        print "tests operator2 entry le,input 10,20,output:"
 
863
        #setting operator le
 
864
        node1.inputPorts[2].widget.set('le')
 
865
        ed.master.update_idletasks()
 
866
        pause()
 
867
        self.assertEqual(node3.inputPorts[0].getData(),False)
 
868
        print "tests operator2 entry eq,input 10,20,output:"
 
869
        #setting operator eq
 
870
        node1.inputPorts[2].widget.set('eq')
 
871
        ed.master.update_idletasks()
 
872
        pause()
 
873
        self.assertEqual(node3.inputPorts[0].getData(),False)
 
874
        print "tests operator2 entry ne,input 10,20,output:"
 
875
        #setting operator ne
 
876
        node1.inputPorts[2].widget.set('ne')
 
877
        ed.master.update_idletasks()
 
878
        pause()
 
879
        self.assertEqual(node3.inputPorts[0].getData(),True)
 
880
        print "tests operator2 entry gt,input 10,20,output:"
 
881
        #setting operator gt
 
882
        node1.inputPorts[2].widget.set('gt')
 
883
        ed.master.update_idletasks()
 
884
        pause()
 
885
        self.assertEqual(node3.inputPorts[0].getData(),True)
 
886
        print "tests operator2 entry ge,input 10,20,output:"
 
887
        #setting operator ge
 
888
        node1.inputPorts[2].widget.set('ge')
 
889
        ed.master.update_idletasks()
 
890
        pause()
 
891
        self.assertEqual(node3.inputPorts[0].getData(),True)
 
892
        print "tests operator2 entry is_,input 10,20,output:"
 
893
        #setting operator is_
 
894
        node1.inputPorts[2].widget.set('is_')
 
895
        ed.master.update_idletasks()
 
896
        pause()
 
897
        self.assertEqual(node3.inputPorts[0].getData(),False)
 
898
        print "tests operator2 entry is_not,input 10,20,output:"
 
899
        #setting operator is_not
 
900
        node1.inputPorts[2].widget.set('is_not')
 
901
        ed.master.update_idletasks()
 
902
        pause()
 
903
        ed.master.update_idletasks()
 
904
        pause()
 
905
        self.assertEqual(node3.inputPorts[0].getData(),True)
 
906
        print "tests operator2 entry concat,input 10,20,output:"
 
907
        #setting operator concat
 
908
        node1.inputPorts[2].widget.set('concat')
 
909
        ed.master.update_idletasks()
 
910
        pause()
 
911
        self.assertEqual(node3.inputPorts[0].getData(),'2010')
 
912
        print "tests operator2 entry contains,input 10,20,output:"
 
913
        #setting operator contains
 
914
        node1.inputPorts[2].widget.set('contains')
 
915
        ed.master.update_idletasks()
 
916
        pause()
 
917
        self.assertEqual(node3.inputPorts[0].getData(),False)
 
918
        print "tests operator2 entry countOf,input 10,20,output:"
 
919
        #setting operator countOf
 
920
        node1.inputPorts[2].widget.set('countOf')
 
921
        ed.master.update_idletasks()
 
922
        pause()
 
923
        self.assertEqual(node3.inputPorts[0].getData(),0) 
 
924
        
 
925
       
 
926
    def test_filter_operator2_2(self):
 
927
        """tests operator2 entry add,div,floordiv,mod,mul,pow,lshift,rshift,input through entry button 
 
928
        """
 
929
        from Vision.StandardNodes import stdlib
 
930
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
931
        ed.master.update_idletasks()
 
932
        pause()
 
933
        net = ed.currentNetwork
 
934
        net.runOnNewData.value = True
 
935
        #node1 is opeartor2
 
936
        node1 = Vision.StandardNodes.Operator2(library =Vision.StandardNodes.stdlib)
 
937
        #adding node1
 
938
        net.addNode(node1,150,150)
 
939
        #node0 entry button1
 
940
        node0 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
941
        #adding node0
 
942
        net.addNode(node0,50,50)
 
943
        #node2 is entry button2
 
944
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
945
        #adding node2
 
946
        net.addNode(node2,200,10)
 
947
        #node3 is print 
 
948
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
949
        #adding node3 
 
950
        net.addNode(node3,400,100)
 
951
        #connecting operator2 and print
 
952
        net.connectNodes(node1,node3)
 
953
        #connecting entry button1 o/p to operator2 i/p
 
954
        port1 = node2.outputPorts[0]
 
955
        port2 = node1.inputPorts[0]
 
956
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
957
        #connecting entry button2 o/p to operator2 i/p
 
958
        port3 =node0.inputPorts[0]
 
959
        port4 =node1.inputPorts[1] 
 
960
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
961
        
 
962
        #setting value in entry button 1
 
963
        node0.inputPorts[0].widget.set(20)
 
964
        #setting value in entry button 2
 
965
        node2.inputPorts[0].widget.set(10)
 
966
        #setting output ports of entry button1 data type to int
 
967
        node0.outputPorts[0].edit()
 
968
        node0.outputPorts[0].objEditor.dataType.set('int')
 
969
        node0.outputPorts[0].objEditor.OK()
 
970
        #setting input port1 of opeartor 2 data type to int
 
971
        node1.inputPorts[0].edit()
 
972
        node1.inputPorts[0].objEditor.dataType.set('int')
 
973
        node1.inputPorts[0].objEditor.OK()
 
974
        #setting output ports of entry button2 data type to int
 
975
        node2.outputPorts[0].edit()
 
976
        node2.outputPorts[0].objEditor.dataType.set('int')
 
977
        node2.outputPorts[0].objEditor.OK()
 
978
        #setting input port2 of opeartor 2 data type to int
 
979
        node1.inputPorts[1].edit()
 
980
        node1.inputPorts[1].objEditor.dataType.set('int')
 
981
        node1.inputPorts[1].objEditor.OK()
 
982
        #setting operation add in opeartor2
 
983
        print "tests operator2 entry add ,input 20,10,output is:"
 
984
        node1.inputPorts[2].widget.set('add')
 
985
        ed.runCurrentNet_cb()
 
986
        #ed.master.update_idletasks()
 
987
        #pause()
 
988
        self.assertEqual(node3.inputPorts[0].getData(),30)
 
989
        print "tests operator2 entry div ,input 20,10,output is:"
 
990
        #setting opeartion div in opeartor2
 
991
        node1.inputPorts[2].widget.set('div')
 
992
        ed.master.update_idletasks()
 
993
        pause()
 
994
        self.assertEqual(node3.inputPorts[0].getData(),0)
 
995
        print "tests operator2 entry floordiv ,input 20,10,output is:"
 
996
        #setting opeartion floordiv in opeartor2
 
997
        node1.inputPorts[2].widget.set('floordiv')
 
998
        ed.master.update_idletasks()
 
999
        pause()
 
1000
        self.assertEqual(node3.inputPorts[0].getData(),0)
 
1001
        print "tests operator2 entry mod ,input 20,10,output is:"
 
1002
        #setting opeartion mod in opeartor2
 
1003
        node1.inputPorts[2].widget.set('mod')
 
1004
        ed.master.update_idletasks()
 
1005
        pause()
 
1006
        self.assertEqual(node3.inputPorts[0].getData(),10)
 
1007
        print "tests operator2 entry mul ,input 20,10,output is:"
 
1008
        #setting opeartion mul in opeartor2
 
1009
        node1.inputPorts[2].widget.set('mul')
 
1010
        ed.master.update_idletasks()
 
1011
        pause()
 
1012
        self.assertEqual(node3.inputPorts[0].getData(),200)
 
1013
        #setting value in entry button 1
 
1014
        node0.inputPorts[0].widget.set(2)
 
1015
        #setting value in entry button 2
 
1016
        node2.inputPorts[0].widget.set(1)
 
1017
        #setting opeartion pow in opeartor2
 
1018
        print "tests operator2 entry pow ,input 20,10,output is:"
 
1019
        node1.inputPorts[2].widget.set('pow')
 
1020
        ed.runCurrentNet_cb()
 
1021
        ed.master.update_idletasks()
 
1022
        pause()
 
1023
        self.assertEqual(node3.inputPorts[0].getData(),1)
 
1024
        #setting opeartion sub in opeartor2
 
1025
        print "tests operator2 entry sub ,input 20,10,output is:"
 
1026
        node1.inputPorts[2].widget.set('sub')
 
1027
        ed.master.update_idletasks()
 
1028
        pause()
 
1029
        self.assertEqual(node3.inputPorts[0].getData(),-1)
 
1030
        #setting opeartion rshift in opeartor2
 
1031
        print "tests operator2 entry rshift ,input 20,10,output is:"
 
1032
        node1.inputPorts[2].widget.set('rshift')
 
1033
        ed.master.update_idletasks()
 
1034
        pause()
 
1035
        self.assertEqual(node3.inputPorts[0].getData(),0)
 
1036
        #setting opeartion lshift in opeartor2
 
1037
        print "tests operator2 entry lshift ,input 20,10,output is:"
 
1038
        node1.inputPorts[2].widget.set('lshift')
 
1039
        ed.master.update_idletasks()
 
1040
        pause()
 
1041
        self.assertEqual(node3.inputPorts[0].getData(),4)
 
1042
        
 
1043
    def test_filter_pass(self):
 
1044
        """tests pass,input through entry button
 
1045
        """
 
1046
        from Vision.StandardNodes import stdlib
 
1047
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1048
        ed.master.update_idletasks()
 
1049
        pause()
 
1050
        net = ed.currentNetwork
 
1051
        #Pass node
 
1052
        node1 = Vision.StandardNodes.Pass(library =Vision.StandardNodes.stdlib)
 
1053
        net.addNode(node1,150,150)
 
1054
        #entry node
 
1055
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
1056
        net.addNode(node2,200,10)
 
1057
        #print node
 
1058
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1059
        net.addNode(node3,400,100)
 
1060
        #connecting nodes
 
1061
        net.connectNodes(node1,node3)
 
1062
        net.connectNodes(node2,node1)
 
1063
        print "tests pass button,input 2,output is:"
 
1064
        node2.inputPorts[0].widget.set(2)
 
1065
        ed.runCurrentNet_cb()
 
1066
        self.assertEqual(node3.inputPorts[0].getData(),'2')
 
1067
 
 
1068
    def test_filter_opeartor_1_apply_to_elements(self):
 
1069
        """tests operator1 entry abs,not_,truth,inv,neg,pos,input through generic is [1, 2, 3, 4, 5]
 
1070
        """
 
1071
        from Vision.StandardNodes import stdlib
 
1072
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1073
        ed.master.update_idletasks()
 
1074
        pause()
 
1075
        net = ed.currentNetwork
 
1076
        net.runOnNewData.value = True
 
1077
        #node1 is opeartor2
 
1078
        node1 = Vision.StandardNodes.Operator1(library =Vision.StandardNodes.stdlib)
 
1079
        #adding node1
 
1080
        net.addNode(node1,150,150)
 
1081
        #node2 is entry button
 
1082
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
1083
        #adding node2
 
1084
        net.addNode(node2,200,10)
 
1085
        #node3 is print 
 
1086
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1087
        #adding node3 
 
1088
        net.addNode(node3,400,100)
 
1089
        node2.addOutputPort()
 
1090
        node2.setFunction("def doit(self):\n\tself.outputData(out0=[1,2,3,4,5])\n")
 
1091
        node1.inputPorts[2].widget.set(1)
 
1092
        net.connectNodes(node1,node3)
 
1093
        net.connectNodes(node2,node1)
 
1094
        #setting 'abs' in operator1
 
1095
        print "tests operator1 entry abs,input [1,2,3,4,5],apply to elements button On,ouput:"
 
1096
        node1.inputPorts[1].widget.set('abs')
 
1097
        ed.runCurrentNet_cb()
 
1098
        self.assertEqual(str(node3.inputPorts[0].getData()),'[1, 2, 3, 4, 5]')
 
1099
        #setting 'not_' in operator1
 
1100
        print "tests operator1 entry not_,input [1,2,3,4,5],apply to elements button On,ouput:"
 
1101
        node1.inputPorts[1].widget.set('not_')
 
1102
        self.assertEqual(str(node3.inputPorts[0].getData()),'[False, False, False, False, False]')
 
1103
        #setting 'truth' in operator1
 
1104
        print "tests operator1 entry truth,input [1,2,3,4,5],apply to elements button On,ouput:"
 
1105
        node1.inputPorts[1].widget.set('truth')
 
1106
        self.assertEqual(str(node3.inputPorts[0].getData()),'[True, True, True, True, True]')
 
1107
        #setting 'inv' in operator1
 
1108
        print "tests operator1 entry inv,input [1,2,3,4,5],apply to elements button On,ouput:"
 
1109
        node1.inputPorts[1].widget.set('inv')
 
1110
        self.assertEqual(str(node3.inputPorts[0].getData()),'[-2, -3, -4, -5, -6]')
 
1111
        #setting 'neg' in operator1
 
1112
        print "tests operator1 entry neg,input [1,2,3,4,5],apply to elements button On,ouput:"
 
1113
        node1.inputPorts[1].widget.set('neg')
 
1114
        self.assertEqual(str(node3.inputPorts[0].getData()),'[-1, -2, -3, -4, -5]')
 
1115
        #setting 'pos' in operator1
 
1116
        print "tests operator1 entry pos,input [1,2,3,4,5],apply to elements button On,ouput:"
 
1117
        node1.inputPorts[1].widget.set('pos')
 
1118
        self.assertEqual(str(node3.inputPorts[0].getData()),'[1, 2, 3, 4, 5]')
 
1119
        
 
1120
    def test_filter_opeartor_1(self):
 
1121
        """operator1 entry abs,not_,truth,inv,neg,pos ,input through entry
 
1122
        button
 
1123
        """
 
1124
        from Vision.StandardNodes import stdlib
 
1125
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1126
        ed.master.update_idletasks()
 
1127
        pause()
 
1128
        net = ed.currentNetwork
 
1129
        net.runOnNewData.value = True
 
1130
        #node1 is opeartor2
 
1131
        node1 = Vision.StandardNodes.Operator1(library =Vision.StandardNodes.stdlib)
 
1132
        #adding node1
 
1133
        net.addNode(node1,150,150)
 
1134
        #node2 is entry button
 
1135
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
1136
        #adding node2
 
1137
        net.addNode(node2,200,10)
 
1138
        #node3 is print 
 
1139
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1140
        #adding node3 
 
1141
        net.addNode(node3,400,100)
 
1142
        #connecting nodes
 
1143
        net.connectNodes(node1,node3)
 
1144
        net.connectNodes(node2,node1)
 
1145
        #setting output ports of entry button1 data type to int
 
1146
        node2.outputPorts[0].edit()
 
1147
        node2.outputPorts[0].objEditor.dataType.set('int')
 
1148
        node2.outputPorts[0].objEditor.OK()
 
1149
        #setting input port1 of opeartor 2 data type to int
 
1150
        node1.inputPorts[0].edit()
 
1151
        node1.inputPorts[0].objEditor.dataType.set('int')
 
1152
        node1.inputPorts[0].objEditor.OK()
 
1153
        #setting value in entry 
 
1154
        node2.inputPorts[0].widget.set(70)
 
1155
        #setting 'abs' in operator1
 
1156
        print "tests operator1 entry abs,input 70,output is:"
 
1157
        node1.inputPorts[1].widget.set('abs')
 
1158
        self.assertEqual(node3.inputPorts[0].getData(),70)
 
1159
        #setting 'not_' in operator1
 
1160
        print "tests operator1 entry not_,input 70,output is:"
 
1161
        node1.inputPorts[1].widget.set('not_')
 
1162
        self.assertEqual(node3.inputPorts[0].getData(),False)
 
1163
        #setting 'truth' in operator1
 
1164
        print "tests operator1 entry truth,input 70,output is:"
 
1165
        node1.inputPorts[1].widget.set('truth')
 
1166
        self.assertEqual(node3.inputPorts[0].getData(),True)
 
1167
        #setting 'inv' in operator1
 
1168
        print "tests operator1 entry inv,input 70,output is:"
 
1169
        node1.inputPorts[1].widget.set('inv')
 
1170
        self.assertEqual(node3.inputPorts[0].getData(),-71)
 
1171
        #setting 'neg' in operator1
 
1172
        print "tests operator1 entry neg,input 70,output is:"
 
1173
        node1.inputPorts[1].widget.set('neg')
 
1174
        self.assertEqual(node3.inputPorts[0].getData(),-70)
 
1175
        #setting 'pos' in operator1
 
1176
        print "tests operator1 entry pos,input 70,output is:"
 
1177
        node1.inputPorts[1].widget.set('pos')
 
1178
        self.assertEqual(node3.inputPorts[0].getData(),70)
 
1179
   
 
1180
    
 
1181
    
 
1182
    def test_filter_slice_1_input_through_generic(self):
 
1183
        """tests slice when input is ['1','2','3','4','5']
 
1184
        """
 
1185
        from Vision.StandardNodes import stdlib
 
1186
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1187
        ed.master.update_idletasks()
 
1188
        pause()
 
1189
        net = ed.currentNetwork
 
1190
        #node1 is Slice
 
1191
        node1 = Vision.StandardNodes.Slice(library =Vision.StandardNodes.stdlib)
 
1192
        #adding node1
 
1193
        net.addNode(node1,150,150)
 
1194
        #node2 is generic
 
1195
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
1196
        #adding node2
 
1197
        net.addNode(node2,200,10)
 
1198
        #node3 is print 
 
1199
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1200
        #adding node3 
 
1201
        net.addNode(node3,400,100)
 
1202
        node2.addOutputPort()
 
1203
        node2.setFunction("def doit(self):\n\tself.outputData(out0=['1','2','3','4','5'])\n")
 
1204
        #connecting nodes
 
1205
        net.connectNodes(node1,node3)
 
1206
        net.connectNodes(node2,node1)
 
1207
        node1.toggleNodeExpand_cb()
 
1208
        #setting slice 
 
1209
        print "tests slice from 1,to 0,step 1,input ['1','2','3','4','5'],output :"
 
1210
        node1.inputPorts[1].widget.set(1)
 
1211
        ed.runCurrentNet_cb()
 
1212
        ed.master.update_idletasks()
 
1213
        pause()
 
1214
        #self.assertEqual(node3.inputPorts[0].getData(), 'Stop')
 
1215
        self.assertEqual(node3.inputPorts[0].getData(),[])
 
1216
        print "tests slice from 1,to 3,step 1,input ['1','2','3','4','5'],output :"
 
1217
        node1.inputPorts[2].widget.set(3)
 
1218
        node1.run()
 
1219
        ed.master.update_idletasks()
 
1220
        pause()
 
1221
        self.assertEqual(node3.inputPorts[0].getData(),['2', '3'])
 
1222
        print "tests slice from 1,to 3,step 2,input ['1','2','3','4','5'],output :"
 
1223
        node1.inputPorts[3].widget.set(2)
 
1224
        node1.run()
 
1225
        ed.master.update_idletasks()
 
1226
        pause()
 
1227
        self.assertEqual(node3.inputPorts[0].getData(),['2'])
 
1228
        
 
1229
    def test_filter_slice_1_input_through_entry(self):
 
1230
        """tests slicing list  Range->slice->print
 
1231
        """
 
1232
        from Vision.StandardNodes import stdlib
 
1233
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1234
        ed.master.update_idletasks()
 
1235
        pause()
 
1236
        net = ed.currentNetwork
 
1237
        net.runOnNewData.value = True
 
1238
 
 
1239
        #node1 is a Range Node
 
1240
        node1 = Vision.StandardNodes.Range(library =Vision.StandardNodes.stdlib)
 
1241
 
 
1242
        #node2 is slice
 
1243
        node2 = Vision.StandardNodes.Slice(library =Vision.StandardNodes.stdlib)
 
1244
 
 
1245
        #node3 is print 
 
1246
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1247
 
 
1248
        #adding nodes
 
1249
        net.addNode(node1,100,20)
 
1250
        net.addNode(node2,100,190)
 
1251
        net.addNode(node3,100,230)
 
1252
 
 
1253
        #connecting nodes
 
1254
        net.connectNodes(node1,node2)
 
1255
        net.connectNodes(node2,node3)
 
1256
        node1.inputPorts[1].widget.set(10)
 
1257
 
 
1258
        print "testing that range 1 to 0 with step 1 fives empty list"
 
1259
        node2.inputPorts[1].widget.set(1)
 
1260
        ed.master.update_idletasks()
 
1261
        pause()
 
1262
        #self.assertEqual(node3.inputPorts[0].getData(),'Stop')
 
1263
        self.assertEqual(node3.inputPorts[0].getData(),[])
 
1264
        print "tests slice to 3,input through entry button [1,2,3,4,5,6,7,8,9],output is:"
 
1265
        node2.inputPorts[2].widget.set(3)
 
1266
        node2.run()
 
1267
        ed.master.update_idletasks()
 
1268
        pause()
 
1269
        self.assertEqual(node3.inputPorts[0].getData(),[1,2])
 
1270
        print "tests slice from 1,to 3,step 2,input through entry button [1,2,3,4,5,6,7,8,9],output is:"
 
1271
        node2.inputPorts[3].widget.set(2)
 
1272
        node2.run()
 
1273
        ed.master.update_idletasks()
 
1274
        pause()
 
1275
        self.assertEqual(node3.inputPorts[0].getData(),[1])
 
1276
        
 
1277
        
 
1278
    def test_filter_slicedata(self):
 
1279
        
 
1280
        from Vision.StandardNodes import stdlib
 
1281
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1282
        ed.master.update_idletasks()
 
1283
        pause()
 
1284
        net = ed.currentNetwork
 
1285
        net.runOnNewData.value = True
 
1286
        #node1 is slicedata
 
1287
        node1 = Vision.StandardNodes.SliceData(library =Vision.StandardNodes.stdlib)
 
1288
        #adding node1
 
1289
        net.addNode(node1,150,150)
 
1290
        #node2 is generic
 
1291
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
1292
        #adding node2
 
1293
        net.addNode(node2,200,10)
 
1294
        #node3 is print 
 
1295
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1296
        #adding node3 
 
1297
        net.addNode(node3,400,100)
 
1298
        #connecting nodes
 
1299
        node2.addOutputPort()
 
1300
        net.connectNodes(node1,node3)
 
1301
        net.connectNodes(node2,node1)
 
1302
        node1.toggleNodeExpand_cb()    
 
1303
        node2.setFunction("def doit(self):\n\tself.outputData(out0=[1,2,3,4,5,6,7,8,9])\n")
 
1304
        ed.runCurrentNet_cb()
 
1305
        print "tests slicedata entry [1:4],input is [1,2,3,4,5,6,7,8,9],output:"
 
1306
        node1.inputPorts[1].widget.set('[1:4]')
 
1307
        self.assertEqual(node3.inputPorts[0].getData(),[2,3,4])
 
1308
        
 
1309
         
 
1310
 
 
1311
############################################################
 
1312
#        Numeric Nodes Tests                               #
 
1313
############################################################
 
1314
    
 
1315
    def test_filter_AsType(self):
 
1316
        
 
1317
        from Vision.StandardNodes import stdlib
 
1318
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1319
        ed.master.update_idletasks()
 
1320
        pause()
 
1321
        net = ed.currentNetwork
 
1322
        net.runOnNewData.value = True
 
1323
        #node1 is astype
 
1324
        node1 = Vision.StandardNodes.AsType(library =Vision.StandardNodes.stdlib)
 
1325
        #adding node1
 
1326
        net.addNode(node1,150,150)
 
1327
        #node2 is entry button
 
1328
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
1329
        #adding node2
 
1330
        net.addNode(node2,200,10)
 
1331
        #node3 is print 
 
1332
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1333
        #adding node3 
 
1334
        net.addNode(node3,400,100)
 
1335
        #connecting nodes
 
1336
        net.connectNodes(node1,node3)
 
1337
        net.connectNodes(node2,node1)
 
1338
        node1.toggleNodeExpand_cb()    
 
1339
        #setting input ports datatype int
 
1340
        node2.outputPorts[0].edit()
 
1341
        node2.outputPorts[0].objEditor.dataType.set('list')
 
1342
        node2.outputPorts[0].objEditor.OK()
 
1343
        #node1.inputPorts[1].widget.set('Character')
 
1344
        #ed.master.update_idletasks()
 
1345
        #pause()
 
1346
        #self.assertEqual(node3.inputPorts[0].getData(),[[2,3,]])
 
1347
        print "tests AsType entry complex,input is [1,2],output:"
 
1348
        node1.inputPorts[1].widget.set('Complex')
 
1349
        node2.inputPorts[0].widget.set([1,2])
 
1350
        ed.master.update_idletasks()
 
1351
        pause()
 
1352
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 91.+0.j  49.+0.j  44.+0.j  32.+0.j  50.+0.j  93.+0.j]')
 
1353
        lTestList = [ (1.+0.j), (2.+0.j) ]
 
1354
        for i in range(len(lTestList)):
 
1355
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1356
        print "tests AsType entry complex0,input is [1,2],output:"
 
1357
        node1.inputPorts[1].widget.set('Complex0')
 
1358
        ed.master.update_idletasks()
 
1359
        pause()
 
1360
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 91.+0.j  49.+0.j  44.+0.j  32.+0.j  50.+0.j  93.+0.j]')
 
1361
        for i in range(len(lTestList)):
 
1362
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1363
        print "tests AsType entry complex16,input is [1,2],output:"
 
1364
        node1.inputPorts[1].widget.set('Complex16')
 
1365
        ed.master.update_idletasks()
 
1366
        pause()
 
1367
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 91.+0.j  49.+0.j  44.+0.j  32.+0.j  50.+0.j  93.+0.j]')
 
1368
        for i in range(len(lTestList)):
 
1369
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1370
        print "tests AsType entry complex32,input is [1,2],output:"
 
1371
        node1.inputPorts[1].widget.set('Complex32')
 
1372
        ed.master.update_idletasks()
 
1373
        pause()
 
1374
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 91.+0.j  49.+0.j  44.+0.j  32.+0.j  50.+0.j  93.+0.j]')
 
1375
        for i in range(len(lTestList)):
 
1376
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1377
        print "tests AsType entry complex64,input is [1,2],output:"
 
1378
        node1.inputPorts[1].widget.set('Complex64')
 
1379
        ed.master.update_idletasks()
 
1380
        pause()
 
1381
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 91.+0.j  49.+0.j  44.+0.j  32.+0.j  50.+0.j  93.+0.j]')
 
1382
        for i in range(len(lTestList)):
 
1383
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1384
        print "tests AsType entry complex8,input is [1,2],output:"
 
1385
        node1.inputPorts[1].widget.set('Complex8')
 
1386
        ed.master.update_idletasks()
 
1387
        pause()
 
1388
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 91.+0.j  49.+0.j  44.+0.j  32.+0.j  50.+0.j  93.+0.j]')
 
1389
        for i in range(len(lTestList)):
 
1390
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1391
        print "tests AsType entry Float,input is [1,2],output:"
 
1392
        node1.inputPorts[1].widget.set('Float')
 
1393
        ed.master.update_idletasks()
 
1394
        pause()
 
1395
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 91.  49.  44.  32.  50.  93.]')
 
1396
        #lTestList = [ 91.,  49.,  44.,  32.,  50.,  93.]
 
1397
        lTestList = [ 1., 2. ]
 
1398
        for i in range(len(lTestList)):
 
1399
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1400
        print "tests AsType entry Float0,input is [1,2],output:"
 
1401
        node1.inputPorts[1].widget.set('Float0')
 
1402
        ed.master.update_idletasks()
 
1403
        pause()
 
1404
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 91.  49.  44.  32.  50.  93.]')
 
1405
        for i in range(len(lTestList)):
 
1406
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1407
        print "tests AsType entry Float16,input is [1,2],output:"
 
1408
        node1.inputPorts[1].widget.set('Float16')
 
1409
        ed.master.update_idletasks()
 
1410
        pause()
 
1411
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 91.  49.  44.  32.  50.  93.]')
 
1412
        for i in range(len(lTestList)):
 
1413
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1414
        print "tests AsType entry Float32,input is [1,2],output:"
 
1415
        node1.inputPorts[1].widget.set('Float32')
 
1416
        ed.master.update_idletasks()
 
1417
        pause()
 
1418
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 91.  49.  44.  32.  50.  93.]')
 
1419
        for i in range(len(lTestList)):
 
1420
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1421
        print "tests AsType entry Float64,input is [1,2],output:"
 
1422
        node1.inputPorts[1].widget.set('Float64')
 
1423
        ed.master.update_idletasks()
 
1424
        pause()
 
1425
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 91.  49.  44.  32.  50.  93.]')
 
1426
        for i in range(len(lTestList)):
 
1427
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1428
        print "tests AsType entry Float8,input is [1,2],output:"
 
1429
        node1.inputPorts[1].widget.set('Float8')
 
1430
        ed.master.update_idletasks()
 
1431
        pause()
 
1432
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 91.  49.  44.  32.  50.  93.]')
 
1433
        for i in range(len(lTestList)):
 
1434
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1435
        print "tests AsType entry Int,input is [1,2],output:"
 
1436
        node1.inputPorts[1].widget.set('Int')
 
1437
        ed.master.update_idletasks()
 
1438
        pause()
 
1439
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[91 49 44 32 50 93]')
 
1440
        #lTestList = [ 91, 49, 44, 32, 50, 93]
 
1441
        lTestList = [ 1, 2]
 
1442
        for i in range(len(lTestList)):
 
1443
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1444
        print "tests AsType entry Int0,input is [1,2],output:"
 
1445
        node1.inputPorts[1].widget.set('Int0')
 
1446
        ed.master.update_idletasks()
 
1447
        pause()
 
1448
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[91 49 44 32 50 93]')
 
1449
        for i in range(len(lTestList)):
 
1450
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1451
        print "tests AsType entry Int16,input is [1,2],output:"
 
1452
        node1.inputPorts[1].widget.set('Int16')
 
1453
        ed.master.update_idletasks()
 
1454
        pause()
 
1455
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[91 49 44 32 50 93]')
 
1456
        for i in range(len(lTestList)):
 
1457
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1458
        print "tests AsType entry Int32,input is [1,2],output:"
 
1459
        node1.inputPorts[1].widget.set('Int32')
 
1460
        ed.master.update_idletasks()
 
1461
        pause()
 
1462
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[91 49 44 32 50 93]')
 
1463
        for i in range(len(lTestList)):
 
1464
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1465
        print "tests AsType entry Int8,input is [1,2],output:"
 
1466
        node1.inputPorts[1].widget.set('Int8')
 
1467
        ed.master.update_idletasks()
 
1468
        pause()
 
1469
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[91 49 44 32 50 93]')
 
1470
        for i in range(len(lTestList)):
 
1471
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1472
        print "tests AsType entry UInt,input is [1,2],output:"
 
1473
        node1.inputPorts[1].widget.set('uint')
 
1474
        ed.master.update_idletasks()
 
1475
        pause()
 
1476
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[91 49 44 32 50 93]')
 
1477
        
 
1478
        
 
1479
        for i in range(len(lTestList)):
 
1480
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1481
        print "tests AsType entry UInt16,input is [1,2],output:"
 
1482
        node1.inputPorts[1].widget.set('UInt16')
 
1483
        ed.master.update_idletasks()
 
1484
        pause()
 
1485
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[91 49 44 32 50 93]')
 
1486
        for i in range(len(lTestList)):
 
1487
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1488
        print "tests AsType entry UInt32,input is [1,2],output:"
 
1489
        node1.inputPorts[1].widget.set('UInt32')
 
1490
        ed.master.update_idletasks()
 
1491
        pause()
 
1492
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[91 49 44 32 50 93]')
 
1493
        for i in range(len(lTestList)):
 
1494
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1495
        print "tests AsType entry UInt8,input is [1,2],output:"
 
1496
        node1.inputPorts[1].widget.set('UInt8')
 
1497
        ed.master.update_idletasks()
 
1498
        pause()
 
1499
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[91 49 44 32 50 93]')
 
1500
        for i in range(len(lTestList)):
 
1501
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1502
        print "tests AsType entry UnsignedInt16,input is [1,2],output:"
 
1503
        node1.inputPorts[1].widget.set('UnsignedInt16')
 
1504
        ed.master.update_idletasks()
 
1505
        pause()
 
1506
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[91 49 44 32 50 93]')
 
1507
        for i in range(len(lTestList)):
 
1508
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1509
        print "tests AsType entry UnsignedInt32,input is [1,2],output:"
 
1510
        node1.inputPorts[1].widget.set('UnsignedInt32')
 
1511
        ed.master.update_idletasks()
 
1512
        pause()
 
1513
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[91 49 44 32 50 93]')
 
1514
        for i in range(len(lTestList)):
 
1515
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1516
        print "tests AsType entry UnsignedInteger,input is [1,2],output:"
 
1517
        node1.inputPorts[1].widget.set('unsignedinteger')
 
1518
        ed.master.update_idletasks()
 
1519
        pause()
 
1520
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[91 49 44 32 50 93]')
 
1521
        for i in range(len(lTestList)):
 
1522
            self.assertEqual(node3.inputPorts[0].getData()[i], lTestList[i])
 
1523
        
 
1524
    def test_Numeric_ArrayFunc1(self):
 
1525
        """tests arrayfunc1 arccosh,arcsinh,arctan,cos,cosh,exp,log,log10,sin,sinh,sqrt,tan,tanh,input is 
 
1526
        [10,20,30]
 
1527
        """
 
1528
        from Vision.StandardNodes import stdlib
 
1529
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1530
        ed.master.update_idletasks()
 
1531
        pause()
 
1532
        net = ed.currentNetwork
 
1533
        #node1 is Unary Func
 
1534
        node1 = Vision.StandardNodes.UnaryFuncs(library =Vision.StandardNodes.stdlib)
 
1535
        #adding node1
 
1536
        net.addNode(node1,150,150)
 
1537
        #node3 is print 
 
1538
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1539
        #adding node3 
 
1540
        net.addNode(node3,400,100)
 
1541
        #node4 is generic
 
1542
        node4 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
1543
        #add node4
 
1544
        net.addNode(node4,200,100)
 
1545
        node4.addOutputPort()
 
1546
        #connecting nodes
 
1547
        net.connectNodes(node4,node1)
 
1548
        net.connectNodes(node1,node3)
 
1549
        node4.setFunction("def doit(self):\n\tself.outputData(out0=[10,20,30])\n")
 
1550
        #node1.inputPorts[1].widget.set('Character')
 
1551
        #ed.master.update_idletasks()
 
1552
        #pause()
 
1553
        #self.assertEqual(node3.inputPorts[0].getData(),[[2,3,]])
 
1554
        node1.toggleNodeExpand_cb()
 
1555
        print "tests arrayfunc1 entry cos,input [10,20,30],output :"
 
1556
        node1.inputPorts[1].widget.set('cos')
 
1557
        node1.run()
 
1558
        ed.runCurrentNet_cb()
 
1559
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[-0.83907153  0.40808206  0.15425145]')
 
1560
        self.assertEqual(node3.inputPorts[0].getData()[0], Numeric.cos(10))
 
1561
        self.assertEqual(node3.inputPorts[0].getData()[1], Numeric.cos(20))
 
1562
        self.assertEqual(node3.inputPorts[0].getData()[2], Numeric.cos(30))
 
1563
 
 
1564
        print "tests arrayfunc1 entry cosh,input [10,20,30],output :"
 
1565
        node1.inputPorts[1].widget.set('cosh')
 
1566
        node1.run()
 
1567
        ed.master.update_idletasks()
 
1568
        pause()
 
1569
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 1.10132329e+04  2.42582598e+08 5.34323729e+012]')
 
1570
        self.assertEqual(node3.inputPorts[0].getData()[0], Numeric.cosh(10))
 
1571
        self.assertEqual(node3.inputPorts[0].getData()[1], Numeric.cosh(20))
 
1572
        self.assertEqual(node3.inputPorts[0].getData()[2], Numeric.cosh(30))
 
1573
        print "tests arrayfunc1 entry exp,input [10,20,30],output :"
 
1574
        node1.inputPorts[1].widget.set('exp')
 
1575
        node1.run()
 
1576
        ed.master.update_idletasks()
 
1577
        pause()
 
1578
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[  2.20264658e+04   4.85165195e+08   1.06864746e+13]')
 
1579
        self.assertEqual(node3.inputPorts[0].getData()[0], Numeric.exp(10))
 
1580
        self.assertEqual(node3.inputPorts[0].getData()[1], Numeric.exp(20))
 
1581
        self.assertEqual(node3.inputPorts[0].getData()[2], Numeric.exp(30))
 
1582
        print "tests arrayfunc1 entry log,input [10,20,30],output :"
 
1583
        node1.inputPorts[1].widget.set('log')
 
1584
        node1.run()
 
1585
        ed.master.update_idletasks()
 
1586
        pause()
 
1587
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 2.30258509  2.99573227  3.40119738]')
 
1588
        self.assertEqual(node3.inputPorts[0].getData()[0], Numeric.log(10))
 
1589
        self.assertEqual(node3.inputPorts[0].getData()[1], Numeric.log(20))
 
1590
        self.assertEqual(node3.inputPorts[0].getData()[2], Numeric.log(30))
 
1591
        print "tests arrayfunc1 entry log10,input [10,20,30],output :"
 
1592
        node1.inputPorts[1].widget.set('log10')
 
1593
        node1.run()
 
1594
        ed.master.update_idletasks()
 
1595
        pause()
 
1596
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 1.          1.30103     1.47712125]')
 
1597
        self.assertEqual(node3.inputPorts[0].getData()[0], Numeric.log10(10))
 
1598
        self.assertEqual(node3.inputPorts[0].getData()[1], Numeric.log10(20))
 
1599
        self.assertEqual(node3.inputPorts[0].getData()[2], Numeric.log10(30))
 
1600
        print "tests arrayfunc1 entry sin,input [10,20,30],output :"
 
1601
        node1.inputPorts[1].widget.set('sin')
 
1602
        node1.run()
 
1603
        ed.master.update_idletasks()
 
1604
        pause()
 
1605
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[-0.54402111  0.91294525 -0.98803162]')
 
1606
        self.assertEqual(node3.inputPorts[0].getData()[0], Numeric.sin(10))
 
1607
        self.assertEqual(node3.inputPorts[0].getData()[1], Numeric.sin(20))
 
1608
        self.assertEqual(node3.inputPorts[0].getData()[2], Numeric.sin(30))
 
1609
        print "tests arrayfunc1 entry sinh,input [10,20,30],output :"
 
1610
        node1.inputPorts[1].widget.set('sinh')
 
1611
        node1.run()
 
1612
        ed.master.update_idletasks()
 
1613
        pause()
 
1614
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[  1.10132329e+04   2.42582598e+08   5.34323729e+12]')
 
1615
        self.assertEqual(node3.inputPorts[0].getData()[0], Numeric.sinh(10))
 
1616
        self.assertEqual(node3.inputPorts[0].getData()[1], Numeric.sinh(20))
 
1617
        self.assertEqual(node3.inputPorts[0].getData()[2], Numeric.sinh(30))
 
1618
        print "tests arrayfunc1 entry sqrt,input [10,20,30],output :"
 
1619
        node1.inputPorts[1].widget.set('sqrt')
 
1620
        node1.run()
 
1621
        ed.master.update_idletasks()
 
1622
        pause()
 
1623
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 3.16227766  4.47213595  5.47722558]')
 
1624
        self.assertEqual(node3.inputPorts[0].getData()[0], Numeric.sqrt(10))
 
1625
        self.assertEqual(node3.inputPorts[0].getData()[1], Numeric.sqrt(20))
 
1626
        self.assertEqual(node3.inputPorts[0].getData()[2], Numeric.sqrt(30))
 
1627
        print "tests arrayfunc1 entry tan,input [10,20,30],output :"
 
1628
        node1.inputPorts[1].widget.set('tan')
 
1629
        node1.run()
 
1630
        ed.master.update_idletasks()
 
1631
        pause()
 
1632
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 0.64836083  2.23716094 -6.4053312 ]')
 
1633
        self.assertEqual(node3.inputPorts[0].getData()[0], Numeric.tan(10))
 
1634
        self.assertEqual(node3.inputPorts[0].getData()[1], Numeric.tan(20))
 
1635
        self.assertEqual(node3.inputPorts[0].getData()[2], Numeric.tan(30))
 
1636
        print "tests arrayfunc1 entry tanh,input [10,20,30],output :"
 
1637
        node1.inputPorts[1].widget.set('tanh')
 
1638
        node1.run()
 
1639
        ed.master.update_idletasks()
 
1640
        pause()
 
1641
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 1.  1.  1.]')
 
1642
        self.assertEqual(node3.inputPorts[0].getData()[0], Numeric.tanh(10))
 
1643
        self.assertEqual(node3.inputPorts[0].getData()[1], Numeric.tanh(20))
 
1644
        self.assertEqual(node3.inputPorts[0].getData()[2], Numeric.tanh(30))
 
1645
        print "tests arrayfunc1 entry arccosh,input [10,20,30],output :"
 
1646
        node1.inputPorts[1].widget.set('arccosh')
 
1647
        node1.run()
 
1648
        ed.master.update_idletasks()
 
1649
        pause()
 
1650
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 2.99322285  3.68825387  4.09406667]')
 
1651
        self.assertEqual(node3.inputPorts[0].getData()[0], Numeric.arccosh(10))
 
1652
        self.assertEqual(node3.inputPorts[0].getData()[1], Numeric.arccosh(20))
 
1653
        self.assertEqual(node3.inputPorts[0].getData()[2], Numeric.arccosh(30))
 
1654
        print "tests arrayfunc1 entry arcsinh,input [10,20,30],output :"
 
1655
        node1.inputPorts[1].widget.set('arcsinh')
 
1656
        node1.run()
 
1657
        ed.master.update_idletasks()
 
1658
        pause()
 
1659
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 2.99822295  3.68950387  4.09462222]')
 
1660
        self.assertEqual(node3.inputPorts[0].getData()[0], Numeric.arcsinh(10))
 
1661
        self.assertEqual(node3.inputPorts[0].getData()[1], Numeric.arcsinh(20))
 
1662
        self.assertEqual(node3.inputPorts[0].getData()[2], Numeric.arcsinh(30))
 
1663
        print "tests arrayfunc1 entry arctan,input [10,20,30],output :"
 
1664
        node1.inputPorts[1].widget.set('arctan')
 
1665
        node1.run()
 
1666
        ed.master.update_idletasks()
 
1667
        pause()
 
1668
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 1.47112767  1.52083793  1.53747533]')
 
1669
        self.assertEqual(node3.inputPorts[0].getData()[0], Numeric.arctan(10))
 
1670
        self.assertEqual(node3.inputPorts[0].getData()[1], Numeric.arctan(20))
 
1671
        self.assertEqual(node3.inputPorts[0].getData()[2], Numeric.arctan(30))
 
1672
        
 
1673
        
 
1674
    def test_Numeric_ArrayFunc2(self):
 
1675
        """tests Arrayfunc2 add,substract,multiply,divide,power,remainder inputs are [3,4,5],[10,20,30]
 
1676
        """
 
1677
        from Vision.StandardNodes import stdlib
 
1678
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1679
        ed.master.update_idletasks()
 
1680
        pause()
 
1681
        net = ed.currentNetwork
 
1682
        net.runOnNewData.value = True
 
1683
        #node1 is Binary Func
 
1684
        node1 = Vision.StandardNodes.BinaryFuncs(library =Vision.StandardNodes.stdlib)
 
1685
        #adding node1
 
1686
        net.addNode(node1,150,150)
 
1687
        #node2 is generic
 
1688
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
1689
        #add node2
 
1690
        net.addNode(node2,20,20)
 
1691
        #node3 is print 
 
1692
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1693
        #adding node3 
 
1694
        net.addNode(node3,400,100)
 
1695
        #node4 is generic
 
1696
        node4 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
1697
        #add node4
 
1698
        net.addNode(node4,200,100)
 
1699
        node4.addOutputPort()
 
1700
        node2.addOutputPort()
 
1701
        #connecting nodes
 
1702
        net.connectNodes(node4,node1)
 
1703
        net.connectNodes(node1,node3)
 
1704
        port1 = node2.outputPorts[0]
 
1705
        port2 = node1.inputPorts[1]
 
1706
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
1707
        node2.setFunction("def doit(self):\n\tself.outputData(out0=[3,4,5])\n")
 
1708
        node4.setFunction("def doit(self):\n\tself.outputData(out0=[10,20,30])\n")
 
1709
        node1.toggleNodeExpand_cb()
 
1710
        print "tests arrayfunc2 add,input  [3,4,5],[10,20,30],output:"
 
1711
        node1.inputPorts[2].widget.set('add')
 
1712
        ed.runCurrentNet_cb()
 
1713
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[13 24 35]')
 
1714
        self.assertEqual(node3.inputPorts[0].getData()[0], 13)
 
1715
        self.assertEqual(node3.inputPorts[0].getData()[1], 24)
 
1716
        self.assertEqual(node3.inputPorts[0].getData()[2], 35)
 
1717
        print "tests arrayfunc2 subtract,input  [3,4,5],[10,20,30],output:"
 
1718
        node1.inputPorts[2].widget.set('subtract')
 
1719
        ed.master.update_idletasks()
 
1720
        pause()
 
1721
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 7 16 25]')
 
1722
        self.assertEqual(node3.inputPorts[0].getData()[0], 7)
 
1723
        self.assertEqual(node3.inputPorts[0].getData()[1], 16)
 
1724
        self.assertEqual(node3.inputPorts[0].getData()[2], 25)
 
1725
        print "tests arrayfunc2 multiply,input  [3,4,5],[10,20,30],output:"
 
1726
        node1.inputPorts[2].widget.set('multiply')
 
1727
        ed.master.update_idletasks()
 
1728
        pause()
 
1729
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[ 30  80 150]')
 
1730
        self.assertEqual(node3.inputPorts[0].getData()[0], 30)
 
1731
        self.assertEqual(node3.inputPorts[0].getData()[1], 80)
 
1732
        self.assertEqual(node3.inputPorts[0].getData()[2], 150)
 
1733
        print "tests arrayfunc2 divide,input  [3,4,5],[10,20,30],output:"
 
1734
        node1.inputPorts[2].widget.set('divide')
 
1735
        ed.master.update_idletasks()
 
1736
        pause()
 
1737
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[3 5 6]')
 
1738
        self.assertEqual(node3.inputPorts[0].getData()[0], 3)
 
1739
        self.assertEqual(node3.inputPorts[0].getData()[1], 5)
 
1740
        self.assertEqual(node3.inputPorts[0].getData()[2], 6)
 
1741
        print "tests arrayfunc2 remainder,input  [3,4,5],[10,20,30],output:"
 
1742
        node1.inputPorts[2].widget.set('remainder')
 
1743
        ed.master.update_idletasks()
 
1744
        pause()
 
1745
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[1 0 0]')
 
1746
        self.assertEqual(node3.inputPorts[0].getData()[0], 1)
 
1747
        self.assertEqual(node3.inputPorts[0].getData()[1], 0)
 
1748
        self.assertEqual(node3.inputPorts[0].getData()[2], 0)
 
1749
        print "tests arrayfunc2 power,input  [3,4,5],[10,20,30],output:"
 
1750
        node1.inputPorts[2].widget.set('power')
 
1751
        ed.master.update_idletasks()
 
1752
        pause()
 
1753
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[    1000   160000 24300000]')
 
1754
        self.assertEqual(node3.inputPorts[0].getData()[0], 1000)
 
1755
        self.assertEqual(node3.inputPorts[0].getData()[1], 160000)
 
1756
        self.assertEqual(node3.inputPorts[0].getData()[2], 24300000)
 
1757
        
 
1758
 
 
1759
    def test_Input_button(self):
 
1760
        """tests button 
 
1761
        """
 
1762
        from Vision.StandardNodes import stdlib
 
1763
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1764
        ed.master.update_idletasks()
 
1765
        pause()
 
1766
        net = ed.currentNetwork
 
1767
        node1 = Vision.StandardNodes.ButtonNE(library =Vision.StandardNodes.stdlib)
 
1768
        #adding node1
 
1769
        net.addNode(node1,150,150)
 
1770
        #node3 is print 
 
1771
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1772
        #adding node3 
 
1773
        net.addNode(node3,400,100)
 
1774
        net.connectNodes(node1,node3)
 
1775
        print "tests button,toggle on,output:"
 
1776
        node1.inputPorts[0].widget.set(1)
 
1777
        node1.run()
 
1778
        self.assertEqual(node3.inputPorts[0].getData(),1)
 
1779
 
 
1780
 
 
1781
    def test_Input_checkbutton(self):
 
1782
        """tests checkbutton on or off
 
1783
        """
 
1784
        from Vision.StandardNodes import stdlib
 
1785
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1786
        ed.master.update_idletasks()
 
1787
        pause()
 
1788
        net = ed.currentNetwork
 
1789
        node1 = Vision.StandardNodes.CheckButtonNE(library =Vision.StandardNodes.stdlib)
 
1790
        #adding node1
 
1791
        net.addNode(node1,150,150)
 
1792
        #node3 is print 
 
1793
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1794
        #adding node3 
 
1795
        net.addNode(node3,400,100)
 
1796
        net.connectNodes(node1,node3)
 
1797
        print "tests check button toggle on,off,output:"
 
1798
        node1.inputPorts[0].widget.set(1)
 
1799
        node1.run()
 
1800
        self.assertEqual(node3.inputPorts[0].getData(),1)
 
1801
        node1.inputPorts[0].widget.set(0)
 
1802
        node1.run()
 
1803
        self.assertEqual(node3.inputPorts[0].getData(),0)
 
1804
 
 
1805
    def test_Input_Dial(self):
 
1806
        """tests dial setting input and getting output
 
1807
        """
 
1808
        from Vision.StandardNodes import stdlib
 
1809
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1810
        ed.master.update_idletasks()
 
1811
        pause()
 
1812
        net = ed.currentNetwork
 
1813
        node1 = Vision.StandardNodes.DialNE(library =Vision.StandardNodes.stdlib)
 
1814
        #adding node1
 
1815
        net.addNode(node1,150,150)
 
1816
        #node3 is print 
 
1817
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1818
        #adding node3 
 
1819
        net.addNode(node3,400,100)
 
1820
        net.connectNodes(node1,node3)
 
1821
        print "tests dial setting 10,output:"
 
1822
        node1.inputPorts[0].widget.set(10)
 
1823
        node1.run()
 
1824
        self.assertEqual(round(node3.inputPorts[0].getData()),10)    
 
1825
 
 
1826
    def test_Input_Entry(self):
 
1827
        """tests entry node setting values
 
1828
        """
 
1829
        from Vision.StandardNodes import stdlib
 
1830
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1831
        ed.master.update_idletasks()
 
1832
        pause()
 
1833
        net = ed.currentNetwork
 
1834
        node1 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
1835
        #adding node1
 
1836
        net.addNode(node1,150,150)
 
1837
        #node3 is print 
 
1838
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1839
        #adding node3 
 
1840
        net.addNode(node3,400,100)
 
1841
        net.connectNodes(node1,node3)
 
1842
        print "tests entry button setting a,output is :"
 
1843
        node1.inputPorts[0].widget.set('a')
 
1844
        net.run()
 
1845
        self.assertEqual(node3.inputPorts[0].getData(),'a')    
 
1846
        print "tests entry button setting '1',output is :"
 
1847
        node1.inputPorts[0].widget.set(1)
 
1848
        net.run()
 
1849
        self.assertEqual(node3.inputPorts[0].getData(),'1')
 
1850
 
 
1851
    def test_Input_vector3DNE(self):
 
1852
        """tests vector3D by setting a value
 
1853
        """
 
1854
        from Vision.StandardNodes import stdlib
 
1855
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1856
        ed.master.update_idletasks()
 
1857
        pause()
 
1858
        net = ed.currentNetwork
 
1859
        node1 = Vision.StandardNodes.Vector3DNE(library =Vision.StandardNodes.stdlib)
 
1860
        #adding node1
 
1861
        net.addNode(node1,150,150)
 
1862
        #node3 is print 
 
1863
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1864
        #adding node3 
 
1865
        net.addNode(node3,400,100)
 
1866
        net.connectNodes(node1,node3)
 
1867
        node1.toggleNodeExpand_cb() 
 
1868
        print "tests vector3DNE entry [1,1,1],output:"
 
1869
        node1.inputPorts[0].widget.set([1,1,1])
 
1870
        node1.run()
 
1871
        x = node3.inputPorts[0].getData()
 
1872
        z =[]
 
1873
        for i in range(0,len(x)): 
 
1874
            z =z+[round(x[i])]
 
1875
        self.assertEqual(z,[1.0,1.0,1.0])
 
1876
 
 
1877
    def test_Input_fileBrowser(self):
 
1878
        """tests file browser 
 
1879
        """
 
1880
        from Vision.StandardNodes import stdlib
 
1881
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1882
        ed.master.update_idletasks()
 
1883
        pause()
 
1884
        net = ed.currentNetwork
 
1885
        node1 = Vision.StandardNodes.FileBrowserNE(library =Vision.StandardNodes.stdlib)
 
1886
        #adding node1
 
1887
        net.addNode(node1,150,150)
 
1888
        #node3 is print 
 
1889
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1890
        #adding node3 
 
1891
        net.addNode(node3,400,100)
 
1892
        net.connectNodes(node1,node3)
 
1893
        node1.toggleNodeExpand_cb() 
 
1894
        print "tests file browser entry  'note1',output:"
 
1895
        node1.inputPorts[0].widget.set('note1')
 
1896
        node1.run()
 
1897
        self.assertEqual(node3.inputPorts[0].getData(),'note1')
 
1898
 
 
1899
 
 
1900
 
 
1901
    def test_Input_filelist(self):
 
1902
        
 
1903
        from Vision.StandardNodes import stdlib
 
1904
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1905
        ed.master.update_idletasks()
 
1906
        pause()
 
1907
        net = ed.currentNetwork
 
1908
        node1 = Vision.StandardNodes.Filelist(library =Vision.StandardNodes.stdlib)
 
1909
        #adding node1
 
1910
        net.addNode(node1,150,150)
 
1911
        #node3 is print 
 
1912
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1913
        #adding node3 
 
1914
        net.addNode(node3,400,100)
 
1915
        net.connectNodes(node1,node3)
 
1916
        node1.toggleNodeExpand_cb()
 
1917
        print "tests filelist entry *note1*,output:"
 
1918
        node1.inputPorts[0].widget.set(os.getcwd()+'/*note1*')
 
1919
        node1.run()
 
1920
        self.assertEqual(node3.inputPorts[0].getData(),[os.path.abspath('note1')])
 
1921
 
 
1922
 
 
1923
    def test_Input_filename(self):
 
1924
        
 
1925
        from Vision.StandardNodes import stdlib
 
1926
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1927
        ed.master.update_idletasks()
 
1928
        pause()
 
1929
        net = ed.currentNetwork
 
1930
        node1 = Vision.StandardNodes.Filename(library =Vision.StandardNodes.stdlib)
 
1931
        #adding node1
 
1932
        net.addNode(node1,50,50)
 
1933
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
1934
        #adding node2
 
1935
        net.addNode(node2,150,150)
 
1936
        #node3 is print 
 
1937
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1938
        #adding node3 
 
1939
        net.addNode(node3,400,100)
 
1940
        port2 = node1.inputPorts[1]
 
1941
        port1 = node2.outputPorts[0]
 
1942
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
1943
 
 
1944
        #net.connectNodes(node2,node1)
 
1945
        net.connectNodes(node1,node3)
 
1946
        node1.toggleNodeExpand_cb()
 
1947
        #setting outputPorts datatype as int
 
1948
        node2.outputPorts[0].edit()
 
1949
        node2.outputPorts[0].objEditor.dataType.set('int')
 
1950
        node2.outputPorts[0].objEditor.OK()
 
1951
        print "tests filename entry 9,output:"
 
1952
        node2.inputPorts[0].widget.set(9)
 
1953
        net.run()
 
1954
        self.assertEqual(str(node3.inputPorts[0].getData()),'file00000009.png')
 
1955
 
 
1956
 
 
1957
 
 
1958
    def test_Input_MulticheckButton(self):
 
1959
        
 
1960
        from Vision.StandardNodes import stdlib
 
1961
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1962
        ed.master.update_idletasks()
 
1963
        pause()
 
1964
        net = ed.currentNetwork
 
1965
        net.runOnNewData.value = True
 
1966
        node1 = Vision.StandardNodes.MultiCheckbuttonsNE(library =Vision.StandardNodes.stdlib)
 
1967
        #adding node1
 
1968
        net.addNode(node1,150,150)
 
1969
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
1970
        #adding node1
 
1971
        net.addNode(node2,200,10)
 
1972
        #node3 is print 
 
1973
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
1974
        #adding node3 
 
1975
        net.addNode(node3,400,100)
 
1976
        node2.inputPorts[0].widget.set('abcd')
 
1977
        net.connectNodes(node2,node1)
 
1978
        port1 = node1.outputPorts[2]
 
1979
        port2 = node3.inputPorts[0]
 
1980
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
1981
        node1.toggleNodeExpand_cb()
 
1982
        print "tests MulticheckButton entry a,b,c,d On,output:"
 
1983
        x = node1.inputPorts[1].widget
 
1984
        x.widget.reSelect('a','check')
 
1985
        x.widget.reSelect('b','check')
 
1986
        x.widget.reSelect('c','check')
 
1987
        x.widget.reSelect('d','check')
 
1988
        ed.runCurrentNet_cb()
 
1989
        ed.master.update_idletasks()
 
1990
        pause()
 
1991
        self.assertEqual(node3.inputPorts[0].getData(),[('a', 1), ('b', 1), ('c', 1), ('d', 1)])
 
1992
        node1.toggleNodeExpand_cb()
 
1993
 
 
1994
    def test_Input_Generic(self):
 
1995
        
 
1996
        from Vision.StandardNodes import stdlib
 
1997
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
1998
        ed.master.update_idletasks()
 
1999
        pause()
 
2000
        net = ed.currentNetwork
 
2001
        node1 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2002
        #adding node1
 
2003
        net.addNode(node1,200,10)
 
2004
        #node2 is print 
 
2005
        node2 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2006
        net.addNode(node2,100,100)
 
2007
        node1.addOutputPort()
 
2008
        node1.setFunction("def doit(self):\n\tself.outputData(out0=[10,20,30])\n")
 
2009
        print "tests generic entry [10,20,30],ouput:"
 
2010
        net.connectNodes(node1,node2)
 
2011
        ed.runCurrentNet_cb()
 
2012
        self.assertEqual(node2.inputPorts[0].getData(),[10,20,30])
 
2013
        
 
2014
 
 
2015
    def test_Input_Read_Lines(self):
 
2016
        from Vision.StandardNodes import stdlib
 
2017
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2018
        ed.master.update_idletasks()
 
2019
        pause()
 
2020
        net = ed.currentNetwork
 
2021
        node1 = Vision.StandardNodes.ReadFile(library =Vision.StandardNodes.stdlib)
 
2022
        #adding node1
 
2023
        net.addNode(node1,200,10)
 
2024
        #node2 is print 
 
2025
        node2 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2026
        net.addNode(node2,100,100)
 
2027
        net.connectNodes(node1,node2)
 
2028
        print "tests Readlines entry myfile,output:"
 
2029
        node1.inputPorts[0].widget.set(os.path.abspath('myfile'))
 
2030
        net.run()
 
2031
        self.assertEqual(node2.inputPorts[0].getData()[0],'Hi This file is created for tests')
 
2032
 
 
2033
 
 
2034
    def test_input_thumbwheel(self):
 
2035
        from Vision.StandardNodes import stdlib
 
2036
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2037
        ed.master.update_idletasks()
 
2038
        pause()
 
2039
        net = ed.currentNetwork
 
2040
        node1 = Vision.StandardNodes.ThumbWheelNE(library =Vision.StandardNodes.stdlib)
 
2041
        #adding node1
 
2042
        net.addNode(node1,200,10)
 
2043
        #node2 is print 
 
2044
        node2 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2045
        net.addNode(node2,100,100)
 
2046
        net.connectNodes(node1,node2)
 
2047
        print "tests Thumbwheel entry 10,output:"
 
2048
        node1.inputPorts[0].widget.set(10)
 
2049
        node1.run()
 
2050
        ed.master.update_idletasks()
 
2051
        pause()
 
2052
        self.assertEqual(round(node2.inputPorts[0].getData()),10)
 
2053
 
 
2054
 
 
2055
    def test_input_ScrolledText(self):
 
2056
        from Vision.StandardNodes import stdlib
 
2057
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2058
        ed.master.update_idletasks()
 
2059
        pause()
 
2060
        net = ed.currentNetwork
 
2061
        net.runOnNewData.value = True
 
2062
        node1 = Vision.StandardNodes.ScrolledTextNE(library =Vision.StandardNodes.stdlib)
 
2063
        #adding node1
 
2064
        net.addNode(node1,200,10)
 
2065
        #node2 is print 
 
2066
        node2 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2067
        net.addNode(node2,100,100)
 
2068
        net.connectNodes(node1,node2)
 
2069
        print "tests ScrolledText entry 'Hi how are you?',output:"
 
2070
        node1.inputPorts[0].widget.set("Hi how are you?")
 
2071
        ed.master.update_idletasks()
 
2072
        pause()
 
2073
        self.assertEqual(node2.inputPorts[0].getData(),"Hi how are you?\n")
 
2074
 
 
2075
    
 
2076
    def test_input_comboBox(self):
 
2077
        from Vision.StandardNodes import stdlib
 
2078
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2079
        ed.master.update_idletasks()
 
2080
        pause()
 
2081
        net = ed.currentNetwork
 
2082
        net.runOnNewData.value = True
 
2083
        #node1 is opeartor3
 
2084
        node1 = Vision.StandardNodes.ComboBoxNE(library =Vision.StandardNodes.stdlib)
 
2085
        #adding node1
 
2086
        net.addNode(node1,150,150)
 
2087
        #node2 is generic
 
2088
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2089
        #adding node2
 
2090
        net.addNode(node2,200,10)
 
2091
        #node3 is print 
 
2092
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2093
        #adding node3 
 
2094
        net.addNode(node3,400,100)
 
2095
        #connecting nodes
 
2096
        node2.addOutputPort()
 
2097
        node2.setFunction("def doit(self):\n\tself.outputData(out0=[1,2,3,4,5,6,7])\n")
 
2098
        net.connectNodes(node1,node3)
 
2099
        net.connectNodes(node2,node1)
 
2100
        node1.toggleNodeExpand_cb()
 
2101
        ed.runCurrentNet_cb()
 
2102
        print "tests combobox entry 3,input [1,2,3,4,5,6,7],output:"
 
2103
        node1.inputPorts[2].widget.set('3')
 
2104
        ed.master.update_idletasks()
 
2105
        pause()
 
2106
        self.assertEqual(node3.inputPorts[0].getData(),3)
 
2107
        print "tests combobox entry 6,input [1,2,3,4,5,6,7],output:"
 
2108
        node1.inputPorts[2].widget.set('6')
 
2109
        ed.master.update_idletasks()
 
2110
        pause()
 
2111
        self.assertEqual(node3.inputPorts[0].getData(),6)
 
2112
 
 
2113
 
 
2114
    def test_Input_read_field(self):
 
2115
        if (sys.platform == 'linux2') and (os.popen('uname -m').read() == 'x86_64\n'):
 
2116
            return
 
2117
        from Vision.StandardNodes import stdlib
 
2118
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2119
        ed.master.update_idletasks()
 
2120
        pause()
 
2121
        net = ed.currentNetwork
 
2122
        #node1 is ReadField
 
2123
        node1 = Vision.StandardNodes.ReadField(library =Vision.StandardNodes.stdlib)
 
2124
        #adding node1
 
2125
        net.addNode(node1,150,150)
 
2126
        #node3 is print 
 
2127
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2128
        #adding node3 
 
2129
        net.addNode(node3,400,100)
 
2130
        net.connectNodes(node1,node3)
 
2131
        print "tests readfield entry myfile2,output:"
 
2132
        node1.inputPorts[0].widget.set(os.path.abspath('myfile2'))
 
2133
        ed.runCurrentNet_cb()
 
2134
        #self.assertEqual(str(node3.inputPorts[0].getData()),'[1 2 3 4]')
 
2135
        self.assertEqual(node3.inputPorts[0].getData()[0], 1)
 
2136
        self.assertEqual(node3.inputPorts[0].getData()[1], 2)
 
2137
        self.assertEqual(node3.inputPorts[0].getData()[2], 3)
 
2138
        self.assertEqual(node3.inputPorts[0].getData()[3], 4)
 
2139
 
 
2140
 
 
2141
    def test_read_table(self):
 
2142
        from Vision.StandardNodes import stdlib
 
2143
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2144
        ed.master.update_idletasks()
 
2145
        pause()
 
2146
        net = ed.currentNetwork
 
2147
        #node1 is ReadTable
 
2148
        node1 = Vision.StandardNodes.ReadTable(library =Vision.StandardNodes.stdlib)
 
2149
        #adding node1
 
2150
        net.addNode(node1,150,150)
 
2151
        #node2 is print 
 
2152
        node2 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2153
        #adding node2 
 
2154
        net.addNode(node2,400,100)
 
2155
        net.connectNodes(node1,node2)
 
2156
        node1.toggleNodeExpand_cb()
 
2157
        node1.inputPortByName['datatype'].widget.set('int')
 
2158
        print "tests read table note,output:"
 
2159
        node1.inputPorts[0].widget.set(os.path.abspath('note'))
 
2160
        ed.runCurrentNet_cb()
 
2161
        self.assertEqual(str(node2.inputPorts[0].getData()),'[[1], [2], [3], [4], [5], [6], [7], [8], [9]]')
 
2162
        
 
2163
 
 
2164
#########################################################
 
2165
#    Python Nodes Tests                                 #
 
2166
#########################################################
 
2167
 
 
2168
 
 
2169
    def test_Python_while(self):
 
2170
        from Vision.StandardNodes import stdlib
 
2171
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2172
        ed.master.update_idletasks()
 
2173
        pause()
 
2174
        net = ed.currentNetwork    
 
2175
        #node1 is while
 
2176
        node1 = Vision.StandardNodes.While(library =Vision.StandardNodes.stdlib)
 
2177
        #adding node1
 
2178
        net.addNode(node1,50,50)
 
2179
        #node2 is generic
 
2180
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2181
        #adding node2
 
2182
        net.addNode(node2,100,100)
 
2183
        #node3 is print 
 
2184
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2185
        #adding node3 
 
2186
        net.addNode(node3,200,200)
 
2187
        #node4 is counter
 
2188
        node4 = Vision.StandardNodes.Counter(library =Vision.StandardNodes.stdlib)
 
2189
        net.addNode(node4,300,300)
 
2190
        #node5 is IsTrue_Stop
 
2191
        node5 = Vision.StandardNodes.IsTrue_Stop(library =Vision.StandardNodes.stdlib)
 
2192
        net.addNode(node5,200,50)
 
2193
        node2.addOutputPort()
 
2194
        print "tests while val1 = 2,when input is 2,cond <4,counter,is true stop"
 
2195
        node2.setFunction("def doit(self):\n\tself.outputData(out0=2)")
 
2196
        node1.setFunction("def doit(self, condition, val1=None, val2=None, val3=None):\n    iter = 0\n    net = self.network\n    p = self.getOutputPortByName('run')\n    roots = map( lambda x: x.node, p.children )\n    allNodes = net.getAllNodes(roots)\n    if self in allNodes:\n        allNodes.remove(self)\n    \n    while True:\n        # get a dict of {'portname':values}\n        d = self.refreshInputPortData()\n        # set the function arguments to the current values\n        for k,v in d.items():\n            # if it is a string we want the set the variable to the string\n            # rather than evaluating the string\n            if type(v) is types.StringType:\n                exec('%s=str(%s)'%(k,v))\n            else: # we assign the value (NOT SURE THIS WORKS WITH OBJECTS!)\n                exec('%s=%s'%(k,str(v)))\n        net.canvas.update()\n        stop = self.network.checkExecStatus()\n        if stop:\n            break\n        if not eval(condition):\n            break\n        self.outputData(run=1)\n        self.forceExecution = 1\n        # this is needed for iterate inside macros to fire children of\n        # macro nodes when macronetwork isnot current network\n        self.network.forceExecution = 1\n\n        if len(allNodes):\n            net.runNodes(allNodes)\n\n        if iter<4:\n            iter = iter + 1\n        else:\n            break\n")
 
2197
        node1.inputPorts[0].widget.set('val1 == 2')
 
2198
        node5.inputPorts[1].widget.set('data < 4')
 
2199
        port1 = node2.outputPorts[0]
 
2200
        port2 = node1.inputPorts[1]
 
2201
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2202
        port1 = node4.outputPorts[1]
 
2203
        port2 = node5.inputPorts[0]
 
2204
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2205
        #net.connectnodes(node4,node5)
 
2206
        net.connectNodes(node1,node4)
 
2207
        net.connectNodes(node5,node3)
 
2208
        ed.master.update_idletasks()
 
2209
        pause()
 
2210
        ed.runCurrentNet_cb()
 
2211
        #tests last value printed <4 
 
2212
        self.assertEqual(node3.inputPorts[0].getData(),'Stop')
 
2213
        
 
2214
        
 
2215
    def test_Python_len(self):
 
2216
        from Vision.StandardNodes import stdlib
 
2217
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2218
        ed.master.update_idletasks()
 
2219
        pause()
 
2220
        net = ed.currentNetwork
 
2221
        #node1 is opeartor3
 
2222
        node1 = Vision.StandardNodes.Len(library =Vision.StandardNodes.stdlib)
 
2223
        #adding node1
 
2224
        net.addNode(node1,150,150)
 
2225
        #node2 is generic
 
2226
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2227
        #adding node2
 
2228
        net.addNode(node2,200,10)
 
2229
        #node3 is print 
 
2230
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2231
        #adding node3 
 
2232
        net.addNode(node3,400,100)
 
2233
        node2.addOutputPort()
 
2234
        node2.setFunction("def doit(self):\n\tself.outputData(out0=[1,2,3,4,5,6,7])\n")
 
2235
        net.connectNodes(node1,node3)
 
2236
        print "tests len ,input [1,2,3,4,5,6,7],output:"
 
2237
        net.connectNodes(node2,node1)
 
2238
        ed.runCurrentNet_cb()
 
2239
        self.assertEqual(node3.inputPorts[0].getData(),7)
 
2240
        print "tests len ,input 'abcdefgh',output:"
 
2241
        node2.setFunction("def doit(self):\n\tself.outputData(out0='abcdefgh')\n")
 
2242
        ed.runCurrentNet_cb()
 
2243
        self.assertEqual(node3.inputPorts[0].getData(),8)
 
2244
        
 
2245
    def test_Python_range(self):
 
2246
        from Vision.StandardNodes import stdlib
 
2247
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2248
        ed.master.update_idletasks()
 
2249
        pause()
 
2250
        net = ed.currentNetwork
 
2251
        #node1 is opeartor3
 
2252
        node1 = Vision.StandardNodes.Range(library =Vision.StandardNodes.stdlib)
 
2253
        #adding node1
 
2254
        net.addNode(node1,150,150)
 
2255
        #node3 is print 
 
2256
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2257
        #adding node3 
 
2258
        net.addNode(node3,400,100)
 
2259
        print "tests range from 1,to 10,step 2,output:"
 
2260
        net.connectNodes(node1,node3)
 
2261
        node1.inputPorts[0].widget.set(1)
 
2262
        node1.inputPorts[1].widget.set(10)
 
2263
        node1.inputPorts[2].widget.set(2)
 
2264
        node1.run()
 
2265
        self.assertEqual(str(node3.inputPorts[0].getData()),'[1, 3, 5, 7, 9]')
 
2266
        
 
2267
 
 
2268
    def test_Python_built_in(self):
 
2269
        from Vision.StandardNodes import stdlib
 
2270
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2271
        ed.master.update_idletasks()
 
2272
        pause()
 
2273
        net = ed.currentNetwork
 
2274
        #node1 is Builtin
 
2275
        node1 = Vision.StandardNodes.Builtin(library =Vision.StandardNodes.stdlib)
 
2276
        #adding node1
 
2277
        net.addNode(node1,150,150)
 
2278
        #node2 is EntryNE
 
2279
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2280
        #adding node1
 
2281
        net.addNode(node2,50,50)
 
2282
        #node3 is print 
 
2283
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2284
        #adding node3 
 
2285
        net.addNode(node3,400,100) 
 
2286
        node1.toggleNodeExpand_cb()
 
2287
        net.connectNodes(node1,node3)
 
2288
        net.connectNodes(node2,node1)
 
2289
        node2.inputPorts[0].widget.set(89)
 
2290
        #setting output ports of entry button1 data type to int
 
2291
        node2.outputPorts[0].edit()
 
2292
        node2.outputPorts[0].objEditor.dataType.set('int')
 
2293
        node2.outputPorts[0].objEditor.OK()
 
2294
        #setting input ports 
 
2295
        node1.inputPorts[0].edit()
 
2296
        node1.inputPorts[0].objEditor.dataType.set('int')
 
2297
        node1.inputPorts[0].objEditor.OK()
 
2298
        ed.master.update_idletasks()
 
2299
        pause()
 
2300
        #setting input in built in func
 
2301
        ed.runCurrentNet_cb()
 
2302
        print "tests builtin entry lambda x:x+x,input 89,output:"
 
2303
        node1.inputPorts[1].widget.set('lambda x:x+x')
 
2304
        node1.run()
 
2305
        self.assertEqual(node3.inputPorts[0].getData(),178)
 
2306
        print "tests builtin entry lambda x:x*x,input 89,output:"
 
2307
        node1.inputPorts[1].widget.set('lambda x:x*x')
 
2308
        node1.run()
 
2309
        self.assertEqual(node3.inputPorts[0].getData(),7921)
 
2310
        
 
2311
        
 
2312
    def test_Python_iterate(self):
 
2313
        from Vision.StandardNodes import stdlib
 
2314
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2315
        ed.master.update_idletasks()
 
2316
        pause()
 
2317
        net = ed.currentNetwork
 
2318
        #node1 is 
 
2319
        node1 = Vision.StandardNodes.Iterate(library =Vision.StandardNodes.stdlib)
 
2320
        #adding node1
 
2321
        net.addNode(node1,150,150)
 
2322
        #node2 is generic
 
2323
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2324
        #adding node2
 
2325
        net.addNode(node2,200,10)
 
2326
        #node3 is print 
 
2327
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2328
        #adding node3 
 
2329
        net.addNode(node3,400,100)
 
2330
        node2.addOutputPort()
 
2331
        node2.setFunction("def doit(self):\n\tself.outputData(out0=[10,20,30])\n")
 
2332
        print "tests iterate ,input [10,20,30]:,,connecting print with,outputport0,output:"
 
2333
        net.connectNodes(node2,node1)    
 
2334
        #connecting print with iterate outputport0(one item of the list)
 
2335
        port3 =node1.outputPorts[0]
 
2336
        port4 =node3.inputPorts[0] 
 
2337
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
2338
        ed.runCurrentNet_cb()
 
2339
        self.assertEqual(node3.inputPorts[0].getData(),30)
 
2340
        net.deleteConnectionsNoCB(net.connections[1])
 
2341
        #connecting print with iterate outputport1(the current index into the list of items to iterate over)
 
2342
        print "tests iterate ,input [10,20,30]:,,connecting print with,outputport1,output:"
 
2343
        port3 =node1.outputPorts[1]
 
2344
        port4 =node3.inputPorts[0] 
 
2345
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
2346
        self.assertEqual(node3.inputPorts[0].getData(),2)
 
2347
        net.deleteConnectionsNoCB(net.connections[1])
 
2348
        #connecting print with iterate outputport2(at the begin of an iteration, output True)
 
2349
        print "tests iterate ,input [10,20,30]:,,connecting print with,outputport2,output:"
 
2350
        port3 =node1.outputPorts[2]
 
2351
        port4 =node3.inputPorts[0] 
 
2352
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
2353
        self.assertEqual(node3.inputPorts[0].getData(),False)
 
2354
        net.deleteConnectionsNoCB(net.connections[1])
 
2355
        #connecting print with iterate outputport3(at the end of an iteration, output True)
 
2356
        print "tests iterate ,input [10,20,30]:,,connecting print with,outputport3,output:"
 
2357
        port3 =node1.outputPorts[3]
 
2358
        port4 =node3.inputPorts[0] 
 
2359
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
2360
        self.assertEqual(node3.inputPorts[0].getData(),True)
 
2361
        net.deleteConnectionsNoCB(net.connections[1])
 
2362
        print "tests iterate ,input [10,20,30]:,,connecting print with,outputport4,output:"
 
2363
        #connecting print with iterate outputport4(the lenght of the list to loop over)
 
2364
        port3 =node1.outputPorts[4]
 
2365
        port4 =node3.inputPorts[0] 
 
2366
        apply( net.connectNodes,(port3.node, port4.node, port3.number, port4.number),{})
 
2367
        self.assertEqual(node3.inputPorts[0].getData(),3)
 
2368
        
 
2369
    def test_Python_accum(self):
 
2370
        
 
2371
        from Vision.StandardNodes import stdlib
 
2372
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2373
        ed.master.update_idletasks()
 
2374
        pause()
 
2375
        net = ed.currentNetwork
 
2376
        #node1 is iterate
 
2377
        node1 = Vision.StandardNodes.Iterate(library =Vision.StandardNodes.stdlib)
 
2378
        #adding node1
 
2379
        net.addNode(node1,150,150)
 
2380
        #node2 is generic
 
2381
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2382
        #adding node2
 
2383
        net.addNode(node2,200,10)
 
2384
        #node3 is print 
 
2385
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2386
        #adding node3 
 
2387
        net.addNode(node3,400,100)
 
2388
        #node4 is accum
 
2389
        node4 = Vision.StandardNodes.Accumulate(library =Vision.StandardNodes.stdlib)
 
2390
        #adding node4
 
2391
        net.addNode(node4,50,50)
 
2392
        #node5 is check button
 
2393
        node5 = Vision.StandardNodes.CheckButtonNE(library =Vision.StandardNodes.stdlib)
 
2394
        #ading node5
 
2395
        net.addNode(node5,200,200)
 
2396
        node2.addOutputPort()
 
2397
        node2.setFunction("def doit(self):\n\tself.outputData(out0=[10,20,30])\n")
 
2398
        net.connectNodes(node2,node1)
 
2399
        net.connectNodes(node4,node3)
 
2400
        #connecting iterate o/p port0 to accum i/p port0
 
2401
        port1 =node1.outputPorts[0]
 
2402
        port2 =node4.inputPorts[0] 
 
2403
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2404
        #connecting iterate o/p port3 to accum i/p port2
 
2405
        port1 =node1.outputPorts[3]
 
2406
        port2 =node4.inputPorts[2] 
 
2407
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2408
        #connecting check button o/p port1 to accum i/p port1
 
2409
        port1 =node5.outputPorts[0]
 
2410
        port2 =node4.inputPorts[1]
 
2411
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2412
        print "tests accum connected to iterate,input [10, 20, 30],output:"
 
2413
        node5.inputPorts[0].widget.set(0)
 
2414
        ed.runCurrentNet_cb()
 
2415
        self.assertEqual(node3.inputPorts[0].getData(),[10, 20, 30])
 
2416
        print "tests accum connected to iterate,input [10, 20, 30],output for second run :"
 
2417
        ed.runCurrentNet_cb()
 
2418
        self.assertEqual(node3.inputPorts[0].getData(),[10, 20, 30, 10, 20, 30])
 
2419
        print "tests accum connected to iterate,input [10, 20, 30],output for third run :"
 
2420
        ed.runCurrentNet_cb()
 
2421
        self.assertEqual(node3.inputPorts[0].getData(),[10, 20, 30, 10, 20, 30, 10, 20, 30])
 
2422
 
 
2423
    def test_Python_map(self):
 
2424
        
 
2425
        from Vision.StandardNodes import stdlib
 
2426
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2427
        ed.master.update_idletasks()
 
2428
        pause()
 
2429
        net = ed.currentNetwork
 
2430
        #node1 is map
 
2431
        node1 = Vision.StandardNodes.Map(library =Vision.StandardNodes.stdlib)
 
2432
        #adding node1
 
2433
        net.addNode(node1,150,150)
 
2434
        #node2 is generic
 
2435
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2436
        #adding node2
 
2437
        net.addNode(node2,200,10)
 
2438
        #node3 is print 
 
2439
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2440
        #adding node3 
 
2441
        net.addNode(node3,400,100) 
 
2442
        node2.addOutputPort()
 
2443
        node2.setFunction("def doit(self):\n\tself.outputData(out0=[10,20,30])\n")
 
2444
        net.connectNodes(node1,node3)
 
2445
        net.connectNodes(node2,node1)
 
2446
        node2.outputPorts[0].edit()
 
2447
        node2.outputPorts[0].objEditor.dataType.set('list')
 
2448
        node2.outputPorts[0].objEditor.OK()
 
2449
        node1.inputPorts[1].widget.set('lambda x: str(x)')
 
2450
        print "tests map entry lambda x: str(x),input [10,20,30],output:"
 
2451
        ed.runCurrentNet_cb()
 
2452
        self.assertEqual(node3.inputPorts[0].getData(),['10', '20', '30'])
 
2453
        node1.inputPorts[1].widget.set('lambda x: x+x')
 
2454
        print "tests map entry lambda x: x+x,input [10,20,30],output:"
 
2455
        ed.runCurrentNet_cb()
 
2456
        self.assertEqual(str(node3.inputPorts[0].getData()), '[20, 40, 60]') 
 
2457
        
 
2458
 
 
2459
    def test_Python_isTrue_Stop(self):
 
2460
        from Vision.StandardNodes import stdlib
 
2461
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2462
        ed.master.update_idletasks()
 
2463
        pause()
 
2464
        net = ed.currentNetwork
 
2465
        #node1 is isTrue_stop
 
2466
        node1 = Vision.StandardNodes.IsTrue_Stop(library =Vision.StandardNodes.stdlib)
 
2467
        #adding node1
 
2468
        net.addNode(node1,150,150)
 
2469
        #node2 is entry
 
2470
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2471
        #adding node2
 
2472
        net.addNode(node2,200,10)
 
2473
        #node3 is print 
 
2474
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2475
        #adding node3 
 
2476
        net.addNode(node3,400,100)
 
2477
        net.connectNodes(node1,node3)
 
2478
        net.connectNodes(node2,node1)
 
2479
        node2.outputPorts[0].edit()
 
2480
        node2.outputPorts[0].objEditor.dataType.set('int')
 
2481
        node2.outputPorts[0].objEditor.OK()
 
2482
        node2.inputPorts[0].widget.set(100)
 
2483
        print "tests isTrue is 'data == 10',entry 100,output:"
 
2484
        node1.inputPorts[1].widget.set('data == 10')
 
2485
        node1.run()
 
2486
        self.assertEqual(node3.inputPorts[0].getData(),'Stop')
 
2487
        print "tests isTrue is 'data == 100',entry 100,output:"
 
2488
        node1.inputPorts[1].widget.set('data == 100')
 
2489
        net.run()
 
2490
        self.assertEqual(node3.inputPorts[0].getData(),100)
 
2491
        
 
2492
        
 
2493
    def test_Python_if_else(self):
 
2494
        from Vision.StandardNodes import stdlib
 
2495
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2496
        ed.master.update_idletasks()
 
2497
        pause()
 
2498
        net = ed.currentNetwork
 
2499
        #node1 is if else
 
2500
        node1 = Vision.StandardNodes.IfElseNode(library =Vision.StandardNodes.stdlib)
 
2501
        #adding node1
 
2502
        net.addNode(node1,150,150)
 
2503
        #node2 is entry
 
2504
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2505
        #adding node2
 
2506
        net.addNode(node2,200,10)
 
2507
        #node3 is print 
 
2508
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2509
        #adding node3 
 
2510
        net.addNode(node3,400,100)
 
2511
        #node4 is entry
 
2512
        node4 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2513
        #adding node4
 
2514
        net.addNode(node4,50,50)
 
2515
        net.connectNodes(node1,node3)
 
2516
        port1 =node2.outputPorts[0]
 
2517
        port2 =node1.inputPorts[0] 
 
2518
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2519
        port1 =node4.outputPorts[0]
 
2520
        port2 =node1.inputPorts[1] 
 
2521
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2522
        node2.outputPorts[0].edit()
 
2523
        node2.outputPorts[0].objEditor.dataType.set('int')
 
2524
        node2.outputPorts[0].objEditor.OK()
 
2525
        node4.outputPorts[0].edit()
 
2526
        node4.outputPorts[0].objEditor.dataType.set('int')
 
2527
        node4.outputPorts[0].objEditor.OK()
 
2528
        node1.inputPorts[2].widget.set('False')
 
2529
        node2.inputPorts[0].widget.set(100)
 
2530
        print "tests if_else entry False,inputs 100,90,output:"
 
2531
        node4.inputPorts[0].widget.set(90)
 
2532
        net.run()
 
2533
        self.assertEqual(node3.inputPorts[0].getData(),90)
 
2534
        print "tests if_else entry True,inputs 100,90,output:"
 
2535
        node1.inputPorts[2].widget.set('True')
 
2536
        node1.run()
 
2537
        self.assertEqual(node3.inputPorts[0].getData(),100)
 
2538
 
 
2539
     
 
2540
    
 
2541
    def test_Python_eval(self):
 
2542
        from Vision.StandardNodes import stdlib
 
2543
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2544
        ed.master.update_idletasks()
 
2545
        pause()
 
2546
        net = ed.currentNetwork
 
2547
        #node1 is eval
 
2548
        node1 = Vision.StandardNodes.Eval(library =Vision.StandardNodes.stdlib)
 
2549
        #adding node1
 
2550
        net.addNode(node1,150,150)
 
2551
        #node3 is print 
 
2552
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2553
        #adding node3 
 
2554
        net.addNode(node3,400,100)
 
2555
        net.connectNodes(node1,node3)
 
2556
        node1.toggleNodeExpand_cb()
 
2557
        print "tests eval entry 2+3 ,output:"
 
2558
        node1.inputPorts[0].widget.set('2+3')
 
2559
        node1.run()
 
2560
        self.assertEqual(node3.inputPorts[0].getData(),5)
 
2561
        print "tests eval entry 2+3!=5 ,output:"
 
2562
        node1.inputPorts[0].widget.set('2+3 !=5')
 
2563
        node1.run()
 
2564
        self.assertEqual(node3.inputPorts[0].getData(),False)
 
2565
        
 
2566
##    def Xtest_Python_eval_with_input_port(self):
 
2567
##        from Vision.StandardNodes import stdlib
 
2568
##        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2569
##        ed.master.update_idletasks()
 
2570
##        pause()
 
2571
##        net = ed.currentNetwork
 
2572
##        #node1 is if else
 
2573
##        node1 = Vision.StandardNodes.Eval(library =Vision.StandardNodes.stdlib)
 
2574
##        #adding node1
 
2575
##        net.addNode(node1,150,150)
 
2576
##        #node2 is entry
 
2577
##        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2578
##        #adding node2
 
2579
##        net.addNode(node2,50,50)
 
2580
##        #node3 is print 
 
2581
##        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2582
##        #adding node3 
 
2583
##        net.addNode(node3,400,100)
 
2584
##        node2.addOutputPort()
 
2585
##        node2.setFunction("def doit(self):\n\tself.outputData(out0=[1,2,3,4,5])\n")
 
2586
##        port1 =node2.outputPorts[0]
 
2587
##        port2 =node1.inputPorts[1] 
 
2588
##        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2589
##        #net.connectNodes(node2,node1)
 
2590
##        net.connectNodes(node1,node3)
 
2591
##        ed.runCurrentNet_cb()
 
2592
##        print "tests eval entry in1[1:2],input [1,2,3,4,5],output:"
 
2593
##        node1.inputPorts[0].widget.set('in1[1:2]')
 
2594
##        self.assertEqual(node3.inputPorts[0].getData(),[2])
 
2595
        
 
2596
 
 
2597
 
 
2598
        
 
2599
    def test_Python_get_attr(self):
 
2600
        from Vision.StandardNodes import stdlib
 
2601
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2602
        ed.master.update_idletasks()
 
2603
        pause()
 
2604
        net = ed.currentNetwork
 
2605
        #node1 is Get attr
 
2606
        node1 = Vision.StandardNodes.GetAttr(library =Vision.StandardNodes.stdlib)
 
2607
        #adding node1
 
2608
        net.addNode(node1,150,150)
 
2609
        #node2 is generic
 
2610
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2611
        #adding node2
 
2612
        net.addNode(node2,200,10)
 
2613
        #node3 is print 
 
2614
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2615
        #adding node3 
 
2616
        net.addNode(node3,400,100) 
 
2617
        node2.addOutputPort()
 
2618
        node2.setFunction("def doit(self):\n\timport Vision\n\tnode1 =Vision.StandardNodes\n\tself.outputData(out0=node1)\n")
 
2619
        net.connectNodes(node1,node3)
 
2620
        net.connectNodes(node2,node1)
 
2621
        node1.toggleNodeExpand_cb()
 
2622
        ed.runCurrentNet_cb()
 
2623
        print "tests get attr  entry Filelist,input Vision.StandardNodes,output:"
 
2624
        node1.inputPorts[1].widget.set('Filelist')
 
2625
        ed.runCurrentNet_cb()
 
2626
        from string import split
 
2627
        self.assertEqual(split(str(node3.inputPorts[0].getData()[0]))[1],"'Vision.StandardNodes.Filelist'>")
 
2628
        
 
2629
    def test_Python_set_attr(self):
 
2630
        from Vision.StandardNodes import stdlib
 
2631
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2632
        ed.master.update_idletasks()
 
2633
        pause()
 
2634
        net = ed.currentNetwork
 
2635
        #node1 is map
 
2636
        node1 = Vision.StandardNodes.SetAttr(library =Vision.StandardNodes.stdlib)
 
2637
        #adding node1
 
2638
        net.addNode(node1,150,150)
 
2639
        #node2 is generic
 
2640
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2641
        #adding node2
 
2642
        net.addNode(node2,200,10)
 
2643
        #node3 is print 
 
2644
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2645
        #adding node3 
 
2646
        net.addNode(node3,400,100) 
 
2647
        node4 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2648
        net.addNode(node4,50,50)
 
2649
        node2.addOutputPort()
 
2650
        node2.setFunction("def doit(self):\n\timport Vision\n\tnode1 =Vision.StandardNodes\n\tself.outputData(out0=node1)\n")
 
2651
        net.connectNodes(node1,node3)
 
2652
        port1 =node2.outputPorts[0]
 
2653
        port2 =node1.inputPorts[0] 
 
2654
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2655
        port1 =node4.outputPorts[0]
 
2656
        port2 =node1.inputPorts[1] 
 
2657
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2658
        node1.toggleNodeExpand_cb()
 
2659
        #ed.runCurrentNet_cb()
 
2660
        print "tests setattr  entry Filelist,input Vision.StandardNodes,output:"
 
2661
        node1.inputPorts[2].widget.set("newattr")
 
2662
        node4.inputPorts[0].widget.set(100)
 
2663
        ed.runCurrentNet_cb()
 
2664
        self.assertEqual(Vision.StandardNodes.newattr,'100')
 
2665
        
 
2666
    def test_Python_call_method(self):
 
2667
        from Vision.StandardNodes import stdlib
 
2668
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2669
        ed.master.update_idletasks()
 
2670
        pause()
 
2671
        net = ed.currentNetwork
 
2672
        #node1 is Generic
 
2673
        node1 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2674
        #adding node1
 
2675
        net.addNode(node1,100,50)
 
2676
        #node2 is Generic
 
2677
        node2 = Vision.StandardNodes.CallMethod(library =Vision.StandardNodes.stdlib)
 
2678
        #adding node2
 
2679
        net.addNode(node2,100,100)
 
2680
        node1.addOutputPort()
 
2681
        node1.setFunction("def doit(self):\n\tfrom Vision.Tests.myclass import Test\n\tmyTest = Test()\n\tself.outputData(out0=myTest)\n")
 
2682
        node3 =Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2683
        net.addNode(node3,100,200)
 
2684
        node2.inputPorts[1].widget.set('Set %a %b %c %d')
 
2685
        #node0 is Generic
 
2686
        node0 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2687
        #adding node0
 
2688
        net.addNode(node0,100,150)
 
2689
        node0.setFunction("def doit(self):\n\tself.outputData(out0=[in0.in1,in0.in2,in0.in3,in0.in4])\n")
 
2690
        node0.addOutputPort()
 
2691
        node0.addInputPort()
 
2692
        net.connectNodes(node1,node2)
 
2693
        net.connectNodes(node0,node3)
 
2694
        port1 =node2.outputPorts[0]
 
2695
        port2 =node0.inputPorts[0] 
 
2696
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2697
        ed.runCurrentNet_cb()
 
2698
        node4 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2699
        net.addNode(node4,200,50)
 
2700
        node5 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2701
        net.addNode(node5,200,150)
 
2702
        node6 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2703
        net.addNode(node6,200,250)
 
2704
        node7 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2705
        net.addNode(node7,200,320)
 
2706
        node4.inputPorts[0].widget.set(1)
 
2707
        node5.inputPorts[0].widget.set(2)
 
2708
        node6.inputPorts[0].widget.set(3)
 
2709
        node7.inputPorts[0].widget.set(4)
 
2710
        print "tests call method ,input myclass instance ,inputs for 4 ports is 1,2,3,4, output:"
 
2711
        port1 =node4.outputPorts[0]
 
2712
        port2 =node2.inputPorts[2] 
 
2713
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2714
        port1 =node5.outputPorts[0]
 
2715
        port2 =node2.inputPorts[3] 
 
2716
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2717
        port1 =node6.outputPorts[0]
 
2718
        port2 =node2.inputPorts[4] 
 
2719
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2720
        port1 =node7.outputPorts[0]
 
2721
        port2 =node2.inputPorts[5] 
 
2722
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2723
        ed.runCurrentNet_cb()
 
2724
        self.assertEqual(node3.inputPorts[0].getData(),['1', '2', '3', '4'])
 
2725
        
 
2726
################################################
 
2727
#       Vision Tests                           #
 
2728
################################################
 
2729
 
 
2730
    def test_Python_set_counter(self):
 
2731
        from Vision.StandardNodes import stdlib
 
2732
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2733
        ed.master.update_idletasks()
 
2734
        pause()
 
2735
        net = ed.currentNetwork
 
2736
        net.runOnNewData.value = True
 
2737
        #node1 is counter
 
2738
        node1 = Vision.StandardNodes.Counter(library =Vision.StandardNodes.stdlib)
 
2739
        #adding node1
 
2740
        net.addNode(node1,150,150)
 
2741
        #node2 is print
 
2742
        node2 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2743
        #adding node2
 
2744
        net.addNode(node2,200,10)
 
2745
        #node3 is print 
 
2746
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2747
        #adding node3 
 
2748
        net.addNode(node3,400,100) 
 
2749
        node4 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2750
        net.addNode(node4,50,50)
 
2751
        net.connectNodes(node4,node1)
 
2752
        port1 =node1.outputPorts[0]
 
2753
        port2 =node2.inputPorts[0] 
 
2754
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2755
        port1 =node1.outputPorts[1]
 
2756
        port2 =node3.inputPorts[0] 
 
2757
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2758
        node1.toggleNodeExpand_cb()
 
2759
        print "tests counter when run thrice,input 2,output:"
 
2760
        node4.inputPorts[0].widget.set(2)
 
2761
        ed.runCurrentNet_cb()
 
2762
        ed.runCurrentNet_cb()
 
2763
        self.assertEqual(node2.inputPorts[0].getData(),'2')
 
2764
        self.assertEqual(node3.inputPorts[0].getData(),3)
 
2765
        print "tests counter when reset toggled input 2,output:"
 
2766
        node1.inputPorts[1].widget.widget.invoke()
 
2767
        self.assertEqual(node2.inputPorts[0].getData(),'2')
 
2768
        self.assertEqual(node3.inputPorts[0].getData(),0)
 
2769
        
 
2770
 
 
2771
    def test_Python_change_back_ground_color(self):
 
2772
        from Vision.StandardNodes import stdlib
 
2773
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2774
        ed.master.update_idletasks()
 
2775
        pause()
 
2776
        net = ed.currentNetwork
 
2777
        #node1 is counter
 
2778
        node1 = Vision.StandardNodes.ChangeBackground(library =Vision.StandardNodes.stdlib)
 
2779
        #adding node1
 
2780
        net.addNode(node1,150,150)
 
2781
        print "tests change back ground color:"
 
2782
        node1.inputPorts[0].widget.set('blue')
 
2783
        self.assertEqual(node1.inputPorts[0].widget.get(),'blue')
 
2784
        
 
2785
 
 
2786
#    def test_Python_show_hide_gui(self):
 
2787
#        from Vision.StandardNodes import stdlib
 
2788
#        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2789
#        ed.master.update_idletasks()
 
2790
#        pause()
 
2791
#        net = ed.currentNetwork
 
2792
#        node1 = Vision.StandardNodes.ShowHideGUI(library =Vision.StandardNodes.stdlib)
 
2793
#        #adding node1
 
2794
#        net.addNode(node1,150,150)
 
2795
#       
 
2796
#        #print "tests show hide gui toggle off:"
 
2797
#        node1.inputPorts[0].widget.set(0)
 
2798
#        self.assertEqual(node1.inputPorts[0].widget.widget.winfo_viewable(),0)
 
2799
#        
 
2800
#        #print "tests show hide gui toggle on:"
 
2801
#        ed.showGUI()
 
2802
#        node1.inputPorts[0].widget.set(1)
 
2803
#        ed.master.update_idletasks()
 
2804
#        pause()
 
2805
#
 
2806
#        if sys.platform != 'win32':
 
2807
#               self.assertEqual(node1.inputPorts[0].widget.widget.winfo_viewable(),1)
 
2808
 
 
2809
 
 
2810
    def test_Python_show_hide_param_panel(self):
 
2811
        from Vision.StandardNodes import stdlib
 
2812
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2813
        ed.master.update_idletasks()
 
2814
        pause()
 
2815
        net = ed.currentNetwork
 
2816
        node1 = Vision.StandardNodes.ShowHideParamPanel(library =Vision.StandardNodes.stdlib)
 
2817
        #adding node1
 
2818
        net.addNode(node1,150,150)    
 
2819
        node2 =  Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2820
        #adding node2
 
2821
        net.addNode(node2,50,50)
 
2822
        net.connectNodes(node2,node1)
 
2823
        node2.inputPorts[0].widget.set(25)
 
2824
        print "tests parampanel toggle on:"
 
2825
        node1.inputPorts[1].widget.set(0)
 
2826
        print "tests parampanel toggle off:"
 
2827
        self.assertEqual(node2.paramPanel.visible,0)
 
2828
        node1.inputPorts[1].widget.set(1)
 
2829
        node1.run()
 
2830
        self.assertEqual(node2.paramPanel.visible,1)
 
2831
        
 
2832
    def test_has_new_data(self):
 
2833
        from Vision.StandardNodes import stdlib
 
2834
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2835
        ed.master.update_idletasks()
 
2836
        pause()
 
2837
        net = ed.currentNetwork
 
2838
        net.runOnNewData.value = True
 
2839
        node1 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2840
        net.addNode(node1,200,10)
 
2841
        node1.addOutputPort()
 
2842
        node1.addOutputPort()
 
2843
        node1.addInputPort()
 
2844
        node1.setFunction("""def doit(self, in1):\n\tif in1:\n\t\tself.outputData(out0='On')\n\telse:\n\t\tself.outputData(out1='Off')""")
 
2845
        apply(node1.inputPorts[0].createWidget, (), {'descr':{'initialValue': 0, 'labelGridCfg': {'column': 0, 'row': 0}, 'master': 'node', 'widgetGridCfg': {'labelSide': 'left', 'column': 1, 'row': 0}, 'labelCfg': {'text': ''}, 'class': 'NECheckButton'}})
 
2846
        node2 =  Vision.StandardNodes.HasNewData(library =Vision.StandardNodes.stdlib)
 
2847
        net.addNode(node2,200,100)
 
2848
        node3 =  Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2849
        net.addNode(node3,200,200)
 
2850
        net.connectNodes(node2,node3)
 
2851
        node3.inputPorts[0].edit()
 
2852
        node3.inputPorts[0].objEditor.singleConnectionTk.set('False')
 
2853
        node3.inputPorts[0].objEditor.OK()
 
2854
        port1 =node1.outputPorts[1]
 
2855
        port2 =node2.inputPorts[0]
 
2856
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2857
        port1 =node1.outputPorts[0]
 
2858
        port2 =node3.inputPorts[0]
 
2859
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2860
        node1.toggleNodeExpand_cb()
 
2861
        self.assertEqual(node3.inputPorts[0].getData(),'Stop')
 
2862
        node1.inputPorts[0].widget.set(1)
 
2863
        self.assertEqual(node3.inputPorts[0].getData(),['On'])
 
2864
        node1.inputPorts[0].widget.set(0)
 
2865
        print "testing hasNewData node,generic with inputports widget type Check button,when off,output is:"
 
2866
        self.assertEqual(node3.inputPorts[0].getData(),['Off'])
 
2867
        
 
2868
 
 
2869
        
 
2870
##############################################
 
2871
#   Output Tests                             #
 
2872
##############################################
 
2873
 
 
2874
    def test_save_field(self):
 
2875
                
 
2876
        from Vision.StandardNodes import stdlib
 
2877
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2878
        ed.master.update_idletasks()
 
2879
        pause()
 
2880
        net = ed.currentNetwork
 
2881
        #node1 is save field 
 
2882
        node1 = Vision.StandardNodes.SaveField(library =Vision.StandardNodes.stdlib)
 
2883
        #adding node1
 
2884
        net.addNode(node1,150,150)
 
2885
        #node2 is print
 
2886
        node2 = Vision.StandardNodes.Generic(library =Vision.StandardNodes.stdlib)
 
2887
        #adding node2
 
2888
        net.addNode(node2,200,10)
 
2889
        node2.addOutputPort()
 
2890
        node2.setFunction("def doit(self):\n\tself.outputData(out0=[1,2,3,4])\n")
 
2891
        net.connectNodes(node2,node1)
 
2892
        node1.toggleNodeExpand_cb()
 
2893
        node1.inputPorts[1].widget.set(os.path.abspath('testfile'))
 
2894
        ed.runCurrentNet_cb()
 
2895
        fptr = open('testfile')
 
2896
        alllines = fptr.readlines()
 
2897
        self.assertEqual(len(alllines)>0,True)
 
2898
        
 
2899
 
 
2900
    def test_save_lines(self):
 
2901
        cmd = "rm -f note3"
 
2902
        os.system(cmd)        
 
2903
        from Vision.StandardNodes import stdlib
 
2904
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2905
        ed.master.update_idletasks()
 
2906
        pause()
 
2907
        net = ed.currentNetwork
 
2908
        #node1 is save field 
 
2909
        node1 = Vision.StandardNodes.SaveLines(library =Vision.StandardNodes.stdlib)
 
2910
        #adding node1
 
2911
        net.addNode(node1,150,150)
 
2912
        #node2 is print
 
2913
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2914
        #adding node2
 
2915
        net.addNode(node2,200,10)
 
2916
        #node3 is print 
 
2917
        node3 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2918
        #adding node1
 
2919
        net.addNode(node3,50,50)
 
2920
        net.connectNodes(node2,node1)
 
2921
        node2.inputPorts[0].widget.set("hi how are you?")
 
2922
        node1.inputPorts[1].widget.set(os.path.abspath('note3'))
 
2923
        net.run()
 
2924
        fptr =open(os.path.abspath('note3'))
 
2925
        alllines = fptr.readlines()
 
2926
        self.assertEqual(len(alllines)>0,True)
 
2927
 
 
2928
        
 
2929
 
 
2930
    def test__output_PrintFS(self):
 
2931
        from Vision.StandardNodes import stdlib
 
2932
        ed.addLibraryInstance(stdlib, 'Vision.StandardNodes', 'stdlib')
 
2933
        ed.master.update_idletasks()
 
2934
        pause()
 
2935
        net = ed.currentNetwork
 
2936
        #printFS node
 
2937
        node1 = Vision.StandardNodes.PrintFormatedString(library =Vision.StandardNodes.stdlib)
 
2938
        net.addNode(node1,150,150)
 
2939
        #entry node
 
2940
        node2 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2941
        net.addNode(node2,250,250)
 
2942
        #entry node
 
2943
        node3 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2944
        net.addNode(node3,200,200)
 
2945
        #entry node
 
2946
        node4 = Vision.StandardNodes.EntryNE(library =Vision.StandardNodes.stdlib)
 
2947
        net.addNode(node4,100,200)
 
2948
        #print node
 
2949
        node5 = Vision.StandardNodes.Print(library =Vision.StandardNodes.stdlib)
 
2950
        net.addNode(node5,300,200)
 
2951
        #adding inputports for printFS
 
2952
        node1.addInputPort()
 
2953
        node1.addInputPort()
 
2954
        #connecting printFS and entry nodes
 
2955
        port1 =node3.outputPorts[0]
 
2956
        port2 =node1.inputPorts[2] 
 
2957
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2958
        port1 =node4.outputPorts[0]
 
2959
        port2 =node1.inputPorts[3] 
 
2960
        apply( net.connectNodes,(port1.node, port2.node, port1.number, port2.number),{})
 
2961
        node3.outputPorts[0].edit()
 
2962
        node3.outputPorts[0].objEditor.dataType.set('float')
 
2963
        node3.outputPorts[0].objEditor.OK()
 
2964
        node4.outputPorts[0].edit()
 
2965
        node4.outputPorts[0].objEditor.dataType.set('float')
 
2966
        node4.outputPorts[0].objEditor.OK()
 
2967
        node2.inputPorts[0].widget.set('%d %6.2f')
 
2968
        node3.inputPorts[0].widget.set(2.3456)
 
2969
        node4.inputPorts[0].widget.set(4.23)
 
2970
        net.connectNodes(node2,node1)
 
2971
        net.connectNodes(node1,node5)
 
2972
        print "tests printFS '%d %6.2f',inputs 2.3456,4.23,output :"
 
2973
        ed.runCurrentNet_cb()
 
2974
        self.assertEqual(str(node5.inputPorts[0].getData()),'2   4.23')
 
2975
        
 
2976
 
 
2977
if __name__ == '__main__':
 
2978
    unittest.main()