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