diff --git a/configure.ac b/configure.ac index 767458317..5ee622a72 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/tests/regression/Makefile.am b/tests/regression/Makefile.am index 29f6139d3..2b26f628f 100644 --- a/tests/regression/Makefile.am +++ b/tests/regression/Makefile.am @@ -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 diff --git a/tests/regression/temper/Makefile.am b/tests/regression/temper/Makefile.am new file mode 100644 index 000000000..bdcda61b4 --- /dev/null +++ b/tests/regression/temper/Makefile.am @@ -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 diff --git a/tests/regression/temper/temper-1.cir b/tests/regression/temper/temper-1.cir new file mode 100644 index 000000000..8b75d97bf --- /dev/null +++ b/tests/regression/temper/temper-1.cir @@ -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 diff --git a/tests/regression/temper/temper-1.out b/tests/regression/temper/temper-1.out new file mode 100644 index 000000000..8e9036969 --- /dev/null +++ b/tests/regression/temper/temper-1.out @@ -0,0 +1 @@ +INFO: success diff --git a/tests/regression/temper/temper-2.cir b/tests/regression/temper/temper-2.cir new file mode 100644 index 000000000..326a860da --- /dev/null +++ b/tests/regression/temper/temper-2.cir @@ -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 diff --git a/tests/regression/temper/temper-2.out b/tests/regression/temper/temper-2.out new file mode 100644 index 000000000..8e9036969 --- /dev/null +++ b/tests/regression/temper/temper-2.out @@ -0,0 +1 @@ +INFO: success diff --git a/tests/regression/temper/temper-3.cir b/tests/regression/temper/temper-3.cir new file mode 100644 index 000000000..6653f1ed0 --- /dev/null +++ b/tests/regression/temper/temper-3.cir @@ -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 diff --git a/tests/regression/temper/temper-3.out b/tests/regression/temper/temper-3.out new file mode 100644 index 000000000..8e9036969 --- /dev/null +++ b/tests/regression/temper/temper-3.out @@ -0,0 +1 @@ +INFO: success