1* test "sens ac"
2
3v1  1 0  dc=1.27 ac=42mA
4r1  1 2  68.0
5c2  2 0  1.5n
6l3  2 3  12u
7c4  3 0  1.8n
8r5  3 0  100.0
9
10.control
11
12* express our "golden" expectations:
13setplot new
14set gold = $curplot
15let s = (0,2) * pi * 1e6
16let v1_acmag = ( 0.1258214312760609, -0.5915026769337883 )
17let r1 = ( -38.77993150952251u, 196.2381768346785u )
18let c2 = ( -4912987.937722201,  -1131146.799006112 )
19let l3 = ( -1670.021661737812, -453.4103177577211 )
20let c4 = ( -7419488.478291172, -1226939.0306441 )
21let r5 = ( 1.952734115993878E-5, -1.180848266533405E-4 )
22
23* run a "sens" analysis
24sens v(3) ac lin 1 1e6 1.1e6
25
26strcmp __flag $curplot $gold
27if $__flag = 0
28  echo "ERROR: sens failed to execute"
29  quit 1
30end
31
32* compare results with "golden" expectation
33
34define mismatch(a,b,err) abs(a-b)>err*abs(b)
35
36let total_count = 0
37let fail_count = 0
38
39foreach n v1_acmag r1 c2 l3 c4 r5
40  set n_test = "$n"
41  set n_gold = "{$gold}.$n"
42  if mismatch($n_test, $n_gold, 1e-3)
43    let s_test = $n_test
44    let s_gold = $n_gold
45    echo "ERROR, test failure, s[$n] = $&s_test but should be $&s_gold"
46    let fail_count = fail_count + 1
47  end
48  let total_count = total_count + 1
49end
50
51if fail_count > 0
52  echo "ERROR: $&fail_count of $&total_count tests failed"
53  quit 1
54else
55  echo "INFO: $&fail_count of $&total_count tests failed"
56  quit 0
57end
58
59.endc
60
61.end
62