1* test "sens ac" 2 3i1 0 1 dc=1.27 ac=42mA 4r1 1 0 1k 5c1 1 0 100p 6 7.control 8 9* express our "golden" expectations: 10setplot new 11set gold = $curplot 12let s = (0,2) * pi * 1e6 13let i1_acmag = 1 / (s*100p + 1/1k) 14let r1 = 42mA / (1 + s*100p * 1k)^2 15let c1 = - 42mA * s / (s*100p + 1/1k)^2 16 17* run a "sens" analysis 18sens v(1) ac lin 1 1e6 1.1e6 19 20strcmp __flag $curplot $gold 21if $__flag = 0 22 echo "ERROR: sens failed to execute" 23 quit 1 24end 25 26* compare results with "golden" expectation 27 28define mismatch(a,b,err) abs(a-b)>err*abs(b) 29 30let total_count = 0 31let fail_count = 0 32 33foreach n i1_acmag c1 r1 34 set n_test = "$n" 35 set n_gold = "{$gold}.$n" 36 if mismatch($n_test, $n_gold, 1e-3) 37 let s_test = $n_test 38 let s_gold = $n_gold 39 echo "ERROR, test failure, s[$n] = $&s_test but should be $&s_gold" 40 let fail_count = fail_count + 1 41 end 42 let total_count = total_count + 1 43end 44 45if fail_count > 0 46 echo "ERROR: $&fail_count of $&total_count tests failed" 47 quit 1 48else 49 echo "INFO: $&fail_count of $&total_count tests failed" 50 quit 0 51end 52 53.endc 54 55.end 56