File: global-1.cir

package info (click to toggle)
ngspice 30.2-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 50,684 kB
  • sloc: ansic: 497,340; xml: 6,914; makefile: 3,620; sh: 2,322; perl: 1,909; yacc: 1,514; tcl: 1,033; lex: 318
file content (81 lines) | stat: -rw-r--r-- 1,284 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
check treatment of multiple .global cards

* (exec-spice "ngspice -b %s")
* (tests-aux-renumber)

* multiple .global decks are "accumulative"

.global n1001_t n1002_t
.global n1003_t


.subckt su1 1
R2        1 0  10k
R3  n1001_t 0  2000.0
.ends

.subckt su2 1
R2        1 0  10k
R3  n1002_t 0  4000.0
.ends

.subckt su3 1
R2        1 0  10k
R3  n1003_t 0  8000.0
.ends


i1  n1001_t 0  -3mA
R1  n1001_t 0  1000.0

i2  n1002_t 0  -5mA
R2  n1002_t 0  1000.0

i3  n1003_t 0  -9mA
R3  n1003_t 0  1000.0

X1  n1    su1
X2  n1    su2
X3  n1    su3
Rn  n1 0  100k

v1g  n1001_g 0  2.0000000
v2g  n1002_g 0  4.0000000
v3g  n1003_g 0  8.0000000

.control

define mismatch(a,b,err) abs(a-b)>err

op

* listing extended

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