tests/regression/agauss/**, check some agauss usage patterns

This commit is contained in:
rlar 2017-04-08 17:28:35 +02:00
parent 5a4d934725
commit 8f86be7deb
15 changed files with 331 additions and 1 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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