From 8f86be7debb34d5aceaa1c2df17ca083a819e345 Mon Sep 17 00:00:00 2001 From: rlar Date: Sat, 8 Apr 2017 17:28:35 +0200 Subject: [PATCH] tests/regression/agauss/**, check some agauss usage patterns --- configure.ac | 1 + tests/regression/Makefile.am | 2 +- tests/regression/agauss/Makefile.am | 18 +++++++++ tests/regression/agauss/test-agauss-1.cir | 38 +++++++++++++++++++ tests/regression/agauss/test-agauss-1.out | 9 +++++ tests/regression/agauss/test-agauss-2.cir | 40 ++++++++++++++++++++ tests/regression/agauss/test-agauss-2.out | 9 +++++ tests/regression/agauss/test-agauss-3.cir | 45 +++++++++++++++++++++++ tests/regression/agauss/test-agauss-3.out | 9 +++++ tests/regression/agauss/test-agauss-4.cir | 45 +++++++++++++++++++++++ tests/regression/agauss/test-agauss-4.out | 9 +++++ tests/regression/agauss/test-agauss-5.cir | 44 ++++++++++++++++++++++ tests/regression/agauss/test-agauss-5.out | 9 +++++ tests/regression/agauss/test-agauss-6.cir | 45 +++++++++++++++++++++++ tests/regression/agauss/test-agauss-6.out | 9 +++++ 15 files changed, 331 insertions(+), 1 deletion(-) create mode 100644 tests/regression/agauss/Makefile.am create mode 100644 tests/regression/agauss/test-agauss-1.cir create mode 100644 tests/regression/agauss/test-agauss-1.out create mode 100644 tests/regression/agauss/test-agauss-2.cir create mode 100644 tests/regression/agauss/test-agauss-2.out create mode 100644 tests/regression/agauss/test-agauss-3.cir create mode 100644 tests/regression/agauss/test-agauss-3.out create mode 100644 tests/regression/agauss/test-agauss-4.cir create mode 100644 tests/regression/agauss/test-agauss-4.out create mode 100644 tests/regression/agauss/test-agauss-5.cir create mode 100644 tests/regression/agauss/test-agauss-5.out create mode 100644 tests/regression/agauss/test-agauss-6.cir create mode 100644 tests/regression/agauss/test-agauss-6.out diff --git a/configure.ac b/configure.ac index 931d454d0..9297d50d6 100644 --- a/configure.ac +++ b/configure.ac @@ -1202,6 +1202,7 @@ AC_CONFIG_FILES([Makefile tests/mos6/Makefile tests/polezero/Makefile tests/regression/Makefile + tests/regression/agauss/Makefile tests/regression/subckt-processing/Makefile tests/regression/lib-processing/Makefile tests/regression/parser/Makefile diff --git a/tests/regression/Makefile.am b/tests/regression/Makefile.am index c48fe0afe..6ad641a9e 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 sens temper pz +SUBDIRS = agauss lib-processing parser subckt-processing func model misc sens temper pz MAINTAINERCLEANFILES = Makefile.in diff --git a/tests/regression/agauss/Makefile.am b/tests/regression/agauss/Makefile.am new file mode 100644 index 000000000..4f423bad9 --- /dev/null +++ b/tests/regression/agauss/Makefile.am @@ -0,0 +1,18 @@ +## Process this file with automake to produce Makefile.in + + +TESTS = \ + test-agauss-1.cir \ + test-agauss-2.cir \ + test-agauss-3.cir \ + test-agauss-4.cir \ + test-agauss-5.cir \ + test-agauss-6.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/agauss/test-agauss-1.cir b/tests/regression/agauss/test-agauss-1.cir new file mode 100644 index 000000000..61c0fded8 --- /dev/null +++ b/tests/regression/agauss/test-agauss-1.cir @@ -0,0 +1,38 @@ +* test-agauss-1, agauss parameter correlation + +* check this usage pattern for independent/non-correlated random parameters +* .param foo = agauss +* v.. 'foo' +* v.. 'foo' + +.param p1 = agauss(13, 2, 1) + +.subckt stdev mean sigma 1 2 3 4 5 +emean mean 0 vol = '(v(1)+v(2)+v(3)+v(4)+v(5))/5' +esigma sigma 0 vol = 'sqrt((v(1,mean)**2 + v(2,mean)**2 + v(3,mean)**2 + v(4,mean)**2 + v(5,mean)**2)/5)' +.ends + +v1 1 0 'p1' +v2 2 0 'p1' +v3 3 0 'p1' +v4 4 0 'p1' +v5 5 0 'p1' + +xprobe Omean Osigma 1 2 3 4 5 stdev + + +.control + +op + +if v(Osigma) > 0.1 + echo "INFO: success" + quit 0 +else + echo "ERROR: test values expected to be non-correlated" + quit 1 +end + +.endc + +.end diff --git a/tests/regression/agauss/test-agauss-1.out b/tests/regression/agauss/test-agauss-1.out new file mode 100644 index 000000000..880c5ab5a --- /dev/null +++ b/tests/regression/agauss/test-agauss-1.out @@ -0,0 +1,9 @@ + +Circuit: * test-agauss-1, agauss parameter correlation + +Doing analysis at TEMP = 27.000000 and TNOM = 27.000000 + + +No. of Data Rows : 1 +INFO: success +ngspice-26 done diff --git a/tests/regression/agauss/test-agauss-2.cir b/tests/regression/agauss/test-agauss-2.cir new file mode 100644 index 000000000..e362ce8a3 --- /dev/null +++ b/tests/regression/agauss/test-agauss-2.cir @@ -0,0 +1,40 @@ +* test-agauss-2, agauss parameter correlation + +* check this usage pattern for dependent/correlated random parameters +* .param foo = agauss +* .param bar = foo +* v.. 'bar' +* v.. 'bar' + +.param p0 = agauss(13, 2, 1) +.param p1 = p0 + +.subckt stdev mean sigma 1 2 3 4 5 +emean mean 0 vol = '(v(1)+v(2)+v(3)+v(4)+v(5))/5' +esigma sigma 0 vol = 'sqrt((v(1,mean)**2 + v(2,mean)**2 + v(3,mean)**2 + v(4,mean)**2 + v(5,mean)**2)/5)' +.ends + +v1 1 0 'p1' +v2 2 0 'p1' +v3 3 0 'p1' +v4 4 0 'p1' +v5 5 0 'p1' + +xprobe Omean Osigma 1 2 3 4 5 stdev + + +.control + +op + +if v(Osigma) < 0.1 + echo "INFO: success" + quit 0 +else + echo "ERROR: test values expected to be correlated" + quit 1 +end + +.endc + +.end diff --git a/tests/regression/agauss/test-agauss-2.out b/tests/regression/agauss/test-agauss-2.out new file mode 100644 index 000000000..c396645a4 --- /dev/null +++ b/tests/regression/agauss/test-agauss-2.out @@ -0,0 +1,9 @@ + +Circuit: * test-agauss-2, agauss parameter correlation + +Doing analysis at TEMP = 27.000000 and TNOM = 27.000000 + + +No. of Data Rows : 1 +INFO: success +ngspice-26 done diff --git a/tests/regression/agauss/test-agauss-3.cir b/tests/regression/agauss/test-agauss-3.cir new file mode 100644 index 000000000..f6581cfd7 --- /dev/null +++ b/tests/regression/agauss/test-agauss-3.cir @@ -0,0 +1,45 @@ +* test-agauss-3, agauss parameter correlation + +* check this usage pattern for independent/non-correlated random parameters +* .param foo = agauss +* .subckt sub ... +* v.. 'foo' +* .ends +* x.. +* x.. + +.param p1 = agauss(13, 2, 1) + +.subckt stdev mean sigma 1 2 3 4 5 +emean mean 0 vol = '(v(1)+v(2)+v(3)+v(4)+v(5))/5' +esigma sigma 0 vol = 'sqrt((v(1,mean)**2 + v(2,mean)**2 + v(3,mean)**2 + v(4,mean)**2 + v(5,mean)**2)/5)' +.ends + +.subckt baz 1 0 +v1 1 0 'p1' +.ends + +xv1 1 0 baz +xv2 2 0 baz +xv3 3 0 baz +xv4 4 0 baz +xv5 5 0 baz + +xprobe Omean Osigma 1 2 3 4 5 stdev + + +.control + +op + +if v(Osigma) > 0.1 + echo "INFO: success" + quit 0 +else + echo "ERROR: test values expected to be non-correlated" + quit 1 +end + +.endc + +.end diff --git a/tests/regression/agauss/test-agauss-3.out b/tests/regression/agauss/test-agauss-3.out new file mode 100644 index 000000000..967ed4189 --- /dev/null +++ b/tests/regression/agauss/test-agauss-3.out @@ -0,0 +1,9 @@ + +Circuit: * test-agauss-3, agauss parameter correlation + +Doing analysis at TEMP = 27.000000 and TNOM = 27.000000 + + +No. of Data Rows : 1 +INFO: success +ngspice-26 done diff --git a/tests/regression/agauss/test-agauss-4.cir b/tests/regression/agauss/test-agauss-4.cir new file mode 100644 index 000000000..3df9eba6c --- /dev/null +++ b/tests/regression/agauss/test-agauss-4.cir @@ -0,0 +1,45 @@ +* test-agauss-4, agauss parameter correlation + +* check this usage pattern for independent/non-correlated random parameters +* .param foo = agauss +* .subckt sub pa=.. +* v.. 'ba' +* .ends +* x.. pa='foo' +* x.. pa='foo' + +.param p1 = agauss(13, 2, 1) + +.subckt stdev mean sigma 1 2 3 4 5 +emean mean 0 vol = '(v(1)+v(2)+v(3)+v(4)+v(5))/5' +esigma sigma 0 vol = 'sqrt((v(1,mean)**2 + v(2,mean)**2 + v(3,mean)**2 + v(4,mean)**2 + v(5,mean)**2)/5)' +.ends + +.subckt baz 1 0 pa=0 +v1 1 0 'pa' +.ends + +xv1 1 0 baz pa='p1' +xv2 2 0 baz pa='p1' +xv3 3 0 baz pa='p1' +xv4 4 0 baz pa='p1' +xv5 5 0 baz pa='p1' + +xprobe Omean Osigma 1 2 3 4 5 stdev + + +.control + +op + +if v(Osigma) > 0.1 + echo "INFO: success" + quit 0 +else + echo "ERROR: test values expected to be non-correlated" + quit 1 +end + +.endc + +.end diff --git a/tests/regression/agauss/test-agauss-4.out b/tests/regression/agauss/test-agauss-4.out new file mode 100644 index 000000000..f5ea2fffb --- /dev/null +++ b/tests/regression/agauss/test-agauss-4.out @@ -0,0 +1,9 @@ + +Circuit: * test-agauss-4, agauss parameter correlation + +Doing analysis at TEMP = 27.000000 and TNOM = 27.000000 + + +No. of Data Rows : 1 +INFO: success +ngspice-26 done diff --git a/tests/regression/agauss/test-agauss-5.cir b/tests/regression/agauss/test-agauss-5.cir new file mode 100644 index 000000000..cb137ebec --- /dev/null +++ b/tests/regression/agauss/test-agauss-5.cir @@ -0,0 +1,44 @@ +* test-agauss-5, agauss parameter correlation + +* check this usage pattern for independent/non-correlated random parameters +* .param foo = agauss +* .subckt sub +* v.. 'foo' +* v.. 'foo' +* .ends + +.param p1 = agauss(13, 2, 1) + +.subckt stdev mean sigma 1 2 3 4 5 +emean mean 0 vol = '(v(1)+v(2)+v(3)+v(4)+v(5))/5' +esigma sigma 0 vol = 'sqrt((v(1,mean)**2 + v(2,mean)**2 + v(3,mean)**2 + v(4,mean)**2 + v(5,mean)**2)/5)' +.ends + +.subckt baz 1 2 3 4 5 0 +v1 1 0 'p1' +v2 2 0 'p1' +v3 3 0 'p1' +v4 4 0 'p1' +v5 5 0 'p1' +.ends + +xv1 1 2 3 4 5 0 baz + +xprobe Omean Osigma 1 2 3 4 5 stdev + + +.control + +op + +if v(Osigma) > 0.1 + echo "INFO: success" + quit 0 +else + echo "ERROR: test values expected to be non-correlated" + quit 1 +end + +.endc + +.end diff --git a/tests/regression/agauss/test-agauss-5.out b/tests/regression/agauss/test-agauss-5.out new file mode 100644 index 000000000..9fa48c85b --- /dev/null +++ b/tests/regression/agauss/test-agauss-5.out @@ -0,0 +1,9 @@ + +Circuit: * test-agauss-5, agauss parameter correlation + +Doing analysis at TEMP = 27.000000 and TNOM = 27.000000 + + +No. of Data Rows : 1 +INFO: success +ngspice-26 done diff --git a/tests/regression/agauss/test-agauss-6.cir b/tests/regression/agauss/test-agauss-6.cir new file mode 100644 index 000000000..737525a20 --- /dev/null +++ b/tests/regression/agauss/test-agauss-6.cir @@ -0,0 +1,45 @@ +* test-agauss-6, agauss parameter correlation + +* check this usage pattern for dependent/correlated random parameters +* .param foo = agauss +* .subckt sub pa=.. +* v.. 'pa' +* v.. 'pa' +* .ends +* xone .. sub pa='foo' + +.param p1 = agauss(13, 2, 1) + +.subckt stdev mean sigma 1 2 3 4 5 +emean mean 0 vol = '(v(1)+v(2)+v(3)+v(4)+v(5))/5' +esigma sigma 0 vol = 'sqrt((v(1,mean)**2 + v(2,mean)**2 + v(3,mean)**2 + v(4,mean)**2 + v(5,mean)**2)/5)' +.ends + +.subckt baz 1 2 3 4 5 0 pa=2 +v1 1 0 'pa' +v2 2 0 'pa' +v3 3 0 'pa' +v4 4 0 'pa' +v5 5 0 'pa' +.ends + +xv1 1 2 3 4 5 0 baz pa='p1' + +xprobe Omean Osigma 1 2 3 4 5 stdev + + +.control + +op + +if v(Osigma) < 0.1 + echo "INFO: success" + quit 0 +else + echo "ERROR: test values expected to be correlated" + quit 1 +end + +.endc + +.end diff --git a/tests/regression/agauss/test-agauss-6.out b/tests/regression/agauss/test-agauss-6.out new file mode 100644 index 000000000..4e53cbe28 --- /dev/null +++ b/tests/regression/agauss/test-agauss-6.out @@ -0,0 +1,9 @@ + +Circuit: * test-agauss-6, agauss parameter correlation + +Doing analysis at TEMP = 27.000000 and TNOM = 27.000000 + + +No. of Data Rows : 1 +INFO: success +ngspice-26 done