ソースを参照

ncd: tests: add backtracking.ncd

ambrop7 13 年 前
コミット
07cd8a5d89
1 ファイル変更31 行追加0 行削除
  1. 31 0
      ncd/tests/backtracking.ncd

+ 31 - 0
ncd/tests/backtracking.ncd

@@ -0,0 +1,31 @@
+process main {
+    value({}) list;
+    var("0") i;
+    backtrack_point() point;
+    num_lesser(i, "100") do_more;
+    If (do_more) {
+        list->insert(i);
+        num_add(i, "1") new_i;
+        i->set(new_i);
+        point->go();
+    };
+    val_equal(list.length, "100") a;
+    assert(a);
+    
+    value({}) list;
+    var("0") i;
+    blocker() blk;
+    blk->up();
+    blk->use();
+    num_lesser(i, "100") do_more;
+    If (do_more) {
+        list->insert(i);
+        num_add(i, "1") new_i;
+        i->set(new_i);
+        blk->downup();
+    };
+    val_equal(list.length, "100") a;
+    assert(a);
+    
+    exit("0");
+}