Browse Source

some .subckt scope regression tests

pre-master-46
rlar 10 years ago
committed by Holger Vogt
parent
commit
fc354ffe83
  1. 2
      tests/regression/lib-processing/Makefile.am
  2. 70
      tests/regression/lib-processing/scope-1.cir
  3. 8
      tests/regression/lib-processing/scope-1.out
  4. 81
      tests/regression/lib-processing/scope-2.cir
  5. 8
      tests/regression/lib-processing/scope-2.out
  6. 84
      tests/regression/lib-processing/scope-3.cir
  7. 8
      tests/regression/lib-processing/scope-3.out

2
tests/regression/lib-processing/Makefile.am

@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
TESTS = ex1a.cir ex1b.cir ex2a.cir ex3a.cir
TESTS = ex1a.cir ex1b.cir ex2a.cir ex3a.cir scope-1.cir scope-2.cir scope-3.cir
TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice

70
tests/regression/lib-processing/scope-1.cir

@ -0,0 +1,70 @@
scope-1, subckt scopes
* (exec-spice "ngspice -b %s" t)
* ----
i1001_t n1001_t 0 -1mA
x1001_t n1001_t 0 sub1
v1001_g n1001_g 0 2.0V
* ----
i1002_t n1002_t 0 -1mA
x1002_t n1002_t 0 sub2
v1002_g n1002_g 0 1.0V
* ----
.subckt sub1 n1 n2
.subckt sub n1 n2
R1 n1 n2 4k
.ends
X1 n1 n2 sub
R1 n1 n2 4k
.ends
.subckt sub2 n1 n2
.subckt sub n1 n2
R1 n1 n2 2k
.ends
X1 n1 n2 sub
R1 n1 n2 2k
.ends
.control
define mismatch(a,b,err) abs(a-b)>err
op
let total_count = 0
let fail_count = 0
let tests = 1001 + vector(2)
foreach n $&tests
set n_test = "n{$n}_t"
set n_gold = "n{$n}_g"
if mismatch(v($n_test), v($n_gold), 1e-9)
let v_test = v($n_test)
let v_gold = v($n_gold)
echo "ERROR, test failure, v($n_test) = $&v_test but should be $&v_gold"
let fail_count = fail_count + 1
end
let total_count = total_count + 1
end
if fail_count > 0
echo "ERROR: $&fail_count of $&total_count tests failed"
quit 1
else
echo "INFO: $&fail_count of $&total_count tests failed"
quit 0
end
.endc
.end

8
tests/regression/lib-processing/scope-1.out

@ -0,0 +1,8 @@
Circuit: scope-1, subckt scopes
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
No. of Data Rows : 1
INFO: 0 of 2 tests failed

81
tests/regression/lib-processing/scope-2.cir

@ -0,0 +1,81 @@
scope-2, subckt scopes
* (exec-spice "ngspice -b %s" t)
* ----
i1001_t n1001_t 0 -1mA
x1001_t n1001_t 0 sub1
v1001_g n1001_g 0 2.0V
* ----
i1002_t n1002_t 0 -1mA
x1002_t n1002_t 0 sub2
v1002_g n1002_g 0 1.0V
* ----
i1003_t n1003_t 0 -1mA
x1003_t n1003_t 0 sub
v1003_g n1003_g 0 3.0V
* ----
.subckt sub1 n1 n2
.subckt sub n1 n2
R1 n1 n2 4k
.ends
X1 n1 n2 sub
R1 n1 n2 4k
.ends
.subckt sub n1 n2
R1 n1 n2 3k
.ends
.subckt sub2 n1 n2
.subckt sub n1 n2
R1 n1 n2 2k
.ends
X1 n1 n2 sub
R1 n1 n2 2k
.ends
.control
define mismatch(a,b,err) abs(a-b)>err
op
let total_count = 0
let fail_count = 0
let tests = 1001 + vector(3)
foreach n $&tests
set n_test = "n{$n}_t"
set n_gold = "n{$n}_g"
if mismatch(v($n_test), v($n_gold), 1e-9)
let v_test = v($n_test)
let v_gold = v($n_gold)
echo "ERROR, test failure, v($n_test) = $&v_test but should be $&v_gold"
let fail_count = fail_count + 1
end
let total_count = total_count + 1
end
if fail_count > 0
echo "ERROR: $&fail_count of $&total_count tests failed"
quit 1
else
echo "INFO: $&fail_count of $&total_count tests failed"
quit 0
end
.endc
.end

8
tests/regression/lib-processing/scope-2.out

@ -0,0 +1,8 @@
Circuit: scope-2, subckt scopes
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
No. of Data Rows : 1
INFO: 0 of 3 tests failed

84
tests/regression/lib-processing/scope-3.cir

@ -0,0 +1,84 @@
scope-3, subckt scopes
* (exec-spice "ngspice -b %s" t)
* ----
* (/ 1 (+ (/ 1.0 2 3 3) (/ 1.0 2 3 5)))
.param foo = 2k
i1001_t n1001_t 0 -1mA
x1001_t n1001_t 0 sub1 foo='foo*3'
v1001_g n1001_g 0 11.25v
* ----
* (/ 1 (+ (/ 1.0 2 4 11) (/ 1.0 2 4 13)))
i1002_t n1002_t 0 -1mA
x1002_t n1002_t 0 sub2 foo='foo*4'
v1002_g n1002_g 0 47.666666666666666
* ----
i1003_t n1003_t 0 -1mA
x1003_t n1003_t 0 sub foo=3k
v1003_g n1003_g 0 33.0v
* ----
.subckt sub1 n1 n2 foo=5k
.subckt sub n1 n2 foo=10k
R1 n1 n2 'foo'
.ends
X1 n1 n2 sub foo='3*foo'
R1 n1 n2 '5*foo'
.ends
.subckt sub n1 n2 foo=17k
R1 n1 n2 'foo*11'
.ends
.subckt sub2 n1 n2 foo=121k
.subckt sub n1 n2 foo=117k
R1 n1 n2 'foo'
.ends
X1 n1 n2 sub foo='11*foo'
R1 n1 n2 'foo*13'
.ends
.control
define mismatch(a,b,err) abs(a-b)>err
op
let total_count = 0
let fail_count = 0
let tests = 1001 + vector(3)
foreach n $&tests
set n_test = "n{$n}_t"
set n_gold = "n{$n}_g"
if mismatch(v($n_test), v($n_gold), 1e-9)
let v_test = v($n_test)
let v_gold = v($n_gold)
echo "ERROR, test failure, v($n_test) = $&v_test but should be $&v_gold"
let fail_count = fail_count + 1
end
let total_count = total_count + 1
end
if fail_count > 0
echo "ERROR: $&fail_count of $&total_count tests failed"
quit 1
else
echo "INFO: $&fail_count of $&total_count tests failed"
quit 0
end
.endc
.end

8
tests/regression/lib-processing/scope-3.out

@ -0,0 +1,8 @@
Circuit: scope-3, subckt scopes
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
No. of Data Rows : 1
INFO: 0 of 3 tests failed
Loading…
Cancel
Save