rewrite function assert in javascript
[liba.git] / quickjs / test / pid_fuzzy.js
blob56359e8bb436fd6c9eba038b47d26e48575e07d8
1 import * as a from "liba.so";
2 function assert(expr) {
3     if (!eval(expr)) {
4         throw Error(expr);
5     }
7 var NL = -3;
8 var NM = -2;
9 var NS = -1;
10 var ZO = 0;
11 var PS = +1;
12 var PM = +2;
13 var PL = +3;
14 var me = [
15     [a.mf.TRI, NL, NL, NM],
16     [a.mf.TRI, NL, NM, NS],
17     [a.mf.TRI, NM, NS, ZO],
18     [a.mf.TRI, NS, ZO, PS],
19     [a.mf.TRI, ZO, PS, PM],
20     [a.mf.TRI, PS, PM, PL],
21     [a.mf.TRI, PM, PL, PL],
23 var NL = -6;
24 var NM = -4;
25 var NS = -2;
26 var ZO = 0;
27 var PS = +2;
28 var PM = +4;
29 var PL = +6;
30 var mec = [
31     [a.mf.TRI, NL, NL, NM],
32     [a.mf.TRI, NL, NM, NS],
33     [a.mf.TRI, NM, NS, ZO],
34     [a.mf.TRI, NS, ZO, PS],
35     [a.mf.TRI, ZO, PS, PM],
36     [a.mf.TRI, PS, PM, PL],
37     [a.mf.TRI, PM, PL, PL],
39 var NL = -15;
40 var NM = -10;
41 var NS = -5;
42 var ZO = 0;
43 var PS = +5;
44 var PM = +10;
45 var PL = +15;
46 var mkp = [
47     [NL, NL, NM, NM, NS, ZO, ZO],
48     [NL, NL, NM, NS, NS, ZO, PS],
49     [NM, NM, NM, NS, ZO, PS, PS],
50     [NM, NM, NS, ZO, PS, PM, PM],
51     [NS, NS, ZO, PS, PS, PM, PM],
52     [NS, ZO, PS, PM, PM, PM, PL],
53     [ZO, ZO, PM, PM, PM, PL, PL],
55 var NL = -3;
56 var NM = -2;
57 var NS = -1;
58 var ZO = 0;
59 var PS = +1;
60 var PM = +2;
61 var PL = +3;
62 var mki = [
63     [PL, PL, PM, PM, PS, ZO, ZO],
64     [PL, PL, PM, PS, PS, ZO, ZO],
65     [PL, PM, PS, PS, ZO, NS, NS],
66     [PM, PM, PS, ZO, NS, NM, NM],
67     [PM, PS, ZO, NS, NS, NM, NL],
68     [ZO, ZO, NS, NS, NM, NL, NL],
69     [ZO, ZO, NS, NM, NM, NL, NL],
71 var mkd = [
72     [NS, PS, PL, PL, PL, PM, NS],
73     [NS, PS, PL, PM, PM, PS, ZO],
74     [ZO, PS, PM, PM, PS, PS, ZO],
75     [ZO, PS, PS, PS, PS, PS, ZO],
76     [ZO, ZO, ZO, ZO, ZO, ZO, ZO],
77     [NL, NS, NS, NS, NS, NS, NL],
78     [NL, NM, NM, NM, NS, NS, NL],
80 var ctx = new a.pid_fuzzy();
81 ctx.rule(me, mec, mkp, mki, mkd);
82 ctx.set_block(2);
83 ctx.kpid(10, 0.1, 1);
84 ctx.op(a.pid_fuzzy.EQU);
85 console.log(ctx.run(10, 0));
86 ctx.zero();
87 console.log(ctx.pos(10, 0));
88 ctx.zero();
89 console.log(ctx.inc(10, 0));
90 ctx.zero();
91 assert("ctx.kp != undefined");
92 assert("ctx.ki != undefined");
93 assert("ctx.kd != undefined");
94 assert("ctx.summax != undefined");
95 assert("ctx.summin != undefined");
96 assert("ctx.sum != undefined");
97 assert("ctx.outmax != undefined");
98 assert("ctx.outmin != undefined");
99 assert("ctx.out != undefined");
100 assert("ctx.fdb != undefined");
101 assert("ctx.err != undefined");
102 assert("ctx.order != undefined");
103 assert("ctx.block != undefined");
104 ctx.kp = 0;
105 ctx.ki = 0;
106 ctx.kd = 0;
107 ctx.summax = 0;
108 ctx.summin = 0;
109 ctx.outmax = 0;
110 ctx.outmin = 0;
111 ctx.block = 0;