Xcos scopes: fix existing object check 49/7249/2
Clément DAVID [Thu, 24 May 2012 06:11:21 +0000 (08:11 +0200)]
Reuse the existing object (polyline, grayplot, ...) instead of creating a new one.
Update tests to handle existing object management :
    simulate
    check object counts (per node)
    simulate again with the previous figure (complete object hierarchy)
    check all properties

Change-Id: I135054f1248728ff49db5bbd771a24988ceac26e

22 files changed:
scilab/modules/scicos_blocks/src/c/cmatview.c
scilab/modules/scicos_blocks/src/c/scoUtils.c
scilab/modules/xcos/tests/unit_tests/canimxy.dia.ref
scilab/modules/xcos/tests/unit_tests/canimxy.tst
scilab/modules/xcos/tests/unit_tests/canimxy3d.dia.ref
scilab/modules/xcos/tests/unit_tests/canimxy3d.tst
scilab/modules/xcos/tests/unit_tests/cevscpe.dia.ref
scilab/modules/xcos/tests/unit_tests/cevscpe.tst
scilab/modules/xcos/tests/unit_tests/cfscope.dia.ref
scilab/modules/xcos/tests/unit_tests/cfscope.tst
scilab/modules/xcos/tests/unit_tests/cmatview.dia.ref
scilab/modules/xcos/tests/unit_tests/cmatview.tst
scilab/modules/xcos/tests/unit_tests/cmatview3d.dia.ref
scilab/modules/xcos/tests/unit_tests/cmatview3d.tst
scilab/modules/xcos/tests/unit_tests/cmscope.dia.ref
scilab/modules/xcos/tests/unit_tests/cmscope.tst
scilab/modules/xcos/tests/unit_tests/cscope.dia.ref
scilab/modules/xcos/tests/unit_tests/cscope.tst
scilab/modules/xcos/tests/unit_tests/cscopxy.dia.ref
scilab/modules/xcos/tests/unit_tests/cscopxy.tst
scilab/modules/xcos/tests/unit_tests/cscopxy3d.dia.ref
scilab/modules/xcos/tests/unit_tests/cscopxy3d.tst

index 4affa58..daa280d 100644 (file)
@@ -401,7 +401,7 @@ static char *getGrayplot(char *pAxeUID, scicos_block * block)
         return sco->scope.cachedGrayplotUID;
     }
 
