Xcos MVC: Fixed default datatype
[scilab.git] / scilab / modules / scicos / tests / unit_tests / model / Diagram.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2014 - Scilab Enterprises - Paul Bignier
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 loadXcosLibs();
9
10 // Allocate a diagram and access its fields
11 scs_m = scicos_diagram()
12 scs_m.props
13 scs_m.objs
14 scs_m.version
15 scs_m.contrib
16
17 // Create a diagram containing 2 summation blocks and an empty link
18 Sum    = BIGSOM_f("define");
19 Scope1  = CSCOPE("define");
20 Scope2 = CSCOPE("define");
21 lnk    = scicos_link();          // Data link
22 lnk2   = scicos_link(ct=[1,-1]); // Activation link
23
24 scs_m = scicos_diagram( objs=list(Sum,Scope1,Scope2,lnk,lnk2) )
25 scs_m.objs
26
27 // Link output port #1 of block #1 with input port #1 of block #2
28 l = scs_m.objs;
29 l(4).from = [1 1 0]; // Link block #1
30 l(1).graphics.pout   // Check that block #1 is connected to the link
31 l(1).model.out       // "
32 l(4).to = [2 1 1];   // Link block #2
33 l(4).from
34 l(4).to
35 l(2).graphics.pin    // Check that block #2 is connected to the link
36 l(2).model.in        // "
37
38 // Change the end of the link to input port #2 of block #2
39 l(4).to = [2 2 1];
40 l(4).from
41 l(4).to
42 l(2).graphics.pin  // Check that block #2 is connected to the link
43 l(2).model.in      // "
44
45 // Disconnect the source, the destination is also disconnected
46 l(4).from = [0 0 0];
47 l(4).from
48 l(4).to
49 l(1).graphics.pout // Check that both blocks are unconnected
50 l(2).graphics.pin  // "
51
52 // Now link the two Scope blocks together by adding an event output port to block #3
53 l(5).from = [2 1 1]; // Link the input of block #2
54 l(5).to = [3 1 0];   // Add an event output to block #3 and link it to the previous
55 l(5).from
56 l(5).to
57 l(2).graphics.pein
58 l(2).model.evtin
59 l(3).graphics.peout
60 l(3).model.evtout
61
62 // Verify that it is impossible to link two inputs or two outputs together
63 l(5).from = [2 1 0]; // Two outputs
64 l(5).to = [3 1 1];   // Two inputs