tests/regression/temper, several issues with `temper' in model parameters

This commit is contained in:
rlar 2015-08-10 17:33:17 +02:00
parent 0f07546db9
commit 8a65e97c2f
9 changed files with 138 additions and 1 deletions

View File

@ -1175,6 +1175,7 @@ AC_CONFIG_FILES([Makefile
tests/regression/func/Makefile
tests/regression/model/Makefile
tests/regression/misc/Makefile
tests/regression/temper/Makefile
tests/regression/pz/Makefile
tests/sensitivity/Makefile
tests/transient/Makefile

View File

@ -1,5 +1,5 @@
## 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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1 @@
INFO: success

View File

@ -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

View File

@ -0,0 +1 @@
INFO: success

View File

@ -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

View File

@ -0,0 +1 @@
INFO: success