tests/regression/temper, several issues with `temper' in model parameters
This commit is contained in:
parent
0f07546db9
commit
8a65e97c2f
|
|
@ -1175,6 +1175,7 @@ AC_CONFIG_FILES([Makefile
|
||||||
tests/regression/func/Makefile
|
tests/regression/func/Makefile
|
||||||
tests/regression/model/Makefile
|
tests/regression/model/Makefile
|
||||||
tests/regression/misc/Makefile
|
tests/regression/misc/Makefile
|
||||||
|
tests/regression/temper/Makefile
|
||||||
tests/regression/pz/Makefile
|
tests/regression/pz/Makefile
|
||||||
tests/sensitivity/Makefile
|
tests/sensitivity/Makefile
|
||||||
tests/transient/Makefile
|
tests/transient/Makefile
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
## Process this file with automake to produce Makefile.in
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
SUBDIRS = lib-processing parser subckt-processing func model misc pz
|
SUBDIRS = lib-processing parser subckt-processing func model misc temper pz
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
|
||||||
|
TESTS = temper-1.cir temper-2.cir temper-3.cir
|
||||||
|
|
||||||
|
TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
$(TESTS) \
|
||||||
|
$(TESTS:.cir=.out)
|
||||||
|
|
||||||
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
regression test temper-1.cir, 'temper' in a model parameter
|
||||||
|
|
||||||
|
* check inp_evaluate_temper() processing
|
||||||
|
|
||||||
|
.model dplain d is='temper+1000'
|
||||||
|
|
||||||
|
D1 1 0 dplain
|
||||||
|
|
||||||
|
.control
|
||||||
|
|
||||||
|
let success_count = 0
|
||||||
|
|
||||||
|
op
|
||||||
|
|
||||||
|
let val = @dplain[is]
|
||||||
|
let gold = 1000 + 27.0
|
||||||
|
|
||||||
|
let err = abs(val/gold - 1)
|
||||||
|
|
||||||
|
echo "Note: err =" $&err
|
||||||
|
|
||||||
|
if err > 1e-12
|
||||||
|
echo "ERROR: test failed"
|
||||||
|
else
|
||||||
|
echo "INFO: success"
|
||||||
|
let success_count = success_count + 1
|
||||||
|
end
|
||||||
|
|
||||||
|
if success_count ne 1
|
||||||
|
quit 1
|
||||||
|
else
|
||||||
|
quit 0
|
||||||
|
end
|
||||||
|
|
||||||
|
.endc
|
||||||
|
|
||||||
|
.end
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
INFO: success
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
regression test temper-2.cir, temper sweep with 'temper' in a model parameter
|
||||||
|
|
||||||
|
* check invocation of CKTtemp() in DCtrCurv()
|
||||||
|
|
||||||
|
.model dtest D is='1e-12 * temper'
|
||||||
|
.model dfix D is='1e-12'
|
||||||
|
|
||||||
|
v1 1 0 dc 5v
|
||||||
|
r1 1 2 5k
|
||||||
|
|
||||||
|
d_test 2 3 dtest
|
||||||
|
v_test 3 0 dc=0
|
||||||
|
|
||||||
|
d_fix 2 4 dfix
|
||||||
|
v_fix 4 0 dc=0
|
||||||
|
|
||||||
|
.control
|
||||||
|
|
||||||
|
let success_count = 0
|
||||||
|
|
||||||
|
dc temp 10 100 10.0
|
||||||
|
|
||||||
|
let val = i(v_test)/i(v_fix)
|
||||||
|
let gold = "temp-sweep"
|
||||||
|
|
||||||
|
let err = vecmax(abs(val/gold - 1))
|
||||||
|
|
||||||
|
echo "Note: err =" $&err
|
||||||
|
if err > 1e-6
|
||||||
|
echo "ERROR: test failed"
|
||||||
|
else
|
||||||
|
echo "INFO: success"
|
||||||
|
let success_count = success_count + 1
|
||||||
|
end
|
||||||
|
|
||||||
|
if success_count ne 1
|
||||||
|
quit 1
|
||||||
|
else
|
||||||
|
quit 0
|
||||||
|
end
|
||||||
|
|
||||||
|
.endc
|
||||||
|
|
||||||
|
.end
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
INFO: success
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
regression test temper-3.cir, temper sweep with 'temper' in a model parameter
|
||||||
|
|
||||||
|
* check invocation of CKTtemp() in DCtrCurv()
|
||||||
|
* and for proper instance update in REStemp()
|
||||||
|
|
||||||
|
.model rtest r r='1000 + temper'
|
||||||
|
.model rfix r r='1000'
|
||||||
|
|
||||||
|
v1 1 0 dc 5v
|
||||||
|
|
||||||
|
r_test 1 0 rtest
|
||||||
|
|
||||||
|
.control
|
||||||
|
|
||||||
|
let success_count = 0
|
||||||
|
|
||||||
|
dc temp 10 100 10.0
|
||||||
|
|
||||||
|
let val = -v(1)/i(v1) - 1000
|
||||||
|
let gold = "temp-sweep"
|
||||||
|
|
||||||
|
let err = vecmax(abs(val/gold - 1))
|
||||||
|
|
||||||
|
echo "Note: err =" $&err
|
||||||
|
if err > 1e-12
|
||||||
|
echo "ERROR: test failed"
|
||||||
|
else
|
||||||
|
echo "INFO: success"
|
||||||
|
let success_count = success_count + 1
|
||||||
|
end
|
||||||
|
|
||||||
|
if success_count ne 1
|
||||||
|
quit 1
|
||||||
|
else
|
||||||
|
quit 0
|
||||||
|
end
|
||||||
|
|
||||||
|
.endc
|
||||||
|
|
||||||
|
.end
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
INFO: success
|
||||||
Loading…
Reference in New Issue