-    pGrayplot = findChildWithKindAt(pAxeUID, __GO_GRAYPLOT__, 1);
+    pGrayplot = findChildWithKindAt(pAxeUID, __GO_GRAYPLOT__, 0);
 
     /*
      * Allocate if necessary
index e525c08..b548a3f 100644 (file)
 #include "strdup_windows.h"
 #endif
 
+// #include <stdio.h>
+// #define LOG printf
+#define LOG
+
 char *findChildWithKindAt(char *parent, const char *type, const int position)
 {
     char *child = NULL;
@@ -44,7 +48,7 @@ char *findChildWithKindAt(char *parent, const char *type, const int position)
     getGraphicObjectProperty(parent, __GO_CHILDREN_COUNT__, jni_int, (void **)&pChildrenCount);
     getGraphicObjectProperty(parent, __GO_CHILDREN__, jni_string_vector, (void **)&children);
 
-    for (typeCount = 0, i = 0; i < childrenCount; i++)
+    for (typeCount = 0, i = childrenCount - 1; i >= 0; i--)
     {
         getGraphicObjectProperty(children[i], __GO_TYPE__, jni_string, (void **)&childType);
 
@@ -59,6 +63,7 @@ char *findChildWithKindAt(char *parent, const char *type, const int position)
         if (typeCount == (position + 1))
         {
             child = strdup(children[i]);
+            LOG("%s: found %s at %d : %s\n", "findChildWithKindAt", type, position, child);
             break;
         }
     }
index 3b6fbfd..6ef3aac 100644 (file)
 loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/canimxy.xcos"));
 xcos_simulate(scs_m, 4);
-f=gcf();
-a=f.children(1);
-p1=a.children(1);
-assert_checkequal(f.figure_id, 20005);
-assert_checkequal(a.data_bounds, [-10 -10 ; 10 10]);
-assert_checkequal(a.x_label.text, "x");
-assert_checkequal(a.y_label.text, "y");
-// all polylines has the same configuration, we just need to check the first one.
-assert_checkequal(p1.polyline_style, 1);
-assert_checkequal(p1.line_mode, "off");
-assert_checkequal(p1.mark_mode, "on");
-assert_checkequal(p1.mark_style, 4);
-assert_checkequal(p1.mark_size, 1);
+function assert_checkcanimxy()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
+    a=f.children(1);
+    assert_checkequal(size(a.children), [2 1])
+    p1=a.children(1);
+    assert_checkequal(f.figure_id, 20005);
+    assert_checkequal(a.data_bounds, [-10 -10 ; 10 10]);
+    assert_checkequal(a.x_label.text, "x");
+    assert_checkequal(a.y_label.text, "y");
+    // all polylines has the same configuration, we just need to check the first one.
+    assert_checkequal(p1.polyline_style, 1);
+    assert_checkequal(p1.line_mode, "off");
+    assert_checkequal(p1.mark_mode, "on");
+    assert_checkequal(p1.mark_style, 4);
+    assert_checkequal(p1.mark_size, 1);
+endfunction
+assert_checkcanimxy()
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcanimxy();
index 7a84eb8..f8ed8fa 100644 (file)
@@ -15,21 +15,32 @@ loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/canimxy.xcos"));
 xcos_simulate(scs_m, 4);
 
-f=gcf();
-a=f.children(1);
-p1=a.children(1);
+function assert_checkcanimxy()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
 
-assert_checkequal(f.figure_id, 20005);
-assert_checkequal(a.data_bounds, [-10 -10 ; 10 10]);
+    a=f.children(1);
+    assert_checkequal(size(a.children), [2 1])
 
-assert_checkequal(a.x_label.text, "x");
-assert_checkequal(a.y_label.text, "y");
+    p1=a.children(1);
 
-// all polylines has the same configuration, we just need to check the first one.
-assert_checkequal(p1.polyline_style, 1);
-assert_checkequal(p1.line_mode, "off");
+    assert_checkequal(f.figure_id, 20005);
+    assert_checkequal(a.data_bounds, [-10 -10 ; 10 10]);
 
-assert_checkequal(p1.mark_mode, "on");
-assert_checkequal(p1.mark_style, 4);
-assert_checkequal(p1.mark_size, 1);
+    assert_checkequal(a.x_label.text, "x");
+    assert_checkequal(a.y_label.text, "y");
+
+    // all polylines has the same configuration, we just need to check the first one.
+    assert_checkequal(p1.polyline_style, 1);
+    assert_checkequal(p1.line_mode, "off");
+
+    assert_checkequal(p1.mark_mode, "on");
+    assert_checkequal(p1.mark_style, 4);
+    assert_checkequal(p1.mark_size, 1);
+endfunction
+assert_checkcanimxy()
+
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcanimxy();
 
index 5adede8..bfbd368 100644 (file)
 loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/canimxy3d.xcos"));
 xcos_simulate(scs_m, 4);
-f=gcf();
-a=f.children(1);
-p1=a.children(1);
-assert_checkequal(f.figure_id, 20002);
-assert_checkequal(a.data_bounds, [-10 -10 -10 ; 10 10 10]);
-assert_checkequal(a.x_label.text, "x");
-assert_checkequal(a.y_label.text, "y");
-assert_checkequal(a.z_label.text, "z");
-// all polylines has the same configuration, we just need to check the first one.
-assert_checkequal(p1.polyline_style, 1);
-assert_checkequal(p1.line_mode, "off");
-assert_checkequal(p1.mark_mode, "on");
-assert_checkequal(p1.mark_style, 3);
-assert_checkequal(p1.mark_size, 5);
+function assert_checkcanimxy3d()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
+    a=f.children(1);
+    assert_checkequal(size(a.children), [3 1])
+    p1=a.children(1);
+    assert_checkequal(f.figure_id, 20002);
+    assert_checkequal(a.data_bounds, [-10 -10 -10 ; 10 10 10]);
+    assert_checkequal(a.x_label.text, "x");
+    assert_checkequal(a.y_label.text, "y");
+    assert_checkequal(a.z_label.text, "z");
+    // all polylines has the same configuration, we just need to check the first one.
+    assert_checkequal(p1.polyline_style, 1);
+    assert_checkequal(p1.line_mode, "off");
+    assert_checkequal(p1.mark_mode, "on");
+    assert_checkequal(p1.mark_style, 3);
+    assert_checkequal(p1.mark_size, 5);
+endfunction
+assert_checkcanimxy3d()
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcanimxy3d()
index d50faa9..b4f26d3 100644 (file)
@@ -15,22 +15,33 @@ loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/canimxy3d.xcos"));
 xcos_simulate(scs_m, 4);
 
-f=gcf();
-a=f.children(1);
-p1=a.children(1);
+function assert_checkcanimxy3d()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
 
-assert_checkequal(f.figure_id, 20002);
-assert_checkequal(a.data_bounds, [-10 -10 -10 ; 10 10 10]);
+    a=f.children(1);
+    assert_checkequal(size(a.children), [3 1])
 
-assert_checkequal(a.x_label.text, "x");
-assert_checkequal(a.y_label.text, "y");
-assert_checkequal(a.z_label.text, "z");
+    p1=a.children(1);
 
-// all polylines has the same configuration, we just need to check the first one.
-assert_checkequal(p1.polyline_style, 1);
-assert_checkequal(p1.line_mode, "off");
+    assert_checkequal(f.figure_id, 20002);
+    assert_checkequal(a.data_bounds, [-10 -10 -10 ; 10 10 10]);
 
-assert_checkequal(p1.mark_mode, "on");
-assert_checkequal(p1.mark_style, 3);
-assert_checkequal(p1.mark_size, 5);
+    assert_checkequal(a.x_label.text, "x");
+    assert_checkequal(a.y_label.text, "y");
+    assert_checkequal(a.z_label.text, "z");
+
+    // all polylines has the same configuration, we just need to check the first one.
+    assert_checkequal(p1.polyline_style, 1);
+    assert_checkequal(p1.line_mode, "off");
+
+    assert_checkequal(p1.mark_mode, "on");
+    assert_checkequal(p1.mark_style, 3);
+    assert_checkequal(p1.mark_size, 5);
+endfunction
+assert_checkcanimxy3d()
+
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcanimxy3d()
 
index f5337d6..adba4c8 100644 (file)
 loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cevscpe.xcos"));
 xcos_simulate(scs_m, 4);
-f=gcf();
-a=gca();
-s1=a.children(1);
-s2=a.children(2);
-s3=a.children(3);
-assert_checkequal(f.figure_id, 20007);
-assert_checkequal(a.data_bounds, [30 0 ; 60 1]);
-assert_checkequal(a.x_label.text, "t");
-assert_checkequal(a.y_label.text, "y");
-// commented out as we have junk data at the end
-//
-// assert_checkequal(size(s1.data), [26 2]);
-// assert_checkequal(size(s2.data), [26 2]);
-// assert_checkequal(size(s3.data), [26 2]);
-assert_checkequal(s1.visible, "on");
-assert_checkequal(s2.visible, "on");
-assert_checkequal(s3.visible, "on");
-assert_checkequal(s1.line_mode, "on");
-assert_checkequal(s2.line_mode, "on");
-assert_checkequal(s3.line_mode, "on");
-assert_checkequal(s1.line_style, 1);
-assert_checkequal(s2.line_style, 1);
-assert_checkequal(s3.line_style, 1);
-assert_checkequal(s1.thickness, 1);
-assert_checkequal(s2.thickness, 1);
-assert_checkequal(s3.thickness, 1);
-assert_checkequal(s1.arrow_size, 0);
-assert_checkequal(s2.arrow_size, 0);
-assert_checkequal(s3.arrow_size, 0);
-assert_checkequal(s1.segs_color(1), 5);
-assert_checkequal(s2.segs_color(1), 3);
-assert_checkequal(s3.segs_color(1), 1);
+function assert_checkcevscpe()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
+    a=gca();
+    assert_checkequal(size(a.children), [3 1])
+    s1=a.children(1);
+    s2=a.children(2);
+    s3=a.children(3);
+    assert_checkequal(f.figure_id, 20007);
+    assert_checkequal(a.data_bounds, [30 0 ; 60 1]);
+    assert_checkequal(a.x_label.text, "t");
+    assert_checkequal(a.y_label.text, "y");
+    // commented out as we have junk data at the end
+    //
+    // assert_checkequal(size(s1.data), [26 2]);
+    // assert_checkequal(size(s2.data), [26 2]);
+    // assert_checkequal(size(s3.data), [26 2]);
+    assert_checkequal(s1.visible, "on");
+    assert_checkequal(s2.visible, "on");
+    assert_checkequal(s3.visible, "on");
+    assert_checkequal(s1.line_mode, "on");
+    assert_checkequal(s2.line_mode, "on");
+    assert_checkequal(s3.line_mode, "on");
+    assert_checkequal(s1.line_style, 1);
+    assert_checkequal(s2.line_style, 1);
+    assert_checkequal(s3.line_style, 1);
+    assert_checkequal(s1.thickness, 1);
+    assert_checkequal(s2.thickness, 1);
+    assert_checkequal(s3.thickness, 1);
+    assert_checkequal(s1.arrow_size, 0);
+    assert_checkequal(s2.arrow_size, 0);
+    assert_checkequal(s3.arrow_size, 0);
+    assert_checkequal(s1.segs_color(1), 5);
+    assert_checkequal(s2.segs_color(1), 3);
+    assert_checkequal(s3.segs_color(1), 1);
+endfunction
+assert_checkcevscpe()
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcevscpe()
index ccd3fb6..251e51b 100644 (file)
@@ -15,44 +15,55 @@ loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cevscpe.xcos"));
 xcos_simulate(scs_m, 4);
 
-f=gcf();
-a=gca();
-s1=a.children(1);
-s2=a.children(2);
-s3=a.children(3);
-
-assert_checkequal(f.figure_id, 20007);
-assert_checkequal(a.data_bounds, [30 0 ; 60 1]);
-assert_checkequal(a.x_label.text, "t");
-assert_checkequal(a.y_label.text, "y");
-
-// commented out as we have junk data at the end
-//
-// assert_checkequal(size(s1.data), [26 2]);
-// assert_checkequal(size(s2.data), [26 2]);
-// assert_checkequal(size(s3.data), [26 2]);
+function assert_checkcevscpe()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
+
+    a=gca();
+    assert_checkequal(size(a.children), [3 1])
+
+    s1=a.children(1);
+    s2=a.children(2);
+    s3=a.children(3);
+
+    assert_checkequal(f.figure_id, 20007);
+    assert_checkequal(a.data_bounds, [30 0 ; 60 1]);
+    assert_checkequal(a.x_label.text, "t");
+    assert_checkequal(a.y_label.text, "y");
 
-assert_checkequal(s1.visible, "on");
-assert_checkequal(s2.visible, "on");
-assert_checkequal(s3.visible, "on");
+    // commented out as we have junk data at the end
+    //
+    // assert_checkequal(size(s1.data), [26 2]);
+    // assert_checkequal(size(s2.data), [26 2]);
+    // assert_checkequal(size(s3.data), [26 2]);
 
-assert_checkequal(s1.line_mode, "on");
-assert_checkequal(s2.line_mode, "on");
-assert_checkequal(s3.line_mode, "on");
+    assert_checkequal(s1.visible, "on");
+    assert_checkequal(s2.visible, "on");
+    assert_checkequal(s3.visible, "on");
 
-assert_checkequal(s1.line_style, 1);
-assert_checkequal(s2.line_style, 1);
-assert_checkequal(s3.line_style, 1);
+    assert_checkequal(s1.line_mode, "on");
+    assert_checkequal(s2.line_mode, "on");
+    assert_checkequal(s3.line_mode, "on");
 
-assert_checkequal(s1.thickness, 1);
-assert_checkequal(s2.thickness, 1);
-assert_checkequal(s3.thickness, 1);
+    assert_checkequal(s1.line_style, 1);
+    assert_checkequal(s2.line_style, 1);
+    assert_checkequal(s3.line_style, 1);
 
-assert_checkequal(s1.arrow_size, 0);
-assert_checkequal(s2.arrow_size, 0);
-assert_checkequal(s3.arrow_size, 0);
+    assert_checkequal(s1.thickness, 1);
+    assert_checkequal(s2.thickness, 1);
+    assert_checkequal(s3.thickness, 1);
 
-assert_checkequal(s1.segs_color(1), 5);
-assert_checkequal(s2.segs_color(1), 3);
-assert_checkequal(s3.segs_color(1), 1);
+    assert_checkequal(s1.arrow_size, 0);
+    assert_checkequal(s2.arrow_size, 0);
+    assert_checkequal(s3.arrow_size, 0);
+
+    assert_checkequal(s1.segs_color(1), 5);
+    assert_checkequal(s2.segs_color(1), 3);
+    assert_checkequal(s3.segs_color(1), 1);
+endfunction
+assert_checkcevscpe()
+
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcevscpe()
 
index 2ff716c..b253397 100644 (file)
 loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cfscope.xcos"));
 xcos_simulate(scs_m, 4);
-f=gcf();
-a=gca();
-p1=a.children(1);
-p2=a.children(2);
-assert_checkequal(f.figure_id, 20006);
-assert_checkequal(a.data_bounds, [60 -15 ; 90 15]);
-assert_checkequal(a.x_label.text, "t");
-assert_checkequal(a.y_label.text, "y");
-assert_checkequal(size(p1.data), [302 2]);
-assert_checkequal(size(p2.data), [302 2]);
-assert_checkequal(p1.polyline_style, 1);
-assert_checkequal(p2.polyline_style, 1);
-assert_checkequal(p1.line_mode, "on");
-assert_checkequal(p2.line_mode, "on");
-assert_checkequal(p1.mark_mode, "off");
-assert_checkequal(p2.mark_mode, "off");
+function assert_checkcfscope()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
+    a=gca();
+    assert_checkequal(size(a.children), [2 1])
+    p1=a.children(1);
+    p2=a.children(2);
+    assert_checkequal(f.figure_id, 20006);
+    assert_checkequal(a.data_bounds, [60 -15 ; 90 15]);
+    assert_checkequal(a.x_label.text, "t");
+    assert_checkequal(a.y_label.text, "y");
+    assert_checkequal(size(p1.data), [302 2]);
+    assert_checkequal(size(p2.data), [302 2]);
+    assert_checkequal(p1.polyline_style, 1);
+    assert_checkequal(p2.polyline_style, 1);
+    assert_checkequal(p1.line_mode, "on");
+    assert_checkequal(p2.line_mode, "on");
+    assert_checkequal(p1.mark_mode, "off");
+    assert_checkequal(p2.mark_mode, "off");
+endfunction
+assert_checkcfscope()
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcfscope();
index 1a9bc5f..7a6efd5 100644 (file)
@@ -15,26 +15,36 @@ loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cfscope.xcos"));
 xcos_simulate(scs_m, 4);
 
-f=gcf();
-a=gca();
-p1=a.children(1);
-p2=a.children(2);
+function assert_checkcfscope()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
 
-assert_checkequal(f.figure_id, 20006);
-assert_checkequal(a.data_bounds, [60 -15 ; 90 15]);
-assert_checkequal(a.x_label.text, "t");
-assert_checkequal(a.y_label.text, "y");
+    a=gca();
+    assert_checkequal(size(a.children), [2 1])
 
-assert_checkequal(size(p1.data), [302 2]);
-assert_checkequal(size(p2.data), [302 2]);
+    p1=a.children(1);
+    p2=a.children(2);
 
-assert_checkequal(p1.polyline_style, 1);
-assert_checkequal(p2.polyline_style, 1);
+    assert_checkequal(f.figure_id, 20006);
+    assert_checkequal(a.data_bounds, [60 -15 ; 90 15]);
+    assert_checkequal(a.x_label.text, "t");
+    assert_checkequal(a.y_label.text, "y");
 
-assert_checkequal(p1.line_mode, "on");
-assert_checkequal(p2.line_mode, "on");
+    assert_checkequal(size(p1.data), [302 2]);
+    assert_checkequal(size(p2.data), [302 2]);
 
-assert_checkequal(p1.mark_mode, "off");
-assert_checkequal(p2.mark_mode, "off");
+    assert_checkequal(p1.polyline_style, 1);
+    assert_checkequal(p2.polyline_style, 1);
 
+    assert_checkequal(p1.line_mode, "on");
+    assert_checkequal(p2.line_mode, "on");
+
+    assert_checkequal(p1.mark_mode, "off");
+    assert_checkequal(p2.mark_mode, "off");
+endfunction
+assert_checkcfscope()
+
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcfscope();
 
index 4416914..1d30ea4 100644 (file)
 loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cmatview.xcos"));
 xcos_simulate(scs_m, 4);
-f=gcf();
-a=f.children(1);
-g=a.children(1);
-assert_checkequal(a.data_bounds, [0 0 ; 100 100]);
-assert_checkequal(a.x_label.text, "x");
-assert_checkequal(a.y_label.text, "y");
-assert_checkequal(g.children, []);
-assert_checkequal(g.visible, "on");
-assert_checkequal(size(g.data.x), [100 1]);
-assert_checkequal(size(g.data.y), [100 1]);
-assert_checkequal(size(g.data.z), [100 100]);
-assert_checkequal(g.clip_state, "off");
-assert_checkequal(g.clip_box, []);
+function assert_cmatview()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
+    a=f.children(1);
+    assert_checkequal(size(a.children), [1 1])
+    g=a.children(1);
+    assert_checkequal(a.data_bounds, [0 0 ; 100 100]);
+    assert_checkequal(a.x_label.text, "x");
+    assert_checkequal(a.y_label.text, "y");
+    assert_checkequal(g.children, []);
+    assert_checkequal(g.visible, "on");
+    assert_checkequal(size(g.data.x), [100 1]);
+    assert_checkequal(size(g.data.y), [100 1]);
+    assert_checkequal(size(g.data.z), [100 100]);
+    assert_checkequal(g.clip_state, "off");
+    assert_checkequal(g.clip_box, []);
+endfunction
+assert_cmatview()
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_cmatview()
index 92323ab..22eb848 100644 (file)
@@ -15,22 +15,33 @@ loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cmatview.xcos"));
 xcos_simulate(scs_m, 4);
 
-f=gcf();
-a=f.children(1);
-g=a.children(1);
+function assert_cmatview()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
 
-assert_checkequal(a.data_bounds, [0 0 ; 100 100]);
+    a=f.children(1);
+    assert_checkequal(size(a.children), [1 1])
 
-assert_checkequal(a.x_label.text, "x");
-assert_checkequal(a.y_label.text, "y");
+    g=a.children(1);
 
-assert_checkequal(g.children, []);
-assert_checkequal(g.visible, "on");
+    assert_checkequal(a.data_bounds, [0 0 ; 100 100]);
 
-assert_checkequal(size(g.data.x), [100 1]);
-assert_checkequal(size(g.data.y), [100 1]);
-assert_checkequal(size(g.data.z), [100 100]);
+    assert_checkequal(a.x_label.text, "x");
+    assert_checkequal(a.y_label.text, "y");
 
-assert_checkequal(g.clip_state, "off");
-assert_checkequal(g.clip_box, []);
+    assert_checkequal(g.children, []);
+    assert_checkequal(g.visible, "on");
+
+    assert_checkequal(size(g.data.x), [100 1]);
+    assert_checkequal(size(g.data.y), [100 1]);
+    assert_checkequal(size(g.data.z), [100 100]);
+
+    assert_checkequal(g.clip_state, "off");
+    assert_checkequal(g.clip_box, []);
+endfunction
+assert_cmatview()
+
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_cmatview()
 
index 96cc38f..9cc9a1f 100644 (file)
 loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cmatview3d.xcos"));
 xcos_simulate(scs_m, 4);
-f=gcf();
-a=f.children(1);
-g=a.children(1);
-assert_checkequal(a.data_bounds, [0 0 -100; 81 81 100]);
-assert_checkequal(a.x_label.text, "x");
-assert_checkequal(a.y_label.text, "y");
-assert_checkequal(a.z_label.text, "z");
-assert_checkequal(g.children, []);
-assert_checkequal(g.visible, "on");
-assert_checkequal(g.surface_mode, "on");
-assert_checkequal(g.foreground, -1);
-assert_checkequal(g.thickness, 1);
-assert_checkequal(g.mark_mode, "off");
-assert_checkequal(g.mark_style, 0);
-// is "point" as default, should not be noticeable
-// assert_checkequal(g.mark_size_unit, "tabulated");
-assert_checkequal(g.mark_size, 0);
-// should be 0 according to the documentation (-1 is invalid)
-assert_checkequal(g.mark_foreground, 0);
-// should be 0 according to the documentation (-2 is invalid)
-assert_checkequal(g.mark_background, 0);
-assert_checkequal(size(g.data.x), [1 81]);
-assert_checkequal(size(g.data.y), [1 81]);
-assert_checkequal(size(g.data.z), [81 81]);
-assert_checkequal(g.color_mode, 2);
-assert_checkequal(g.color_flag, 1);
-assert_checkequal(g.hiddencolor, 4);
-assert_checkequal(g.clip_state, "off");
-assert_checkequal(g.clip_box, []);
+function assert_checkcmatview3d()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
+    a=f.children(1);
+    assert_checkequal(size(a.children), [1 1])
+    g=a.children(1);
+    assert_checkequal(a.data_bounds, [0 0 -100; 81 81 100]);
+    assert_checkequal(a.x_label.text, "x");
+    assert_checkequal(a.y_label.text, "y");
+    assert_checkequal(a.z_label.text, "z");
+    assert_checkequal(g.children, []);
+    assert_checkequal(g.visible, "on");
+    assert_checkequal(g.surface_mode, "on");
+    assert_checkequal(g.foreground, -1);
+    assert_checkequal(g.thickness, 1);
+    assert_checkequal(g.mark_mode, "off");
+    assert_checkequal(g.mark_style, 0);
+    // is "point" as default, should not be noticeable
+    // assert_checkequal(g.mark_size_unit, "tabulated");
+    assert_checkequal(g.mark_size, 0);
+    // should be 0 according to the documentation (-1 is invalid)
+    assert_checkequal(g.mark_foreground, 0);
+    // should be 0 according to the documentation (-2 is invalid)
+    assert_checkequal(g.mark_background, 0);
+    assert_checkequal(size(g.data.x), [1 81]);
+    assert_checkequal(size(g.data.y), [1 81]);
+    assert_checkequal(size(g.data.z), [81 81]);
+    assert_checkequal(g.color_mode, 2);
+    assert_checkequal(g.color_flag, 1);
+    assert_checkequal(g.hiddencolor, 4);
+    assert_checkequal(g.clip_state, "off");
+    assert_checkequal(g.clip_box, []);
+endfunction
+assert_checkcmatview3d()
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcmatview3d()
index 4653003..40dff28 100644 (file)
@@ -15,38 +15,49 @@ loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cmatview3d.xcos"));
 xcos_simulate(scs_m, 4);
 
-f=gcf();
-a=f.children(1);
-g=a.children(1);
-
-assert_checkequal(a.data_bounds, [0 0 -100; 81 81 100]);
-
-assert_checkequal(a.x_label.text, "x");
-assert_checkequal(a.y_label.text, "y");
-assert_checkequal(a.z_label.text, "z");
-
-assert_checkequal(g.children, []);
-assert_checkequal(g.visible, "on");
-assert_checkequal(g.surface_mode, "on");
-assert_checkequal(g.foreground, -1);
-assert_checkequal(g.thickness, 1);
-assert_checkequal(g.mark_mode, "off");
-assert_checkequal(g.mark_style, 0);
-// is "point" as default, should not be noticeable
-// assert_checkequal(g.mark_size_unit, "tabulated");
-assert_checkequal(g.mark_size, 0);
-// should be 0 according to the documentation (-1 is invalid)
-assert_checkequal(g.mark_foreground, 0);
-// should be 0 according to the documentation (-2 is invalid)
-assert_checkequal(g.mark_background, 0);
-
-assert_checkequal(size(g.data.x), [1 81]);
-assert_checkequal(size(g.data.y), [1 81]);
-assert_checkequal(size(g.data.z), [81 81]);
-
-assert_checkequal(g.color_mode, 2);
-assert_checkequal(g.color_flag, 1);
-assert_checkequal(g.hiddencolor, 4);
-assert_checkequal(g.clip_state, "off");
-assert_checkequal(g.clip_box, []);
+function assert_checkcmatview3d()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
+
+    a=f.children(1);
+    assert_checkequal(size(a.children), [1 1])
+
+    g=a.children(1);
+
+    assert_checkequal(a.data_bounds, [0 0 -100; 81 81 100]);
+
+    assert_checkequal(a.x_label.text, "x");
+    assert_checkequal(a.y_label.text, "y");
+    assert_checkequal(a.z_label.text, "z");
+
+    assert_checkequal(g.children, []);
+    assert_checkequal(g.visible, "on");
+    assert_checkequal(g.surface_mode, "on");
+    assert_checkequal(g.foreground, -1);
+    assert_checkequal(g.thickness, 1);
+    assert_checkequal(g.mark_mode, "off");
+    assert_checkequal(g.mark_style, 0);
+    // is "point" as default, should not be noticeable
+    // assert_checkequal(g.mark_size_unit, "tabulated");
+    assert_checkequal(g.mark_size, 0);
+    // should be 0 according to the documentation (-1 is invalid)
+    assert_checkequal(g.mark_foreground, 0);
+    // should be 0 according to the documentation (-2 is invalid)
+    assert_checkequal(g.mark_background, 0);
+
+    assert_checkequal(size(g.data.x), [1 81]);
+    assert_checkequal(size(g.data.y), [1 81]);
+    assert_checkequal(size(g.data.z), [81 81]);
+
+    assert_checkequal(g.color_mode, 2);
+    assert_checkequal(g.color_flag, 1);
+    assert_checkequal(g.hiddencolor, 4);
+    assert_checkequal(g.clip_state, "off");
+    assert_checkequal(g.clip_box, []);
+endfunction
+assert_checkcmatview3d()
+
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcmatview3d()
 
index 31ac533..d01e27f 100644 (file)
 loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cmscope.xcos"));
 xcos_simulate(scs_m, 4);
-f=gcf();
-a1=f.children(1);
-a2=f.children(2);
-a3=f.children(3);
-p11=a1.children(1);
-p12=a1.children(2);
-p21=a2.children(1);
-p31=a3.children(1);
-assert_checkequal(f.figure_id, 20003);
-assert_checkequal(a1.data_bounds, [0 -30 ; 90 30]);
-assert_checkequal(a2.data_bounds, [0 -5 ; 60 5]);
-assert_checkequal(a3.data_bounds, [0 -1 ; 30 1]);
-assert_checkequal(a1.x_label.text, "t");
-assert_checkequal(a2.x_label.text, "t");
-assert_checkequal(a3.x_label.text, "t");
-assert_checkequal(a1.y_label.text, "y");
-assert_checkequal(a2.y_label.text, "y");
-assert_checkequal(a3.y_label.text, "y");
-// check removed due to junk data at the end
-// assert_checkequal(size(p11.data), [299 2]);
-// assert_checkequal(size(p12.data), [299 2]);
-// assert_checkequal(size(p21.data), [299 2]);
-// assert_checkequal(size(p31.data), [299 2]);
+function assert_checkcmscope()
+    f=gcf();
+    assert_checkequal(size(f.children), [3 1])
+    a1=f.children(1);
+    a2=f.children(2);
+    a3=f.children(3);
+    assert_checkequal(size(a1.children), [2 1])
+    assert_checkequal(size(a2.children), [1 1])
+    assert_checkequal(size(a3.children), [1 1])
+    p11=a1.children(1);
+    p12=a1.children(2);
+    p21=a2.children(1);
+    p31=a3.children(1);
+    assert_checkequal(f.figure_id, 20003);
+    assert_checkequal(a1.data_bounds, [0 -30 ; 90 30]);
+    assert_checkequal(a2.data_bounds, [0 -5 ; 60 5]);
+    assert_checkequal(a3.data_bounds, [0 -1 ; 30 1]);
+    assert_checkequal(a1.x_label.text, "t");
+    assert_checkequal(a2.x_label.text, "t");
+    assert_checkequal(a3.x_label.text, "t");
+    assert_checkequal(a1.y_label.text, "y");
+    assert_checkequal(a2.y_label.text, "y");
+    assert_checkequal(a3.y_label.text, "y");
+    // check removed due to junk data at the end
+    // assert_checkequal(size(p11.data), [299 2]);
+    // assert_checkequal(size(p12.data), [299 2]);
+    // assert_checkequal(size(p21.data), [299 2]);
+    // assert_checkequal(size(p31.data), [299 2]);
+endfunction
+assert_checkcmscope();
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcmscope();
index 980a127..2108d8c 100644 (file)
@@ -15,32 +15,44 @@ loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cmscope.xcos"));
 xcos_simulate(scs_m, 4);
 
-f=gcf();
-a1=f.children(1);
-a2=f.children(2);
-a3=f.children(3);
-
-p11=a1.children(1);
-p12=a1.children(2);
-p21=a2.children(1);
-p31=a3.children(1);
-
-assert_checkequal(f.figure_id, 20003);
-
-assert_checkequal(a1.data_bounds, [0 -30 ; 90 30]);
-assert_checkequal(a2.data_bounds, [0 -5 ; 60 5]);
-assert_checkequal(a3.data_bounds, [0 -1 ; 30 1]);
-
-assert_checkequal(a1.x_label.text, "t");
-assert_checkequal(a2.x_label.text, "t");
-assert_checkequal(a3.x_label.text, "t");
-assert_checkequal(a1.y_label.text, "y");
-assert_checkequal(a2.y_label.text, "y");
-assert_checkequal(a3.y_label.text, "y");
-
-// check removed due to junk data at the end
-// assert_checkequal(size(p11.data), [299 2]);
-// assert_checkequal(size(p12.data), [299 2]);
-// assert_checkequal(size(p21.data), [299 2]);
-// assert_checkequal(size(p31.data), [299 2]);
+function assert_checkcmscope()
+    f=gcf();
+    assert_checkequal(size(f.children), [3 1])
+    
+    a1=f.children(1);
+    a2=f.children(2);
+    a3=f.children(3);
+    assert_checkequal(size(a1.children), [2 1])
+    assert_checkequal(size(a2.children), [1 1])
+    assert_checkequal(size(a3.children), [1 1])
+    
+    p11=a1.children(1);
+    p12=a1.children(2);
+    p21=a2.children(1);
+    p31=a3.children(1);
+    
+    assert_checkequal(f.figure_id, 20003);
+    
+    assert_checkequal(a1.data_bounds, [0 -30 ; 90 30]);
+    assert_checkequal(a2.data_bounds, [0 -5 ; 60 5]);
+    assert_checkequal(a3.data_bounds, [0 -1 ; 30 1]);
+    
+    assert_checkequal(a1.x_label.text, "t");
+    assert_checkequal(a2.x_label.text, "t");
+    assert_checkequal(a3.x_label.text, "t");
+    assert_checkequal(a1.y_label.text, "y");
+    assert_checkequal(a2.y_label.text, "y");
+    assert_checkequal(a3.y_label.text, "y");
+    
+    // check removed due to junk data at the end
+    // assert_checkequal(size(p11.data), [299 2]);
+    // assert_checkequal(size(p12.data), [299 2]);
+    // assert_checkequal(size(p21.data), [299 2]);
+    // assert_checkequal(size(p31.data), [299 2]);
+endfunction
+assert_checkcmscope();
+
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcmscope();
 
index eed1232..84f533f 100644 (file)
 loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cscope.xcos"));
 xcos_simulate(scs_m, 4);
-f=gcf();
-a=gca();
-p1=a.children(1);
-p2=a.children(2);
-p3=a.children(3);
-p4=a.children(4);
-assert_checkequal(f.figure_id, 20006);
-assert_checkequal(a.data_bounds, [30 -2 ; 60 3]);
-assert_checkequal(a.x_label.text, "t");
-assert_checkequal(a.y_label.text, "y");
-// check removed due to junk data at the end
-// assert_checkequal(size(p1.data), [315 2]);
-// assert_checkequal(size(p2.data), [315 2]);
-// assert_checkequal(size(p3.data), [315 2]);
-// assert_checkequal(size(p4.data), [315 2]);
-assert_checkequal(p1.polyline_style, 1);
-assert_checkequal(p2.polyline_style, 1);
-assert_checkequal(p3.polyline_style, 1);
-assert_checkequal(p4.polyline_style, 1);
-assert_checkequal(p1.line_mode, "on");
-assert_checkequal(p2.line_mode, "on");
-assert_checkequal(p3.line_mode, "off");
-assert_checkequal(p4.line_mode, "on");
-assert_checkequal(p1.mark_mode, "off");
-assert_checkequal(p2.mark_mode, "off");
-assert_checkequal(p3.mark_mode, "on");
-assert_checkequal(p4.mark_mode, "off");
+function assert_checkcscope()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
+    a=gca();
+    assert_checkequal(size(a.children), [4 1])
+    p1=a.children(1);
+    p2=a.children(2);
+    p3=a.children(3);
+    p4=a.children(4);
+    assert_checkequal(f.figure_id, 20006);
+    assert_checkequal(a.data_bounds, [30 -2 ; 60 3]);
+    assert_checkequal(a.x_label.text, "t");
+    assert_checkequal(a.y_label.text, "y");
+    // check removed due to junk data at the end
+    // assert_checkequal(size(p1.data), [315 2]);
+    // assert_checkequal(size(p2.data), [315 2]);
+    // assert_checkequal(size(p3.data), [315 2]);
+    // assert_checkequal(size(p4.data), [315 2]);
+    assert_checkequal(p1.polyline_style, 1);
+    assert_checkequal(p2.polyline_style, 1);
+    assert_checkequal(p3.polyline_style, 1);
+    assert_checkequal(p4.polyline_style, 1);
+    assert_checkequal(p1.line_mode, "on");
+    assert_checkequal(p2.line_mode, "on");
+    assert_checkequal(p3.line_mode, "off");
+    assert_checkequal(p4.line_mode, "on");
+    assert_checkequal(p1.mark_mode, "off");
+    assert_checkequal(p2.mark_mode, "off");
+    assert_checkequal(p3.mark_mode, "on");
+    assert_checkequal(p4.mark_mode, "off");
+endfunction
+assert_checkcscope();
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcscope();
index 3379579..ba760b5 100644 (file)
@@ -15,36 +15,47 @@ loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cscope.xcos"));
 xcos_simulate(scs_m, 4);
 
-f=gcf();
-a=gca();
-p1=a.children(1);
-p2=a.children(2);
-p3=a.children(3);
-p4=a.children(4);
-
-assert_checkequal(f.figure_id, 20006);
-assert_checkequal(a.data_bounds, [30 -2 ; 60 3]);
-assert_checkequal(a.x_label.text, "t");
-assert_checkequal(a.y_label.text, "y");
-
-// check removed due to junk data at the end
-// assert_checkequal(size(p1.data), [315 2]);
-// assert_checkequal(size(p2.data), [315 2]);
-// assert_checkequal(size(p3.data), [315 2]);
-// assert_checkequal(size(p4.data), [315 2]);
-
-assert_checkequal(p1.polyline_style, 1);
-assert_checkequal(p2.polyline_style, 1);
-assert_checkequal(p3.polyline_style, 1);
-assert_checkequal(p4.polyline_style, 1);
-
-assert_checkequal(p1.line_mode, "on");
-assert_checkequal(p2.line_mode, "on");
-assert_checkequal(p3.line_mode, "off");
-assert_checkequal(p4.line_mode, "on");
-
-assert_checkequal(p1.mark_mode, "off");
-assert_checkequal(p2.mark_mode, "off");
-assert_checkequal(p3.mark_mode, "on");
-assert_checkequal(p4.mark_mode, "off");
+function assert_checkcscope()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
+
+    a=gca();
+    assert_checkequal(size(a.children), [4 1])
+
+    p1=a.children(1);
+    p2=a.children(2);
+    p3=a.children(3);
+    p4=a.children(4);
+
+    assert_checkequal(f.figure_id, 20006);
+    assert_checkequal(a.data_bounds, [30 -2 ; 60 3]);
+    assert_checkequal(a.x_label.text, "t");
+    assert_checkequal(a.y_label.text, "y");
+
+    // check removed due to junk data at the end
+    // assert_checkequal(size(p1.data), [315 2]);
+    // assert_checkequal(size(p2.data), [315 2]);
+    // assert_checkequal(size(p3.data), [315 2]);
+    // assert_checkequal(size(p4.data), [315 2]);
+
+    assert_checkequal(p1.polyline_style, 1);
+    assert_checkequal(p2.polyline_style, 1);
+    assert_checkequal(p3.polyline_style, 1);
+    assert_checkequal(p4.polyline_style, 1);
+
+    assert_checkequal(p1.line_mode, "on");
+    assert_checkequal(p2.line_mode, "on");
+    assert_checkequal(p3.line_mode, "off");
+    assert_checkequal(p4.line_mode, "on");
+
+    assert_checkequal(p1.mark_mode, "off");
+    assert_checkequal(p2.mark_mode, "off");
+    assert_checkequal(p3.mark_mode, "on");
+    assert_checkequal(p4.mark_mode, "off");
+endfunction
+assert_checkcscope();
+
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcscope();
 
index 5163e4e..0c6e176 100644 (file)
 loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cscopxy.xcos"));
 xcos_simulate(scs_m, 4);
-f=gcf();
-a=f.children(1);
-p1=a.children(1);
-assert_checkequal(f.figure_id, 20007);
-assert_checkequal(a.data_bounds, [-20 -30 ; 20 30]);
-assert_checkequal(a.x_label.text, "x");
-assert_checkequal(a.y_label.text, "y");
-// all polylines has the same configuration, we just need to check the first one.
-assert_checkequal(p1.polyline_style, 1);
-assert_checkequal(p1.line_mode, "off");
-assert_checkequal(p1.mark_mode, "on");
-assert_checkequal(p1.mark_style, 3);
-assert_checkequal(p1.mark_size, 1);
+function assert_checkcscopxy()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
+    a=f.children(1);
+    assert_checkequal(size(a.children), [4 1])
+    p1=a.children(1);
+    assert_checkequal(f.figure_id, 20007);
+    assert_checkequal(a.data_bounds, [-20 -30 ; 20 30]);
+    assert_checkequal(a.x_label.text, "x");
+    assert_checkequal(a.y_label.text, "y");
+    // all polylines has the same configuration, we just need to check the first one.
+    assert_checkequal(p1.polyline_style, 1);
+    assert_checkequal(p1.line_mode, "off");
+    assert_checkequal(p1.mark_mode, "on");
+    assert_checkequal(p1.mark_style, 3);
+    assert_checkequal(p1.mark_size, 1);
+endfunction
+assert_checkcscopxy()
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcscopxy();
index c394035..a0d0bf8 100644 (file)
@@ -15,20 +15,33 @@ loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cscopxy.xcos"));
 xcos_simulate(scs_m, 4);
 
-f=gcf();
-a=f.children(1);
-p1=a.children(1);
+function assert_checkcscopxy()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
 
-assert_checkequal(f.figure_id, 20007);
-assert_checkequal(a.data_bounds, [-20 -30 ; 20 30]);
+    a=f.children(1);
+    assert_checkequal(size(a.children), [4 1])
 
-assert_checkequal(a.x_label.text, "x");
-assert_checkequal(a.y_label.text, "y");
+    p1=a.children(1);
+
+    assert_checkequal(f.figure_id, 20007);
+    assert_checkequal(a.data_bounds, [-20 -30 ; 20 30]);
+
+    assert_checkequal(a.x_label.text, "x");
+    assert_checkequal(a.y_label.text, "y");
+
+    // all polylines has the same configuration, we just need to check the first one.
+    assert_checkequal(p1.polyline_style, 1);
+    assert_checkequal(p1.line_mode, "off");
+
+    assert_checkequal(p1.mark_mode, "on");
+    assert_checkequal(p1.mark_style, 3);
+    assert_checkequal(p1.mark_size, 1);
+endfunction
+assert_checkcscopxy()
+
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcscopxy();
 
-// all polylines has the same configuration, we just need to check the first one.
-assert_checkequal(p1.polyline_style, 1);
-assert_checkequal(p1.line_mode, "off");
 
-assert_checkequal(p1.mark_mode, "on");
-assert_checkequal(p1.mark_style, 3);
-assert_checkequal(p1.mark_size, 1);
index a61a6d1..48ef1e6 100644 (file)
 loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cscopxy3d.xcos"));
 xcos_simulate(scs_m, 4);
-f=gcf();
-a=f.children(1);
-p1=a.children(1);
-assert_checkequal(f.figure_id, 20003);
-assert_checkequal(a.data_bounds, [-1 -0.5 0; 1 2.5 10]);
-assert_checkequal(a.x_label.text, "x");
-assert_checkequal(a.y_label.text, "y");
-assert_checkequal(a.z_label.text, "z");
-assert_checkequal(p1.closed, "off");
-assert_checkequal(p1.line_mode, "on");
-assert_checkequal(p1.fill_mode, "off");
-assert_checkequal(p1.line_style, 1);
-assert_checkequal(p1.thickness, 1);
-assert_checkequal(p1.arrow_size_factor, 1);
-assert_checkequal(p1.polyline_style, 1);
-assert_checkequal(p1.foreground, 2);
-// not documented eg invalid value
-// assert_checkequal(p1.background, -2);
-assert_checkequal(p1.interp_color_vector, []);
-assert_checkequal(p1.interp_color_mode, "off");
-assert_checkequal(p1.mark_mode, "off");
-assert_checkequal(p1.mark_style, 0);
-// "point" is the default on the new graphic
-// assert_checkequal(p1.mark_size_unit, "tabulated");
-// the defualt mark size is 0 
-// assert_checkequal(p1.mark_size, 1);
-// not documented eg invalid value
-// assert_checkequal(p1.mark_foreground, -1);
-// assert_checkequal(p1.mark_background, -2);
-assert_checkequal(p1.x_shift, []);
-assert_checkequal(p1.y_shift, []);
-assert_checkequal(p1.z_shift, []);
-assert_checkequal(p1.bar_width, 0);
-// disabled on the new graphic
-// assert_checkequal(p1.clip_state, "clipgrf");
-assert_checkequal(p1.clip_box, []);
+function assert_checkcscopxy3d()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
+    a=f.children(1);
+    assert_checkequal(size(a.children), [1 1])
+    p1=a.children(1);
+    assert_checkequal(f.figure_id, 20003);
+    assert_checkequal(a.data_bounds, [-1 -0.5 0; 1 2.5 10]);
+    assert_checkequal(a.x_label.text, "x");
+    assert_checkequal(a.y_label.text, "y");
+    assert_checkequal(a.z_label.text, "z");
+    assert_checkequal(p1.closed, "off");
+    assert_checkequal(p1.line_mode, "on");
+    assert_checkequal(p1.fill_mode, "off");
+    assert_checkequal(p1.line_style, 1);
+    assert_checkequal(p1.thickness, 1);
+    assert_checkequal(p1.arrow_size_factor, 1);
+    assert_checkequal(p1.polyline_style, 1);
+    assert_checkequal(p1.foreground, 2);
+    // not documented eg invalid value
+    // assert_checkequal(p1.background, -2);
+    assert_checkequal(p1.interp_color_vector, []);
+    assert_checkequal(p1.interp_color_mode, "off");
+    assert_checkequal(p1.mark_mode, "off");
+    assert_checkequal(p1.mark_style, 0);
+    // "point" is the default on the new graphic
+    // assert_checkequal(p1.mark_size_unit, "tabulated");
+    // the defualt mark size is 0 
+    // assert_checkequal(p1.mark_size, 1);
+    // not documented eg invalid value
+    // assert_checkequal(p1.mark_foreground, -1);
+    // assert_checkequal(p1.mark_background, -2);
+    assert_checkequal(p1.x_shift, []);
+    assert_checkequal(p1.y_shift, []);
+    assert_checkequal(p1.z_shift, []);
+    assert_checkequal(p1.bar_width, 0);
+    // disabled on the new graphic
+    // assert_checkequal(p1.clip_state, "clipgrf");
+    assert_checkequal(p1.clip_box, []);
+endfunction
+assert_checkcscopxy3d()
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcscopxy3d();
index df5c72d..35bb8a7 100644 (file)
@@ -15,44 +15,55 @@ loadXcosLibs();
 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/cscopxy3d.xcos"));
 xcos_simulate(scs_m, 4);
 
-f=gcf();
-a=f.children(1);
-p1=a.children(1);
-
-assert_checkequal(f.figure_id, 20003);
-assert_checkequal(a.data_bounds, [-1 -0.5 0; 1 2.5 10]);
-
-assert_checkequal(a.x_label.text, "x");
-assert_checkequal(a.y_label.text, "y");
-assert_checkequal(a.z_label.text, "z");
-
-
-assert_checkequal(p1.closed, "off");
-assert_checkequal(p1.line_mode, "on");
-assert_checkequal(p1.fill_mode, "off");
-assert_checkequal(p1.line_style, 1);
-assert_checkequal(p1.thickness, 1);
-assert_checkequal(p1.arrow_size_factor, 1);
-assert_checkequal(p1.polyline_style, 1);
-assert_checkequal(p1.foreground, 2);
-// not documented eg invalid value
-// assert_checkequal(p1.background, -2);
-assert_checkequal(p1.interp_color_vector, []);
-assert_checkequal(p1.interp_color_mode, "off");
-assert_checkequal(p1.mark_mode, "off");
-assert_checkequal(p1.mark_style, 0);
-// "point" is the default on the new graphic
-// assert_checkequal(p1.mark_size_unit, "tabulated");
-// the defualt mark size is 0 
-// assert_checkequal(p1.mark_size, 1);
-// not documented eg invalid value
-// assert_checkequal(p1.mark_foreground, -1);
-// assert_checkequal(p1.mark_background, -2);
-assert_checkequal(p1.x_shift, []);
-assert_checkequal(p1.y_shift, []);
-assert_checkequal(p1.z_shift, []);
-assert_checkequal(p1.bar_width, 0);
-// disabled on the new graphic
-// assert_checkequal(p1.clip_state, "clipgrf");
-assert_checkequal(p1.clip_box, []);
+function assert_checkcscopxy3d()
+    f=gcf();
+    assert_checkequal(size(f.children), [1 1])
+
+    a=f.children(1);
+    assert_checkequal(size(a.children), [1 1])
+
+    p1=a.children(1);
+
+    assert_checkequal(f.figure_id, 20003);
+    assert_checkequal(a.data_bounds, [-1 -0.5 0; 1 2.5 10]);
+
+    assert_checkequal(a.x_label.text, "x");
+    assert_checkequal(a.y_label.text, "y");
+    assert_checkequal(a.z_label.text, "z");
+
+
+    assert_checkequal(p1.closed, "off");
+    assert_checkequal(p1.line_mode, "on");
+    assert_checkequal(p1.fill_mode, "off");
+    assert_checkequal(p1.line_style, 1);
+    assert_checkequal(p1.thickness, 1);
+    assert_checkequal(p1.arrow_size_factor, 1);
+    assert_checkequal(p1.polyline_style, 1);
+    assert_checkequal(p1.foreground, 2);
+    // not documented eg invalid value
+    // assert_checkequal(p1.background, -2);
+    assert_checkequal(p1.interp_color_vector, []);
+    assert_checkequal(p1.interp_color_mode, "off");
+    assert_checkequal(p1.mark_mode, "off");
+    assert_checkequal(p1.mark_style, 0);
+    // "point" is the default on the new graphic
+    // assert_checkequal(p1.mark_size_unit, "tabulated");
+    // the defualt mark size is 0 
+    // assert_checkequal(p1.mark_size, 1);
+    // not documented eg invalid value
+    // assert_checkequal(p1.mark_foreground, -1);
+    // assert_checkequal(p1.mark_background, -2);
+    assert_checkequal(p1.x_shift, []);
+    assert_checkequal(p1.y_shift, []);
+    assert_checkequal(p1.z_shift, []);
+    assert_checkequal(p1.bar_width, 0);
+    // disabled on the new graphic
+    // assert_checkequal(p1.clip_state, "clipgrf");
+    assert_checkequal(p1.clip_box, []);
+endfunction
+assert_checkcscopxy3d()
+
+// Simulate again to check multi-simulations cases
+xcos_simulate(scs_m, 4);
+assert_checkcscopxy3d();