diff options
author | Ruben Undheim <ruben.undheim@gmail.com> | 2018-07-13 06:17:58 +0000 |
---|---|---|
committer | Ruben Undheim <ruben.undheim@gmail.com> | 2018-07-13 06:17:58 +0000 |
commit | 9e0bd16a997e55d6b9c2e80734ea8e61794c7602 (patch) | |
tree | d73377e0368b0c730d5a14019b1eee53897505bf /test | |
parent | e1fffcb07ce0d8b0db9e0b4b5e1e0c1128197af5 (diff) |
New upstream version 0.84.22
Diffstat (limited to 'test')
26 files changed, 5098 insertions, 0 deletions
diff --git a/test/files/bug-102-raw-minimal.oregano b/test/files/bug-102-raw-minimal.oregano new file mode 100644 index 0000000..c1c9d3e --- /dev/null +++ b/test/files/bug-102-raw-minimal.oregano @@ -0,0 +1,51 @@ +<?xml version="1.0"?> +<ogo:schematic xmlns:ogo="http://www.dtek.chalmers.se/~d4hult/oregano/v1"> + <ogo:author/> + <ogo:title>bug-102-raw-minimal.oregano</ogo:title> + <ogo:comments/> + <ogo:grid> + <ogo:visible>true</ogo:visible> + <ogo:snap>true</ogo:snap> + </ogo:grid> + <ogo:simulation-settings> + <ogo:transient> + <ogo:enabled>true</ogo:enabled> + <ogo:start>0</ogo:start> + <ogo:stop>0.005</ogo:stop> + <ogo:step>0.0001</ogo:step> + <ogo:step-enabled>false</ogo:step-enabled> + <ogo:init-conditions>false</ogo:init-conditions> + </ogo:transient> + <ogo:ac> + <ogo:enabled>false</ogo:enabled> + <ogo:npoints>50</ogo:npoints> + <ogo:start>1</ogo:start> + <ogo:stop>1e+06</ogo:stop> + </ogo:ac> + <ogo:dc-sweep> + <ogo:enabled>false</ogo:enabled> + <ogo:vsrc1/> + <ogo:start1>0</ogo:start1> + <ogo:stop1>0</ogo:stop1> + <ogo:step1>0</ogo:step1> + </ogo:dc-sweep> + <ogo:fourier> + <ogo:enabled>false</ogo:enabled> + <ogo:freq>0</ogo:freq> + <ogo:vout>0</ogo:vout> + </ogo:fourier> + </ogo:simulation-settings> + <ogo:parts/> + <ogo:wires> + <ogo:wire> + <ogo:points>(620 90)(620 550)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(580 550)(580 90)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(600 550)(600 90)</ogo:points> + </ogo:wire> + </ogo:wires> + <ogo:textboxes/> +</ogo:schematic> diff --git a/test/files/bug-102-raw.oregano b/test/files/bug-102-raw.oregano new file mode 100644 index 0000000..8ef3088 --- /dev/null +++ b/test/files/bug-102-raw.oregano @@ -0,0 +1,150 @@ +<?xml version="1.0"?> +<ogo:schematic xmlns:ogo="http://www.dtek.chalmers.se/~d4hult/oregano/v1"> + <ogo:author/> + <ogo:title>bug-102-raw.oregano</ogo:title> + <ogo:comments/> + <ogo:grid> + <ogo:visible>true</ogo:visible> + <ogo:snap>true</ogo:snap> + </ogo:grid> + <ogo:simulation-settings> + <ogo:transient> + <ogo:enabled>true</ogo:enabled> + <ogo:start>0</ogo:start> + <ogo:stop>0.005</ogo:stop> + <ogo:step>0.0001</ogo:step> + <ogo:step-enabled>false</ogo:step-enabled> + <ogo:init-conditions>false</ogo:init-conditions> + </ogo:transient> + <ogo:ac> + <ogo:enabled>false</ogo:enabled> + <ogo:npoints>50</ogo:npoints> + <ogo:start>1</ogo:start> + <ogo:stop>1e+06</ogo:stop> + </ogo:ac> + <ogo:dc-sweep> + <ogo:enabled>false</ogo:enabled> + <ogo:vsrc1/> + <ogo:start1>0</ogo:start1> + <ogo:stop1>0</ogo:stop1> + <ogo:step1>0</ogo:step1> + </ogo:dc-sweep> + <ogo:fourier> + <ogo:enabled>false</ogo:enabled> + <ogo:freq>0</ogo:freq> + <ogo:vout>0</ogo:vout> + </ogo:fourier> + </ogo:simulation-settings> + <ogo:parts/> + <ogo:wires> + <ogo:wire> + <ogo:points>(630 550)(630 90)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(620 90)(620 550)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(610 550)(610 90)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(600 90)(600 550)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(590 550)(590 90)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(580 90)(580 550)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(570 550)(570 90)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(560 90)(560 550)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(550 540)(550 90)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(540 90)(540 540)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(530 540)(530 90)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(520 80)(520 540)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(510 540)(510 80)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(500 90)(500 540)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(490 550)(490 90)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(480 90)(480 550)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(470 550)(470 90)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(460 90)(460 550)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(450 550)(450 90)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(440 100)(440 550)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(430 550)(430 100)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(420 100)(420 550)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(410 550)(410 100)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(400 110)(400 550)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(390 540)(390 110)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(380 130)(380 540)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(370 530)(370 130)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(360 150)(360 530)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(350 150)(350 540)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(330 150)(330 500)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(320 150)(320 500)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(300 150)(300 500)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(280 150)(280 500)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(290 150)(290 500)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 150)(310 500)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(640 90)(640 450)</ogo:points> + </ogo:wire> + </ogo:wires> + <ogo:textboxes/> +</ogo:schematic> diff --git a/test/files/bug-102.oregano b/test/files/bug-102.oregano new file mode 100644 index 0000000..4bca7a9 --- /dev/null +++ b/test/files/bug-102.oregano @@ -0,0 +1,770 @@ +<?xml version="1.0"?> +<ogo:schematic xmlns:ogo="http://www.dtek.chalmers.se/~d4hult/oregano/v1"> + <ogo:author/> + <ogo:title>fliprottest.oregano</ogo:title> + <ogo:comments/> + <ogo:grid> + <ogo:visible>true</ogo:visible> + <ogo:snap>true</ogo:snap> + </ogo:grid> + <ogo:simulation-settings> + <ogo:transient> + <ogo:enabled>true</ogo:enabled> + <ogo:start>0</ogo:start> + <ogo:stop>0.005</ogo:stop> + <ogo:step>0.0001</ogo:step> + <ogo:step-enabled>false</ogo:step-enabled> + <ogo:init-conditions>false</ogo:init-conditions> + </ogo:transient> + <ogo:ac> + <ogo:enabled>false</ogo:enabled> + <ogo:npoints>50</ogo:npoints> + <ogo:start>1</ogo:start> + <ogo:stop>1e+06</ogo:stop> + </ogo:ac> + <ogo:dc-sweep> + <ogo:enabled>false</ogo:enabled> + <ogo:vsrc1/> + <ogo:start1>0</ogo:start1> + <ogo:stop1>0</ogo:stop1> + <ogo:step1>0</ogo:step1> + </ogo:dc-sweep> + <ogo:fourier> + <ogo:enabled>false</ogo:enabled> + <ogo:freq>0</ogo:freq> + <ogo:vout>0</ogo:vout> + </ogo:fourier> + </ogo:simulation-settings> + <ogo:parts> + <ogo:part> + <ogo:rotation>180</ogo:rotation> + <ogo:flip>vertical</ogo:flip> + <ogo:name>12AX7 (a)</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>Triode</ogo:symbol> + <ogo:position>(1045 260)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V2</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>12AX7A(a)</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>XV_@refdes %c %g %p %h1 %h2 %h3 @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 -27)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>p</ogo:name> + <ogo:text>1</ogo:text> + <ogo:position>(34 -29)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>g</ogo:name> + <ogo:text>2</ogo:text> + <ogo:position>(5 -2)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>c</ogo:name> + <ogo:text>3</ogo:text> + <ogo:position>(62 30)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h1</ogo:name> + <ogo:text>4</ogo:text> + <ogo:position>(23 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h2</ogo:name> + <ogo:text>9</ogo:text> + <ogo:position>(33 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h3</ogo:name> + <ogo:text>5</ogo:text> + <ogo:position>(43 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(45 -27)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>180</ogo:rotation> + <ogo:flip>horizontal</ogo:flip> + <ogo:name>12AX7 (a)</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>Triode</ogo:symbol> + <ogo:position>(1125 360)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V8</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>12AX7A(a)</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>XV_@refdes %c %g %p %h1 %h2 %h3 @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 -27)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>p</ogo:name> + <ogo:text>1</ogo:text> + <ogo:position>(34 -29)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>g</ogo:name> + <ogo:text>2</ogo:text> + <ogo:position>(5 -2)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>c</ogo:name> + <ogo:text>3</ogo:text> + <ogo:position>(62 30)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h1</ogo:name> + <ogo:text>4</ogo:text> + <ogo:position>(23 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h2</ogo:name> + <ogo:text>9</ogo:text> + <ogo:position>(33 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h3</ogo:name> + <ogo:text>5</ogo:text> + <ogo:position>(43 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(45 -27)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:flip>horizontal</ogo:flip> + <ogo:name>12AX7 (a)</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>Triode</ogo:symbol> + <ogo:position>(700 270)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V7</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>12AX7A(a)</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>XV_@refdes %c %g %p %h1 %h2 %h3 @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 -27)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>p</ogo:name> + <ogo:text>1</ogo:text> + <ogo:position>(34 -29)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>g</ogo:name> + <ogo:text>2</ogo:text> + <ogo:position>(5 -2)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>c</ogo:name> + <ogo:text>3</ogo:text> + <ogo:position>(62 30)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h1</ogo:name> + <ogo:text>4</ogo:text> + <ogo:position>(23 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h2</ogo:name> + <ogo:text>9</ogo:text> + <ogo:position>(33 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h3</ogo:name> + <ogo:text>5</ogo:text> + <ogo:position>(43 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(45 -27)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>12AX7 (a)</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>Triode</ogo:symbol> + <ogo:position>(510 270)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V6</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>12AX7A(a)</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>XV_@refdes %c %g %p %h1 %h2 %h3 @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 -27)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>p</ogo:name> + <ogo:text>1</ogo:text> + <ogo:position>(34 -29)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>g</ogo:name> + <ogo:text>2</ogo:text> + <ogo:position>(5 -2)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>c</ogo:name> + <ogo:text>3</ogo:text> + <ogo:position>(62 30)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h1</ogo:name> + <ogo:text>4</ogo:text> + <ogo:position>(23 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h2</ogo:name> + <ogo:text>9</ogo:text> + <ogo:position>(33 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h3</ogo:name> + <ogo:text>5</ogo:text> + <ogo:position>(43 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(45 -27)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>180</ogo:rotation> + <ogo:flip>horizontal</ogo:flip> + <ogo:name>12AX7 (a)</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>Triode</ogo:symbol> + <ogo:position>(575 390)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V5</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>12AX7A(a)</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>XV_@refdes %c %g %p %h1 %h2 %h3 @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 -27)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>p</ogo:name> + <ogo:text>1</ogo:text> + <ogo:position>(34 -29)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>g</ogo:name> + <ogo:text>2</ogo:text> + <ogo:position>(5 -2)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>c</ogo:name> + <ogo:text>3</ogo:text> + <ogo:position>(62 30)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h1</ogo:name> + <ogo:text>4</ogo:text> + <ogo:position>(23 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h2</ogo:name> + <ogo:text>9</ogo:text> + <ogo:position>(33 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h3</ogo:name> + <ogo:text>5</ogo:text> + <ogo:position>(43 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(45 -27)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>180</ogo:rotation> + <ogo:name>12AX7 (a)</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>Triode</ogo:symbol> + <ogo:position>(765 390)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V4</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>12AX7A(a)</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>XV_@refdes %c %g %p %h1 %h2 %h3 @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 -27)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>p</ogo:name> + <ogo:text>1</ogo:text> + <ogo:position>(34 -29)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>g</ogo:name> + <ogo:text>2</ogo:text> + <ogo:position>(5 -2)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>c</ogo:name> + <ogo:text>3</ogo:text> + <ogo:position>(62 30)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h1</ogo:name> + <ogo:text>4</ogo:text> + <ogo:position>(23 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h2</ogo:name> + <ogo:text>9</ogo:text> + <ogo:position>(33 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h3</ogo:name> + <ogo:text>5</ogo:text> + <ogo:position>(43 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(45 -27)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>180</ogo:rotation> + <ogo:name>12AX7 (a)</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>Triode</ogo:symbol> + <ogo:position>(1095 360)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V3</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>12AX7A(a)</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>XV_@refdes %c %g %p %h1 %h2 %h3 @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 -27)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>p</ogo:name> + <ogo:text>1</ogo:text> + <ogo:position>(34 -29)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>g</ogo:name> + <ogo:text>2</ogo:text> + <ogo:position>(5 -2)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>c</ogo:name> + <ogo:text>3</ogo:text> + <ogo:position>(62 30)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h1</ogo:name> + <ogo:text>4</ogo:text> + <ogo:position>(23 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h2</ogo:name> + <ogo:text>9</ogo:text> + <ogo:position>(33 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h3</ogo:name> + <ogo:text>5</ogo:text> + <ogo:position>(43 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(45 -27)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>270</ogo:rotation> + <ogo:name>12AX7 (a)</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>Triode</ogo:symbol> + <ogo:position>(1112.5 312.5)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>12AX7A(a)</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>XV_@refdes %c %g %p %h1 %h2 %h3 @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 -27)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>p</ogo:name> + <ogo:text>1</ogo:text> + <ogo:position>(34 -29)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>g</ogo:name> + <ogo:text>2</ogo:text> + <ogo:position>(5 -2)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>c</ogo:name> + <ogo:text>3</ogo:text> + <ogo:position>(62 30)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h1</ogo:name> + <ogo:text>4</ogo:text> + <ogo:position>(23 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h2</ogo:name> + <ogo:text>9</ogo:text> + <ogo:position>(33 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h3</ogo:name> + <ogo:text>5</ogo:text> + <ogo:position>(43 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(45 -27)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + </ogo:parts> + <ogo:wires> + <ogo:wire> + <ogo:points>(310 190)(1420 190)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1420 190)(1420 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1420 200)(310 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 200)(310 210)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 210)(1420 210)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1420 210)(1420 230)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1420 230)(1410 230)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1410 230)(1410 220)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1410 220)(310 220)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 220)(310 230)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 230)(1400 230)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1400 230)(1400 250)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1400 250)(1400 260)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1400 260)(1390 260)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1390 260)(1390 250)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1390 250)(1390 240)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1390 240)(310 240)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 240)(310 250)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 250)(1380 250)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1380 250)(1380 260)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1380 260)(310 260)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 260)(310 270)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 270)(1450 270)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 270)(1450 280)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 280)(310 280)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 280)(310 290)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 290)(1450 290)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 290)(1450 300)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 300)(310 300)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 300)(310 310)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 310)(1450 310)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 310)(1450 320)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 320)(310 320)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 320)(310 330)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 330)(1450 330)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 330)(1450 340)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 340)(310 340)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 340)(310 350)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 350)(1450 350)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 350)(1450 360)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 360)(310 360)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 360)(310 370)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 370)(1450 370)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 370)(1450 380)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 380)(310 380)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 380)(310 390)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 390)(1450 390)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 390)(1450 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 400)(310 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 400)(310 410)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 410)(1450 410)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 410)(1450 420)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 420)(310 420)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 420)(310 430)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 430)(1450 430)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 430)(1450 440)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 440)(310 440)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 440)(310 450)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 450)(1450 450)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 450)(1450 460)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 460)(310 460)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 460)(310 470)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 470)(1450 470)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 470)(1450 480)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 480)(310 480)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 480)(310 490)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 490)(1450 490)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 490)(1450 500)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 500)(310 500)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 500)(310 510)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 510)(1450 510)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 510)(1450 520)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(1450 520)(310 520)</ogo:points> + </ogo:wire> + </ogo:wires> + <ogo:textboxes/> +</ogo:schematic> diff --git a/test/files/bug-115-simple.oregano b/test/files/bug-115-simple.oregano new file mode 100644 index 0000000..047a1fe --- /dev/null +++ b/test/files/bug-115-simple.oregano @@ -0,0 +1,82 @@ +<?xml version="1.0"?> +<ogo:schematic xmlns:ogo="http://www.dtek.chalmers.se/~d4hult/oregano/v1"> + <ogo:author/> + <ogo:title>(null)</ogo:title> + <ogo:comments/> + <ogo:grid> + <ogo:visible>true</ogo:visible> + <ogo:snap>true</ogo:snap> + </ogo:grid> + <ogo:simulation-settings> + <ogo:transient> + <ogo:enabled>true</ogo:enabled> + <ogo:start>0</ogo:start> + <ogo:stop>0.005</ogo:stop> + <ogo:step>0.0001</ogo:step> + <ogo:step-enabled>false</ogo:step-enabled> + <ogo:init-conditions>false</ogo:init-conditions> + </ogo:transient> + <ogo:ac> + <ogo:enabled>false</ogo:enabled> + <ogo:npoints>50</ogo:npoints> + <ogo:start>1</ogo:start> + <ogo:stop>1e+06</ogo:stop> + </ogo:ac> + <ogo:dc-sweep> + <ogo:enabled>false</ogo:enabled> + <ogo:vsrc1/> + <ogo:start1>0</ogo:start1> + <ogo:stop1>0</ogo:stop1> + <ogo:step1>0</ogo:step1> + </ogo:dc-sweep> + <ogo:fourier> + <ogo:enabled>false</ogo:enabled> + <ogo:freq>0</ogo:freq> + <ogo:vout>(null)</ogo:vout> + </ogo:fourier> + </ogo:simulation-settings> + <ogo:parts> + <ogo:part> + <ogo:rotation>90</ogo:rotation> + <ogo:name>Resistor</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>resistor</ogo:symbol> + <ogo:position>(520 350)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>R1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Res</ogo:name> + <ogo:value>1k</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>R_@refdes %1 %2 @res</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 0)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Resistance</ogo:name> + <ogo:text>@res</ogo:text> + <ogo:position>(0 37)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + </ogo:parts> + <ogo:wires> + <ogo:wire> + <ogo:points>(510 390)(510 460)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(510 350)(510 230)</ogo:points> + </ogo:wire> + </ogo:wires> + <ogo:textboxes/> +</ogo:schematic> diff --git a/test/files/bug-115.oregano b/test/files/bug-115.oregano new file mode 100644 index 0000000..b437d6d --- /dev/null +++ b/test/files/bug-115.oregano @@ -0,0 +1,287 @@ +<?xml version="1.0"?> +<ogo:schematic xmlns:ogo="http://www.dtek.chalmers.se/~d4hult/oregano/v1"> + <ogo:author/> + <ogo:title>bug-115.oregano</ogo:title> + <ogo:comments/> + <ogo:grid> + <ogo:visible>true</ogo:visible> + <ogo:snap>true</ogo:snap> + </ogo:grid> + <ogo:simulation-settings> + <ogo:transient> + <ogo:enabled>true</ogo:enabled> + <ogo:start>0</ogo:start> + <ogo:stop>0.005</ogo:stop> + <ogo:step>0.0001</ogo:step> + <ogo:step-enabled>false</ogo:step-enabled> + <ogo:init-conditions>false</ogo:init-conditions> + </ogo:transient> + <ogo:ac> + <ogo:enabled>false</ogo:enabled> + <ogo:npoints>50</ogo:npoints> + <ogo:start>1</ogo:start> + <ogo:stop>1e+06</ogo:stop> + </ogo:ac> + <ogo:dc-sweep> + <ogo:enabled>false</ogo:enabled> + <ogo:vsrc1/> + <ogo:start1>0</ogo:start1> + <ogo:stop1>0</ogo:stop1> + <ogo:step1>0</ogo:step1> + </ogo:dc-sweep> + <ogo:fourier> + <ogo:enabled>false</ogo:enabled> + <ogo:freq>0</ogo:freq> + <ogo:vout>0</ogo:vout> + </ogo:fourier> + </ogo:simulation-settings> + <ogo:parts> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>Test Clamp</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>Clamp</ogo:symbol> + <ogo:position>(280 220)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>internal</ogo:name> + <ogo:value>clamp</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>type</ogo:name> + <ogo:value>v</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>ac_type</ogo:name> + <ogo:value>m</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>ac_db</ogo:name> + <ogo:value>false</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels/> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>VDC</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>VDC</ogo:symbol> + <ogo:position>(270 110)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>VKK1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>DC</ogo:name> + <ogo:value>1.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>V_@refdes %+ %- dc @DC</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(25 10)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>Gnd</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>Ground</ogo:symbol> + <ogo:position>(260 320)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>internal</ogo:name> + <ogo:value>ground</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels/> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>Resistor</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>resistor</ogo:symbol> + <ogo:position>(180 240)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>R1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Res</ogo:name> + <ogo:value>1k</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>R_@refdes %1 %2 @res</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 0)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Resistance</ogo:name> + <ogo:text>@res</ogo:text> + <ogo:position>(0 30)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>BJT NPN</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>NPN</ogo:symbol> + <ogo:position>(260 230)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>Q1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>NPN10</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>Q_@refdes %c %b %e @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(0 0)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(30 40)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>VSIN</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>VSIN</ogo:symbol> + <ogo:position>(120 280)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Offset</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Amplitude</ogo:name> + <ogo:value>1.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Frequency</ogo:name> + <ogo:value>1.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>DC</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>AC</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>V_@refdes %+ %- dc @dc ac @ac sin(@Offset @Amplitude @Frequency 0 0)</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 10)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>90</ogo:rotation> + <ogo:name>Resistor</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>resistor</ogo:symbol> + <ogo:position>(290 170)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>RK1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Res</ogo:name> + <ogo:value>1k</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>R_@refdes %1 %2 @res</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 0)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Resistance</ogo:name> + <ogo:text>@res</ogo:text> + <ogo:position>(0 30)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + </ogo:parts> + <ogo:wires> + <ogo:wire> + <ogo:points>(340 100)(340 320)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(280 100)(340 100)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(280 110)(280 100)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(280 150)(280 170)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(280 210)(280 220)</ogo:points> + <ogo:points>(280 220)(280 230)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(130 320)(280 320)</ogo:points> + <ogo:points>(280 320)(260 320)</ogo:points> + <ogo:points>(260 320)(340 320)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 250)(260 250)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(130 250)(180 250)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(130 250)(130 280)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(280 270)(280 320)</ogo:points> + </ogo:wire> + </ogo:wires> + <ogo:textboxes/> +</ogo:schematic> diff --git a/test/files/bug-116.oregano b/test/files/bug-116.oregano new file mode 100644 index 0000000..6e7c5c4 --- /dev/null +++ b/test/files/bug-116.oregano @@ -0,0 +1,129 @@ +<?xml version="1.0"?> +<ogo:schematic xmlns:ogo="http://www.dtek.chalmers.se/~d4hult/oregano/v1"> + <ogo:author/> + <ogo:title>(null)</ogo:title> + <ogo:comments/> + <ogo:grid> + <ogo:visible>true</ogo:visible> + <ogo:snap>true</ogo:snap> + </ogo:grid> + <ogo:simulation-settings> + <ogo:transient> + <ogo:enabled>true</ogo:enabled> + <ogo:start>0</ogo:start> + <ogo:stop>0.005</ogo:stop> + <ogo:step>0.0001</ogo:step> + <ogo:step-enabled>false</ogo:step-enabled> + <ogo:init-conditions>false</ogo:init-conditions> + </ogo:transient> + <ogo:ac> + <ogo:enabled>false</ogo:enabled> + <ogo:npoints>50</ogo:npoints> + <ogo:start>1</ogo:start> + <ogo:stop>1e+06</ogo:stop> + </ogo:ac> + <ogo:dc-sweep> + <ogo:enabled>false</ogo:enabled> + <ogo:vsrc1/> + <ogo:start1>0</ogo:start1> + <ogo:stop1>0</ogo:stop1> + <ogo:step1>0</ogo:step1> + </ogo:dc-sweep> + <ogo:fourier> + <ogo:enabled>false</ogo:enabled> + <ogo:freq>0</ogo:freq> + <ogo:vout>(null)</ogo:vout> + </ogo:fourier> + </ogo:simulation-settings> + <ogo:parts> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>BJT PNP-PHOTO</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>PNP-PHOTO</ogo:symbol> + <ogo:position>(550 290)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>Q1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>PNP-PHOTO</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>Q_@refdes %c %b %e @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(0 0)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(30 40)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>AC Power 110V</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>power110</ogo:symbol> + <ogo:position>(460 290)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Offset</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Amplitude</ogo:name> + <ogo:value>110.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Frequency</ogo:name> + <ogo:value>60.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>DC</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>AC</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>V_@refdes %1 %2 %3 dc @dc ac @ac sin(@Offset @Amplitude @Frequency 0 0)</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(10 -20)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Frequency</ogo:name> + <ogo:text>60 Hz</ogo:text> + <ogo:position>(30 -10)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>V</ogo:name> + <ogo:text>110 V</ogo:text> + <ogo:position>(30 -25)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + </ogo:parts> + <ogo:wires/> + <ogo:textboxes/> +</ogo:schematic> diff --git a/test/files/bug-117.oregano b/test/files/bug-117.oregano new file mode 100644 index 0000000..c86f975 --- /dev/null +++ b/test/files/bug-117.oregano @@ -0,0 +1,432 @@ +<?xml version="1.0"?> +<ogo:schematic xmlns:ogo="http://www.dtek.chalmers.se/~d4hult/oregano/v1"> + <ogo:author/> + <ogo:title>part_pin_test_field.oregano</ogo:title> + <ogo:comments/> + <ogo:grid> + <ogo:visible>true</ogo:visible> + <ogo:snap>true</ogo:snap> + </ogo:grid> + <ogo:simulation-settings> + <ogo:transient> + <ogo:enabled>true</ogo:enabled> + <ogo:start>0</ogo:start> + <ogo:stop>0.005</ogo:stop> + <ogo:step>0.0001</ogo:step> + <ogo:step-enabled>false</ogo:step-enabled> + <ogo:init-conditions>false</ogo:init-conditions> + </ogo:transient> + <ogo:ac> + <ogo:enabled>false</ogo:enabled> + <ogo:npoints>50</ogo:npoints> + <ogo:start>1</ogo:start> + <ogo:stop>1e+06</ogo:stop> + </ogo:ac> + <ogo:dc-sweep> + <ogo:enabled>false</ogo:enabled> + <ogo:vsrc1/> + <ogo:start1>0</ogo:start1> + <ogo:stop1>0</ogo:stop1> + <ogo:step1>0</ogo:step1> + </ogo:dc-sweep> + <ogo:fourier> + <ogo:enabled>false</ogo:enabled> + <ogo:freq>0</ogo:freq> + <ogo:vout>(null)</ogo:vout> + </ogo:fourier> + </ogo:simulation-settings> + <ogo:parts> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>VCCS</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>VCCS</ogo:symbol> + <ogo:position>(810 260)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>G1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Transconductance</ogo:name> + <ogo:value>1.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>NCP</ogo:name> + <ogo:value>0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>NCN</ogo:name> + <ogo:value>0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>G_@refdes %+ %- @ncp @ncn @transconductance</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 10)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Controlling voltage</ogo:name> + <ogo:text>@transconductance V ( @ncp , @ncn )</ogo:text> + <ogo:position>(15 40)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>AC Power 110V</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>power110</ogo:symbol> + <ogo:position>(700 330)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V2</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Offset</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Amplitude</ogo:name> + <ogo:value>110.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Frequency</ogo:name> + <ogo:value>60.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>DC</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>AC</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>V_@refdes %1 %2 %3 dc @dc ac @ac sin(@Offset @Amplitude @Frequency 0 0)</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(10 -20)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Frequency</ogo:name> + <ogo:text>60 Hz</ogo:text> + <ogo:position>(30 -10)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>V</ogo:name> + <ogo:text>110 V</ogo:text> + <ogo:position>(30 -25)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>Valve Triode + Heating</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>Triode</ogo:symbol> + <ogo:position>(390 340)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V4</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>Triode Type</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>XV_@refdes %c %g %p %h1 %h2 %h3 @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 -27)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>p</ogo:name> + <ogo:text>1</ogo:text> + <ogo:position>(34 -29)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>g</ogo:name> + <ogo:text>2</ogo:text> + <ogo:position>(5 -2)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>c</ogo:name> + <ogo:text>3</ogo:text> + <ogo:position>(62 30)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h1</ogo:name> + <ogo:text>4</ogo:text> + <ogo:position>(23 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h2</ogo:name> + <ogo:text>9</ogo:text> + <ogo:position>(33 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>h3</ogo:name> + <ogo:text>5</ogo:text> + <ogo:position>(43 38)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(45 -27)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>Diode Bridge</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>bridge-d</ogo:symbol> + <ogo:position>(500 410)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>D1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>Diode Bridge</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>X_@refdes %1 %2 %3 %4 @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(-10 -15)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(30 40)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>AC Power 110V</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>power110</ogo:symbol> + <ogo:position>(740 430)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V3</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Offset</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Amplitude</ogo:name> + <ogo:value>110.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Frequency</ogo:name> + <ogo:value>60.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>DC</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>AC</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>V_@refdes %1 %2 %3 dc @dc ac @ac sin(@Offset @Amplitude @Frequency 0 0)</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(10 -20)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Frequency</ogo:name> + <ogo:text>60 Hz</ogo:text> + <ogo:position>(30 -10)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>V</ogo:name> + <ogo:text>110 V</ogo:text> + <ogo:position>(30 -25)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>AC Power 110V</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>power110</ogo:symbol> + <ogo:position>(620 340)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Offset</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Amplitude</ogo:name> + <ogo:value>110.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Frequency</ogo:name> + <ogo:value>60.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>DC</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>AC</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>V_@refdes %1 %2 %3 dc @dc ac @ac sin(@Offset @Amplitude @Frequency 0 0)</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(10 -20)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Frequency</ogo:name> + <ogo:text>60 Hz</ogo:text> + <ogo:position>(30 -10)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>V</ogo:name> + <ogo:text>110 V</ogo:text> + <ogo:position>(30 -25)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + </ogo:parts> + <ogo:wires> + <ogo:wire> + <ogo:points>(860 220)(220 220)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 230)(860 230)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(860 260)(220 260)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 270)(860 270)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(860 280)(220 280)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 290)(860 290)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(860 300)(220 300)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 310)(860 310)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(860 320)(220 320)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 340)(860 340)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(860 350)(220 350)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 360)(860 360)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(860 370)(220 370)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 380)(860 380)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(860 390)(220 390)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 400)(860 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(860 420)(220 420)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 430)(860 430)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(860 460)(220 460)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 450)(860 450)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(860 480)(220 480)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 440)(860 440)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 500)(860 500)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 490)(860 490)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 330)(860 330)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 210)(860 210)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 240)(860 240)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 410)(860 410)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 250)(860 250)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(220 470)(860 470)</ogo:points> + </ogo:wire> + </ogo:wires> + <ogo:textboxes/> +</ogo:schematic> diff --git a/test/files/bug-130.oregano b/test/files/bug-130.oregano new file mode 100644 index 0000000..3b24158 --- /dev/null +++ b/test/files/bug-130.oregano @@ -0,0 +1,49 @@ +<?xml version="1.0"?> +<ogo:schematic xmlns:ogo="https://beerbach.me/project/oregano/ns/v1"> + <ogo:author>bernhard</ogo:author> + <ogo:title>bug-130.oregano</ogo:title> + <ogo:comments/> + <ogo:grid> + <ogo:visible>true</ogo:visible> + <ogo:snap>true</ogo:snap> + </ogo:grid> + <ogo:simulation-settings> + <ogo:transient> + <ogo:enabled>true</ogo:enabled> + <ogo:start>0</ogo:start> + <ogo:stop>0.005</ogo:stop> + <ogo:step>0.0001</ogo:step> + <ogo:step-enabled>false</ogo:step-enabled> + <ogo:init-conditions>false</ogo:init-conditions> + </ogo:transient> + <ogo:ac> + <ogo:enabled>false</ogo:enabled> + <ogo:npoints>50</ogo:npoints> + <ogo:start>1</ogo:start> + <ogo:stop>1e+06</ogo:stop> + </ogo:ac> + <ogo:dc-sweep> + <ogo:enabled>false</ogo:enabled> + <ogo:vsrc1/> + <ogo:start1>0</ogo:start1> + <ogo:stop1>0</ogo:stop1> + <ogo:step1>0</ogo:step1> + </ogo:dc-sweep> + <ogo:fourier> + <ogo:enabled>false</ogo:enabled> + <ogo:freq>0</ogo:freq> + <ogo:vout>0</ogo:vout> + </ogo:fourier> + </ogo:simulation-settings> + <ogo:parts/> + <ogo:wires> + <ogo:wire> + <ogo:points>(540 150)(540 220)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 220)(540 220)</ogo:points> + <ogo:points>(540 220)(620 220)</ogo:points> + </ogo:wire> + </ogo:wires> + <ogo:textboxes/> +</ogo:schematic> diff --git a/test/files/bug-93.oregano b/test/files/bug-93.oregano new file mode 100644 index 0000000..0b5755c --- /dev/null +++ b/test/files/bug-93.oregano @@ -0,0 +1,93 @@ +<?xml version="1.0"?> +<ogo:schematic xmlns:ogo="http://www.dtek.chalmers.se/~d4hult/oregano/v1"> + <ogo:author/> + <ogo:title>(null)</ogo:title> + <ogo:comments/> + <ogo:grid> + <ogo:visible>true</ogo:visible> + <ogo:snap>true</ogo:snap> + </ogo:grid> + <ogo:simulation-settings> + <ogo:transient> + <ogo:enabled>true</ogo:enabled> + <ogo:start>0</ogo:start> + <ogo:stop>0.005</ogo:stop> + <ogo:step>0.0001</ogo:step> + <ogo:step-enabled>false</ogo:step-enabled> + <ogo:init-conditions>false</ogo:init-conditions> + </ogo:transient> + <ogo:ac> + <ogo:enabled>false</ogo:enabled> + <ogo:npoints>50</ogo:npoints> + <ogo:start>1</ogo:start> + <ogo:stop>1e+06</ogo:stop> + </ogo:ac> + <ogo:dc-sweep> + <ogo:enabled>false</ogo:enabled> + <ogo:vsrc1/> + <ogo:start1>0</ogo:start1> + <ogo:stop1>0</ogo:stop1> + <ogo:step1>0</ogo:step1> + </ogo:dc-sweep> + <ogo:fourier> + <ogo:enabled>false</ogo:enabled> + <ogo:freq>0</ogo:freq> + <ogo:vout>(null)</ogo:vout> + </ogo:fourier> + </ogo:simulation-settings> + <ogo:parts/> + <ogo:wires> + <ogo:wire> + <ogo:points>(320 200)(300 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(340 200)(320 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(350 200)(340 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(400 200)(350 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(470 200)(400 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(550 200)(470 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(490 200)(550 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(400 200)(490 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(360 200)(400 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(320 200)(360 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(670 200)(320 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(350 200)(670 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(330 200)(350 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(520 200)(330 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(310 200)(520 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(690 200)(310 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(230 200)(690 200)</ogo:points> + </ogo:wire> + </ogo:wires> + <ogo:textboxes/> +</ogo:schematic> diff --git a/test/files/old-not-snapped.oregano b/test/files/old-not-snapped.oregano new file mode 100644 index 0000000..5b56e1c --- /dev/null +++ b/test/files/old-not-snapped.oregano @@ -0,0 +1,511 @@ +<?xml version="1.0"?> +<ogo:schematic xmlns:ogo="http://www.dtek.chalmers.se/~d4hult/oregano/v1"> + <ogo:author/> + <ogo:title>rotation-text.oregano</ogo:title> + <ogo:comments/> + <ogo:grid> + <ogo:visible>true</ogo:visible> + <ogo:snap>true</ogo:snap> + </ogo:grid> + <ogo:simulation-settings> + <ogo:transient> + <ogo:enabled>true</ogo:enabled> + <ogo:start>0</ogo:start> + <ogo:stop>0.005</ogo:stop> + <ogo:step>0.0001</ogo:step> + <ogo:step-enabled>false</ogo:step-enabled> + <ogo:init-conditions>false</ogo:init-conditions> + </ogo:transient> + <ogo:ac> + <ogo:enabled>false</ogo:enabled> + <ogo:npoints>50</ogo:npoints> + <ogo:start>1</ogo:start> + <ogo:stop>1e+06</ogo:stop> + </ogo:ac> + <ogo:dc-sweep> + <ogo:enabled>false</ogo:enabled> + <ogo:vsrc1/> + <ogo:start1>0</ogo:start1> + <ogo:stop1>0</ogo:stop1> + <ogo:step1>0</ogo:step1> + </ogo:dc-sweep> + <ogo:fourier> + <ogo:enabled>false</ogo:enabled> + <ogo:freq>0</ogo:freq> + <ogo:vout>0</ogo:vout> + </ogo:fourier> + </ogo:simulation-settings> + <ogo:parts> + <ogo:part> + <ogo:rotation>90</ogo:rotation> + <ogo:name>BJT PNP-DAR</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>PNP-D</ogo:symbol> + <ogo:position>(580 250)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>Q1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>PNP</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>Q_@refdes %c %b %e @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(0 0)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(-20 40)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>AC Power 110V</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>power110</ogo:symbol> + <ogo:position>(630 240)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>V1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Offset</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Amplitude</ogo:name> + <ogo:value>110.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Frequency</ogo:name> + <ogo:value>60.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>DC</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>AC</ogo:name> + <ogo:value>0.0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>V_@refdes %1 %2 %3 dc @dc ac @ac sin(@Offset @Amplitude @Frequency 0 0)</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(10 -20)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Frequency</ogo:name> + <ogo:text>60 Hz</ogo:text> + <ogo:position>(30 -10)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>V</ogo:name> + <ogo:text>110 V</ogo:text> + <ogo:position>(30 -25)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>90</ogo:rotation> + <ogo:name>Crystal</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>crystal</ogo:symbol> + <ogo:position>(710 250)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>X1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Freq</ogo:name> + <ogo:value>3.58MHz</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>X_@refdes %1 %2 @freq</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 0)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Frequency</ogo:name> + <ogo:text>@freq</ogo:text> + <ogo:position>(15 30)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>90</ogo:rotation> + <ogo:name>Diode Tunnel</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>d_tunnel</ogo:symbol> + <ogo:position>(450 270)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>D1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Model</ogo:name> + <ogo:value>tunneldiode</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>D_@refdes %1 %2 @model</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(0 35)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Model</ogo:name> + <ogo:text>@model</ogo:text> + <ogo:position>(-5 -5)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>90</ogo:rotation> + <ogo:name>Capacitor</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>capacitor</ogo:symbol> + <ogo:position>(842.5 332.5)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>C5</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Cap</ogo:name> + <ogo:value>1u</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>IC</ogo:name> + <ogo:value>0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>C_@refdes %1 %2 @cap IC=@IC</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 -10)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Capacitance</ogo:name> + <ogo:text>@cap</ogo:text> + <ogo:position>(15 40)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>90</ogo:rotation> + <ogo:name>Capacitor</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>capacitor</ogo:symbol> + <ogo:position>(842.5 302.5)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>C4</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Cap</ogo:name> + <ogo:value>1u</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>IC</ogo:name> + <ogo:value>0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>C_@refdes %1 %2 @cap IC=@IC</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 -10)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Capacitance</ogo:name> + <ogo:text>@cap</ogo:text> + <ogo:position>(15 40)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>90</ogo:rotation> + <ogo:name>Capacitor Pol.</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>cpol</ogo:symbol> + <ogo:position>(513 223)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>C3</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Cap</ogo:name> + <ogo:value>1u</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>C_@refdes %1 %2 @cap</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 0)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Capacitance</ogo:name> + <ogo:text>@cap</ogo:text> + <ogo:position>(15 30)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>0</ogo:rotation> + <ogo:name>Antenna</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>antenna</ogo:symbol> + <ogo:position>(570 160)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>internal</ogo:name> + <ogo:value>antenna</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels/> + </ogo:part> + <ogo:part> + <ogo:rotation>89</ogo:rotation> + <ogo:name>Capacitor</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>capacitor</ogo:symbol> + <ogo:position>(692.237 362.371)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>C2</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Cap</ogo:name> + <ogo:value>1u</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>IC</ogo:name> + <ogo:value>0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>C_@refdes %1 %2 @cap IC=@IC</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 -10)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Capacitance</ogo:name> + <ogo:text>@cap</ogo:text> + <ogo:position>(15 40)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + <ogo:part> + <ogo:rotation>90</ogo:rotation> + <ogo:name>Capacitor</ogo:name> + <ogo:library>Default</ogo:library> + <ogo:symbol>capacitor</ogo:symbol> + <ogo:position>(672.5 282.5)</ogo:position> + <ogo:properties> + <ogo:property> + <ogo:name>Refdes</ogo:name> + <ogo:value>C1</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Cap</ogo:name> + <ogo:value>1u</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>IC</ogo:name> + <ogo:value>0</ogo:value> + </ogo:property> + <ogo:property> + <ogo:name>Template</ogo:name> + <ogo:value>C_@refdes %1 %2 @cap IC=@IC</ogo:value> + </ogo:property> + </ogo:properties> + <ogo:labels> + <ogo:label> + <ogo:name>Reference designator</ogo:name> + <ogo:text>@refdes</ogo:text> + <ogo:position>(15 -10)</ogo:position> + </ogo:label> + <ogo:label> + <ogo:name>Capacitance</ogo:name> + <ogo:text>@cap</ogo:text> + <ogo:position>(15 40)</ogo:position> + </ogo:label> + </ogo:labels> + </ogo:part> + </ogo:parts> + <ogo:wires> + <ogo:wire> + <ogo:points>(370 190)(700 190)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(700 190)(700 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(400 200)(690 200)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(690 200)(690 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(410 210)(680 210)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(680 210)(680 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(410 220)(670 220)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(670 220)(670 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(660 400)(660 230)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(660 230)(410 230)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(650 400)(650 240)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(650 240)(410 240)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(640 400)(640 250)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(640 250)(410 250)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(630 400)(630 260)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(630 260)(410 260)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(410 260)(410 270)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(410 270)(620 270)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(620 270)(620 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(620 400)(610 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(610 400)(610 280)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(610 280)(410 280)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(410 280)(410 290)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(410 290)(600 290)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(600 290)(600 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(600 400)(590 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(590 400)(590 300)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(590 300)(410 300)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(410 300)(410 310)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(410 310)(580 310)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(580 310)(580 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(580 400)(570 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(570 400)(570 320)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(570 320)(410 320)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(410 320)(410 330)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(410 330)(560 330)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(560 330)(560 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(560 400)(550 400)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(550 400)(550 340)</ogo:points> + </ogo:wire> + <ogo:wire> + <ogo:points>(550 340)(410 340)</ogo:points> + </ogo:wire> + </ogo:wires> + <ogo:textboxes/> +</ogo:schematic> diff --git a/test/files/test_engine_ngspice - memory leak analysis.txt b/test/files/test_engine_ngspice - memory leak analysis.txt new file mode 100644 index 0000000..598be5d --- /dev/null +++ b/test/files/test_engine_ngspice - memory leak analysis.txt @@ -0,0 +1,105 @@ +momory leak analysis +==================== + +using netlist of file tryProgressBar.oregano as input + + +static memory consumption +------------------------- + +1232 bytes oregano_spice_new +272 bytes g_main_loop_new + + + +t_end = 2.5e-9 +consumption after 0 cycles: 190075 +consumption after 1 cycle : 212171 +consumption after 2 cycles: 222007 +consumption after 3 cycles: 233859 +consumption after 4 cycles: 245679 +consumption after 5 cycles: 255515 +consumption after 6 cycles: 265351 +consumption after 7 cycles: 275187 +consumption after 8 cycles: 285023 +consumption after 9 cycles: 295867 +consumption after 10 cycles: 306695 + +delta: +0-1 22096 +1-2 9836 +2-3 11852 +3-4 11820 +4-5 9836 +5-6 9836 +6-7 9836 +7-8 9836 +8-9 10844 +9-10 10828 + +t_end = 2.5e-8 +consumption after 0 cycles: 190075 +consumption after 1 cycle : 212171 +consumption after 2 cycles: 222007 +consumption after 3 cycles: 233859 +consumption after 4 cycles: 245679 +consumption after 5 cycles: 255515 +consumption after 6 cycles: 265351 +consumption after 7 cycles: 275187 +consumption after 8 cycles: 284527 +consumption after 9 cycles: 295371 +consumption after 10 cycles: 305703 + +delta: +0-1 22096 +1-2 9836 +2-3 11852 +3-4 11820 +4-5 9836 +5-6 9836 +6-7 9836 +7-8 9340 +8-9 10844 +9-10 10332 + + +now we know that there is no memory leak in +data computation. We know that there are +leaks in the software architecture configuraion + + +using g_thread_unref + +t_end = 2.5e-9 +consumption after 0 cycles: 190075 +consumption after 10 cycles: 296615 + +using g_main_loop_unref + +t_end = 2.5e-9 +consumption after 0 cycles: 190075 +consumption after 10 cycles: 296455 + +using g_main_context_unref + +t_end = 2.5e-9 +consumption after 0 cycles: 190075 +consumption after 10 cycles: 289655 + +using g_source_unref for channel listener +using g_io_channel_unref +using g_io_channel_set_close_on_unref + +t_end = 2.5e-9 +consumption after 0 cycles: 190075 +consumption after 1 cycles: 203231 +consumption after 2 cycles: 203231 +consumption after 3 cycles: 204239 +consumption after 4 cycles: 206223 +consumption after 5 cycles: 206223 +consumption after 6 cycles: 206223 +consumption after 7 cycles: 206223 +consumption after 8 cycles: 206223 +consumption after 9 cycles: 205215 +consumption after 10 cycles: 205215 + diff --git a/test/helper.c b/test/helper.c new file mode 100644 index 0000000..863df97 --- /dev/null +++ b/test/helper.c @@ -0,0 +1,14 @@ +#include <glib.h> + +static gchar* get_test_base_dir() { + g_autofree gchar *cwd = g_get_current_dir(); + + g_autofree gchar *test_file = g_strdup_printf("%s/test/test.c", cwd); + while (!g_file_test(test_file, G_FILE_TEST_EXISTS)) { + gchar **split = g_regex_split_simple("\\/*(?:.(?!\\/))+$", cwd, 0, 0); + cwd = g_strdup(*split); + g_strfreev(split); + test_file = g_strdup_printf("%s/test/test.c", cwd); + } + return g_strdup_printf("%s/test", cwd); +} diff --git a/test/test-files/test_engine_ngspice_watcher/basic/input.netlist b/test/test-files/test_engine_ngspice_watcher/basic/input.netlist new file mode 100644 index 0000000..bc2bc3f --- /dev/null +++ b/test/test-files/test_engine_ngspice_watcher/basic/input.netlist @@ -0,0 +1,24 @@ +* /home/michi/tryProgressBar.oregano +*---------------------------------------------- +* ngspice - NETLIST +.options OUT=120 +*------------- Models ------------------------- +.include /usr/local/share/oregano/models/1N4148.model +*------------- Circuit Description------------- +V_V3 5 1 dc 0 +R_R1 3 0 10k +D_D1 5 3 D1N4148 +S1 1 0 2 0 M_S1 +.model M_S1 sw(VT=20 VH=0.0 RON=0.1 ROFF=100G) +V_V2 2 0 dc 0.0 ac 0.0 PULSE -5 25 0.0 0 0 1.0u 10u +L_L1 4 1 300uH +V_V1 4 0 dc 20 +C_C1 3 0 100u IC=60 + +*---------------------------------------------- +.tran 1.000000e-11 2.500000e-09 0.000000e+00 uic +.print tran all + +.op + +.END
\ No newline at end of file diff --git a/test/test-files/test_engine_ngspice_watcher/basic/result/actual.txt b/test/test-files/test_engine_ngspice_watcher/basic/result/actual.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/test-files/test_engine_ngspice_watcher/basic/result/actual.txt diff --git a/test/test-files/test_engine_ngspice_watcher/basic/result/expected.txt b/test/test-files/test_engine_ngspice_watcher/basic/result/expected.txt new file mode 100644 index 0000000..d2c3d21 --- /dev/null +++ b/test/test-files/test_engine_ngspice_watcher/basic/result/expected.txt @@ -0,0 +1,1176 @@ + +Circuit: * /home/michi/tryprogressbar.oregano + +Doing analysis at TEMP = 27.000000 and TNOM = 27.000000 + + +No. of Data Rows : 1 + +Initial Transient Solution +-------------------------- + +Node Voltage +---- ------- +5 0 +1 0 +3 0 +2 0 +4 0 +l_l1#branch 0 +v_v1#branch 0 +v_v2#branch 0 +v_v3#branch 0 + + +No. of Data Rows : 284 + Node Voltage + ---- ------- + ---- ------- + V(4) 2.000000e+01 + V(2) 0.000000e+00 + V(3) 1.934065e+01 + V(1) 2.000000e+01 + V(5) 2.000000e+01 + + Source Current + ------ ------- + + v_v3#branch -1.93406e-03 + v_v2#branch 0.000000e+00 + v_v1#branch -1.93406e-03 + l_l1#branch 1.934065e-03 + + Capacitor models (Fixed capacitor) + model C + + cap 0 + cj 0 + cjsw 0 + defw 1e-05 + defl 0 + narrow 0 + short 0 + del 0 + tc1 0 + tc2 0 + di 0 + thick 0 + bv_max 1e+99 + + Diode models (Junction Diode model) + model d1n4148 + + level 1 + is 1e-13 + jsw 0 + rs 16 + trs 0 + trs2 0 + n 1 + ns 1 + tt 1.2e-08 + ttt1 0 + ttt2 0 + cjo 2e-12 + vj 1 + m 0.5 + tm1 0 + tm2 0 + cjp 0 + php 1 + mjsw 0.33 + ikf 0 + ikr 0 + nbv 1 + area 1 + pj 0 + tlev 0 + tlevc 0 + eg 1.11 + xti 3 + cta 0 + ctp 0 + ctp 0 + tpb 0 + tphp 0 + jtun 0 + jtunsw 0 + ntun 30 + xtitun 3 + keg 1 + kf 0 + af 1 + fc 0.5 + fcs 0.5 + bv 100 + ibv 3.867e-10 + tcv 0 + fv_max 1e+99 + bv_max 1e+99 + + Inductor models (Fixed inductor) + model L + + ind 0 + tc1 0 + tc2 0 + csect 0 + length 0 + nt 0 + mu 0 + + Resistor models (Simple linear resistor) + model R + + rsh 0 + narrow 0 + short 0 + tc1 0 + tc2 0 + defw 1e-05 + l 1e-05 + kf 0 + af 0 + r 0 + bv_max 1e+99 + + Switch models (Ideal voltage controlled switch) + model m_s1 + + + Capacitor: Fixed capacitor + device c_c1 + model C +capacitance 0.0001 + cap 0.0001 + c 0.0001 + dtemp 0 + bv_max 1e+99 + i -0.00599982 + p -0.359989 + + Diode: Junction Diode model + device d_d1 + model d1n4148 + vd -60 + id 1.66255e-09 + gd 0.103611 + cd 2.56074e-13 + + Inductor: Fixed inductor + device l_l1 + model L + inductance 0.0003 + dtemp 0 + nt 0 + flux 4.94978e-08 + v 20 + i 0.000164993 + p 0.00329985 + + Resistor: Simple linear resistor + device r_r1 + model R + resistance 10000 + ac 10000 + dtemp 0 + bv_max 1e+99 + noisy 1 + i 0.006 + p 0.36 + + Switch: Ideal voltage controlled switch + device s1 + model m_s1 + i 0.000164991 + p 2.72221e-09 + + Vsource: Independent voltage source + device v_v1 v_v2 v_v3 + dc 20 0 0 + acmag 0 0 0 + pulse - -5 - + 25 + 0 + 0 + 0 + 1e-06 + 1e-05 + sine - -5 - + 25 + 0 + 0 + 0 + 1e-06 + 1e-05 + sin - -5 - + 25 + 0 + 0 + 0 + 1e-06 + 1e-05 + exp - -5 - + 25 + 0 + 0 + 0 + 1e-06 + 1e-05 + pwl - -5 - + 25 + 0 + 0 + 0 + 1e-06 + 1e-05 + sffm - -5 - + 25 + 0 + 0 + 0 + 1e-06 + 1e-05 + am - -5 - + 25 + 0 + 0 + 0 + 1e-06 + 1e-05 + trnoise - -5 - + 25 + 0 + 0 + 0 + 1e-06 + 1e-05 + trrandom - -5 - + 25 + 0 + 0 + 0 + 1e-06 + 1e-05 + i -0.000164993 0 -1.66255e-09 + p 0.00329986 -0 0 + + * /home/michi/tryprogressbar.oregano + Transient Analysis Fri Jun 9 21:36:56 2017 +-------------------------------------------------------------------------------- +Index time V(1) V(2) V(3) +-------------------------------------------------------------------------------- +0 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +1 1.000000e-13 6.000000e+01 -4.70000e+00 6.000000e+01 +2 2.000000e-13 6.000000e+01 -4.40000e+00 6.000000e+01 +3 4.000000e-13 6.000000e+01 -3.80000e+00 6.000000e+01 +4 8.000000e-13 6.000000e+01 -2.60000e+00 6.000000e+01 +5 1.600000e-12 6.000000e+01 -2.00000e-01 6.000000e+01 +6 3.200000e-12 5.999999e+01 4.600000e+00 6.000000e+01 +7 4.666667e-12 5.999999e+01 9.000000e+00 6.000000e+01 +8 5.358333e-12 5.999999e+01 1.107500e+01 6.000000e+01 +9 6.568750e-12 5.999998e+01 1.470625e+01 6.000000e+01 +10 6.903776e-12 5.999998e+01 1.571133e+01 6.000000e+01 +11 7.490072e-12 5.999998e+01 1.747021e+01 6.000000e+01 +12 7.652350e-12 5.999998e+01 1.795705e+01 6.000000e+01 +13 7.936337e-12 5.999998e+01 1.880901e+01 6.000000e+01 +14 8.014940e-12 5.999998e+01 1.904482e+01 6.000000e+01 +15 8.152496e-12 5.999998e+01 1.945749e+01 6.000000e+01 +16 8.190570e-12 5.999998e+01 1.957171e+01 6.000000e+01 +17 8.257199e-12 5.999998e+01 1.977160e+01 6.000000e+01 +18 8.275641e-12 5.999998e+01 1.982692e+01 6.000000e+01 +19 8.307914e-12 5.999998e+01 1.992374e+01 6.000000e+01 +20 8.339341e-12 3.724889e-01 2.001802e+01 6.000000e+01 +21 8.368989e-12 3.721389e-01 2.010697e+01 6.000000e+01 +22 8.415783e-12 3.715661e-01 2.024735e+01 6.000000e+01 +23 8.462595e-12 3.709686e-01 2.038778e+01 6.000000e+01 +24 8.556218e-12 3.697067e-01 2.066865e+01 6.000000e+01 +25 8.743465e-12 3.669207e-01 2.123039e+01 6.000000e+01 +26 9.117958e-12 3.603499e-01 2.235387e+01 6.000000e+01 +27 9.866944e-12 3.436482e-01 2.460083e+01 6.000000e+01 +28 1.000000e-11 3.402226e-01 2.500000e+01 6.000000e+01 +29 1.014980e-11 3.362220e-01 2.500000e+01 6.000000e+01 +30 1.044939e-11 3.277442e-01 2.500000e+01 6.000000e+01 +31 1.104858e-11 3.093324e-01 2.500000e+01 6.000000e+01 +32 1.224696e-11 2.687330e-01 2.500000e+01 6.000000e+01 +33 1.464371e-11 1.860234e-01 2.500000e+01 6.000000e+01 +34 1.943722e-11 6.687593e-02 2.500000e+01 6.000000e+01 +35 2.680459e-11 5.465349e-03 2.500000e+01 6.000000e+01 +36 3.505704e-11 7.712940e-06 2.500000e+01 6.000000e+01 +37 4.505704e-11 -6.02386e-07 2.500000e+01 6.000000e+01 +38 5.505704e-11 2.702691e-07 2.500000e+01 6.000000e+01 +39 6.505704e-11 2.593860e-07 2.500000e+01 6.000000e+01 +40 7.505704e-11 3.334843e-07 2.500000e+01 6.000000e+01 +41 8.505704e-11 3.994362e-07 2.500000e+01 6.000000e+01 +42 9.505704e-11 4.661716e-07 2.500000e+01 6.000000e+01 +43 1.050570e-10 5.328316e-07 2.500000e+01 6.000000e+01 +44 1.150570e-10 5.994989e-07 2.500000e+01 6.000000e+01 +45 1.250570e-10 6.661655e-07 2.500000e+01 6.000000e+01 +46 1.350570e-10 7.328321e-07 2.500000e+01 6.000000e+01 +47 1.450570e-10 7.994989e-07 2.500000e+01 6.000000e+01 +48 1.550570e-10 8.661655e-07 2.500000e+01 6.000000e+01 +49 1.650570e-10 9.328322e-07 2.500000e+01 6.000000e+01 +50 1.750570e-10 9.994988e-07 2.500000e+01 6.000000e+01 +51 1.850570e-10 1.066166e-06 2.500000e+01 6.000000e+01 +52 1.950570e-10 1.132832e-06 2.500000e+01 6.000000e+01 +53 2.050570e-10 1.199499e-06 2.500000e+01 6.000000e+01 +54 2.150570e-10 1.266165e-06 2.500000e+01 6.000000e+01 + +Index time V(1) V(2) V(3) +-------------------------------------------------------------------------------- +55 2.250570e-10 1.332832e-06 2.500000e+01 6.000000e+01 +56 2.350570e-10 1.399499e-06 2.500000e+01 6.000000e+01 +57 2.450570e-10 1.466165e-06 2.500000e+01 6.000000e+01 +58 2.550570e-10 1.532832e-06 2.500000e+01 6.000000e+01 +59 2.650570e-10 1.599499e-06 2.500000e+01 6.000000e+01 +60 2.750570e-10 1.666165e-06 2.500000e+01 6.000000e+01 +61 2.850570e-10 1.732832e-06 2.500000e+01 6.000000e+01 +62 2.950570e-10 1.799499e-06 2.500000e+01 6.000000e+01 +63 3.050570e-10 1.866165e-06 2.500000e+01 6.000000e+01 +64 3.150570e-10 1.932832e-06 2.500000e+01 6.000000e+01 +65 3.250570e-10 1.999499e-06 2.500000e+01 6.000000e+01 +66 3.350570e-10 2.066165e-06 2.500000e+01 6.000000e+01 +67 3.450570e-10 2.132832e-06 2.500000e+01 6.000000e+01 +68 3.550570e-10 2.199499e-06 2.500000e+01 6.000000e+01 +69 3.650570e-10 2.266165e-06 2.500000e+01 6.000000e+01 +70 3.750570e-10 2.332832e-06 2.500000e+01 6.000000e+01 +71 3.850570e-10 2.399499e-06 2.500000e+01 6.000000e+01 +72 3.950570e-10 2.466165e-06 2.500000e+01 6.000000e+01 +73 4.050570e-10 2.532832e-06 2.500000e+01 6.000000e+01 +74 4.150570e-10 2.599499e-06 2.500000e+01 6.000000e+01 +75 4.250570e-10 2.666166e-06 2.500000e+01 6.000000e+01 +76 4.350570e-10 2.732832e-06 2.500000e+01 6.000000e+01 +77 4.450570e-10 2.799499e-06 2.500000e+01 6.000000e+01 +78 4.550570e-10 2.866166e-06 2.500000e+01 6.000000e+01 +79 4.650570e-10 2.932832e-06 2.500000e+01 6.000000e+01 +80 4.750570e-10 2.999499e-06 2.500000e+01 6.000000e+01 +81 4.850570e-10 3.066165e-06 2.500000e+01 6.000000e+01 +82 4.950570e-10 3.132832e-06 2.500000e+01 6.000000e+01 +83 5.050570e-10 3.199498e-06 2.500000e+01 6.000000e+01 +84 5.150570e-10 3.266165e-06 2.500000e+01 6.000000e+01 +85 5.250570e-10 3.332832e-06 2.500000e+01 6.000000e+01 +86 5.350570e-10 3.399499e-06 2.500000e+01 6.000000e+01 +87 5.450570e-10 3.466166e-06 2.500000e+01 6.000000e+01 +88 5.550570e-10 3.532832e-06 2.500000e+01 6.000000e+01 +89 5.650570e-10 3.599499e-06 2.500000e+01 6.000000e+01 +90 5.750570e-10 3.666165e-06 2.500000e+01 6.000000e+01 +91 5.850570e-10 3.732832e-06 2.500000e+01 6.000000e+01 +92 5.950570e-10 3.799498e-06 2.500000e+01 6.000000e+01 +93 6.050570e-10 3.866165e-06 2.500000e+01 6.000000e+01 +94 6.150570e-10 3.932832e-06 2.500000e+01 6.000000e+01 +95 6.250570e-10 3.999498e-06 2.500000e+01 6.000000e+01 +96 6.350570e-10 4.066165e-06 2.500000e+01 6.000000e+01 +97 6.450570e-10 4.132832e-06 2.500000e+01 6.000000e+01 +98 6.550570e-10 4.199499e-06 2.500000e+01 6.000000e+01 +99 6.650570e-10 4.266165e-06 2.500000e+01 6.000000e+01 +100 6.750570e-10 4.332832e-06 2.500000e+01 6.000000e+01 +101 6.850570e-10 4.399498e-06 2.500000e+01 6.000000e+01 +102 6.950570e-10 4.466165e-06 2.500000e+01 6.000000e+01 +103 7.050570e-10 4.532832e-06 2.500000e+01 6.000000e+01 +104 7.150570e-10 4.599498e-06 2.500000e+01 6.000000e+01 +105 7.250570e-10 4.666165e-06 2.500000e+01 6.000000e+01 +106 7.350570e-10 4.732832e-06 2.500000e+01 6.000000e+01 +107 7.450570e-10 4.799499e-06 2.500000e+01 6.000000e+01 +108 7.550570e-10 4.866165e-06 2.500000e+01 6.000000e+01 +109 7.650570e-10 4.932831e-06 2.500000e+01 6.000000e+01 +110 7.750570e-10 4.999498e-06 2.500000e+01 6.000000e+01 +111 7.850570e-10 5.066164e-06 2.500000e+01 6.000000e+01 +112 7.950570e-10 5.132831e-06 2.500000e+01 6.000000e+01 + +Index time V(1) V(2) V(3) +-------------------------------------------------------------------------------- +113 8.050570e-10 5.199498e-06 2.500000e+01 6.000000e+01 +114 8.150570e-10 5.266165e-06 2.500000e+01 6.000000e+01 +115 8.250570e-10 5.332831e-06 2.500000e+01 6.000000e+01 +116 8.350570e-10 5.399498e-06 2.500000e+01 6.000000e+01 +117 8.450570e-10 5.466165e-06 2.500000e+01 6.000000e+01 +118 8.550570e-10 5.532831e-06 2.500000e+01 6.000000e+01 +119 8.650570e-10 5.599498e-06 2.500000e+01 6.000000e+01 +120 8.750570e-10 5.666165e-06 2.500000e+01 6.000000e+01 +121 8.850570e-10 5.732831e-06 2.500000e+01 6.000000e+01 +122 8.950570e-10 5.799498e-06 2.500000e+01 6.000000e+01 +123 9.050570e-10 5.866165e-06 2.500000e+01 6.000000e+01 +124 9.150570e-10 5.932831e-06 2.500000e+01 6.000000e+01 +125 9.250570e-10 5.999497e-06 2.500000e+01 6.000000e+01 +126 9.350570e-10 6.066165e-06 2.500000e+01 6.000000e+01 +127 9.450570e-10 6.132832e-06 2.500000e+01 6.000000e+01 +128 9.550570e-10 6.199498e-06 2.500000e+01 6.000000e+01 +129 9.650570e-10 6.266165e-06 2.500000e+01 6.000000e+01 +130 9.750570e-10 6.332832e-06 2.500000e+01 6.000000e+01 +131 9.850570e-10 6.399497e-06 2.500000e+01 6.000000e+01 +132 9.950570e-10 6.466164e-06 2.500000e+01 6.000000e+01 +133 1.005057e-09 6.532831e-06 2.500000e+01 6.000000e+01 +134 1.015057e-09 6.599497e-06 2.500000e+01 6.000000e+01 +135 1.025057e-09 6.666165e-06 2.500000e+01 6.000000e+01 +136 1.035057e-09 6.732832e-06 2.500000e+01 6.000000e+01 +137 1.045057e-09 6.799498e-06 2.500000e+01 6.000000e+01 +138 1.055057e-09 6.866164e-06 2.500000e+01 6.000000e+01 +139 1.065057e-09 6.932831e-06 2.500000e+01 6.000000e+01 +140 1.075057e-09 6.999498e-06 2.500000e+01 6.000000e+01 +141 1.085057e-09 7.066164e-06 2.500000e+01 6.000000e+01 +142 1.095057e-09 7.132830e-06 2.500000e+01 6.000000e+01 +143 1.105057e-09 7.199496e-06 2.500000e+01 6.000000e+01 +144 1.115057e-09 7.266163e-06 2.500000e+01 6.000000e+01 +145 1.125057e-09 7.332830e-06 2.500000e+01 6.000000e+01 +146 1.135057e-09 7.399497e-06 2.500000e+01 6.000000e+01 +147 1.145057e-09 7.466164e-06 2.500000e+01 6.000000e+01 +148 1.155057e-09 7.532831e-06 2.500000e+01 6.000000e+01 +149 1.165057e-09 7.599498e-06 2.500000e+01 6.000000e+01 +150 1.175057e-09 7.666164e-06 2.500000e+01 6.000000e+01 +151 1.185057e-09 7.732831e-06 2.500000e+01 6.000000e+01 +152 1.195057e-09 7.799498e-06 2.500000e+01 6.000000e+01 +153 1.205057e-09 7.866164e-06 2.500000e+01 6.000000e+01 +154 1.215057e-09 7.932830e-06 2.500000e+01 6.000000e+01 +155 1.225057e-09 7.999497e-06 2.500000e+01 6.000000e+01 +156 1.235057e-09 8.066164e-06 2.500000e+01 6.000000e+01 +157 1.245057e-09 8.132831e-06 2.500000e+01 6.000000e+01 +158 1.255057e-09 8.199497e-06 2.500000e+01 6.000000e+01 +159 1.265057e-09 8.266164e-06 2.500000e+01 6.000000e+01 +160 1.275057e-09 8.332830e-06 2.500000e+01 6.000000e+01 +161 1.285057e-09 8.399498e-06 2.500000e+01 6.000000e+01 +162 1.295057e-09 8.466164e-06 2.500000e+01 6.000000e+01 +163 1.305057e-09 8.532830e-06 2.500000e+01 6.000000e+01 +164 1.315057e-09 8.599498e-06 2.500000e+01 6.000000e+01 +165 1.325057e-09 8.666164e-06 2.500000e+01 6.000000e+01 +166 1.335057e-09 8.732830e-06 2.500000e+01 6.000000e+01 +167 1.345057e-09 8.799496e-06 2.500000e+01 6.000000e+01 +168 1.355057e-09 8.866164e-06 2.500000e+01 6.000000e+01 +169 1.365057e-09 8.932830e-06 2.500000e+01 6.000000e+01 +170 1.375057e-09 8.999496e-06 2.500000e+01 6.000000e+01 + +Index time V(1) V(2) V(3) +-------------------------------------------------------------------------------- +171 1.385057e-09 9.066164e-06 2.500000e+01 6.000000e+01 +172 1.395057e-09 9.132829e-06 2.500000e+01 6.000000e+01 +173 1.405057e-09 9.199496e-06 2.500000e+01 6.000000e+01 +174 1.415057e-09 9.266164e-06 2.500000e+01 6.000000e+01 +175 1.425057e-09 9.332831e-06 2.500000e+01 6.000000e+01 +176 1.435057e-09 9.399497e-06 2.500000e+01 6.000000e+01 +177 1.445057e-09 9.466165e-06 2.500000e+01 6.000000e+01 +178 1.455057e-09 9.532830e-06 2.500000e+01 6.000000e+01 +179 1.465057e-09 9.599496e-06 2.500000e+01 6.000000e+01 +180 1.475057e-09 9.666164e-06 2.500000e+01 6.000000e+01 +181 1.485057e-09 9.732829e-06 2.500000e+01 6.000000e+01 +182 1.495057e-09 9.799496e-06 2.500000e+01 6.000000e+01 +183 1.505057e-09 9.866164e-06 2.500000e+01 6.000000e+01 +184 1.515057e-09 9.932829e-06 2.500000e+01 6.000000e+01 +185 1.525057e-09 9.999496e-06 2.500000e+01 6.000000e+01 +186 1.535057e-09 1.006616e-05 2.500000e+01 6.000000e+01 +187 1.545057e-09 1.013283e-05 2.500000e+01 6.000000e+01 +188 1.555057e-09 1.019950e-05 2.500000e+01 6.000000e+01 +189 1.565057e-09 1.026616e-05 2.500000e+01 6.000000e+01 +190 1.575057e-09 1.033283e-05 2.500000e+01 6.000000e+01 +191 1.585057e-09 1.039950e-05 2.500000e+01 6.000000e+01 +192 1.595057e-09 1.046616e-05 2.500000e+01 6.000000e+01 +193 1.605057e-09 1.053283e-05 2.500000e+01 6.000000e+01 +194 1.615057e-09 1.059950e-05 2.500000e+01 6.000000e+01 +195 1.625057e-09 1.066616e-05 2.500000e+01 6.000000e+01 +196 1.635057e-09 1.073283e-05 2.500000e+01 6.000000e+01 +197 1.645057e-09 1.079950e-05 2.500000e+01 6.000000e+01 +198 1.655057e-09 1.086616e-05 2.500000e+01 6.000000e+01 +199 1.665057e-09 1.093283e-05 2.500000e+01 6.000000e+01 +200 1.675057e-09 1.099950e-05 2.500000e+01 6.000000e+01 +201 1.685057e-09 1.106616e-05 2.500000e+01 6.000000e+01 +202 1.695057e-09 1.113283e-05 2.500000e+01 6.000000e+01 +203 1.705057e-09 1.119950e-05 2.500000e+01 6.000000e+01 +204 1.715057e-09 1.126616e-05 2.500000e+01 6.000000e+01 +205 1.725057e-09 1.133283e-05 2.500000e+01 6.000000e+01 +206 1.735057e-09 1.139950e-05 2.500000e+01 6.000000e+01 +207 1.745057e-09 1.146616e-05 2.500000e+01 6.000000e+01 +208 1.755057e-09 1.153283e-05 2.500000e+01 6.000000e+01 +209 1.765057e-09 1.159950e-05 2.500000e+01 6.000000e+01 +210 1.775057e-09 1.166616e-05 2.500000e+01 6.000000e+01 +211 1.785057e-09 1.173283e-05 2.500000e+01 6.000000e+01 +212 1.795057e-09 1.179950e-05 2.500000e+01 6.000000e+01 +213 1.805057e-09 1.186616e-05 2.500000e+01 6.000000e+01 +214 1.815057e-09 1.193283e-05 2.500000e+01 6.000000e+01 +215 1.825057e-09 1.199950e-05 2.500000e+01 6.000000e+01 +216 1.835057e-09 1.206616e-05 2.500000e+01 6.000000e+01 +217 1.845057e-09 1.213283e-05 2.500000e+01 6.000000e+01 +218 1.855057e-09 1.219950e-05 2.500000e+01 6.000000e+01 +219 1.865057e-09 1.226616e-05 2.500000e+01 6.000000e+01 +220 1.875057e-09 1.233283e-05 2.500000e+01 6.000000e+01 +221 1.885057e-09 1.239950e-05 2.500000e+01 6.000000e+01 +222 1.895057e-09 1.246616e-05 2.500000e+01 6.000000e+01 +223 1.905057e-09 1.253283e-05 2.500000e+01 6.000000e+01 +224 1.915057e-09 1.259949e-05 2.500000e+01 6.000000e+01 +225 1.925057e-09 1.266616e-05 2.500000e+01 6.000000e+01 +226 1.935057e-09 1.273283e-05 2.500000e+01 6.000000e+01 +227 1.945057e-09 1.279950e-05 2.500000e+01 6.000000e+01 +228 1.955057e-09 1.286616e-05 2.500000e+01 6.000000e+01 + +Index time V(1) V(2) V(3) +-------------------------------------------------------------------------------- +229 1.965057e-09 1.293283e-05 2.500000e+01 6.000000e+01 +230 1.975057e-09 1.299950e-05 2.500000e+01 6.000000e+01 +231 1.985057e-09 1.306616e-05 2.500000e+01 6.000000e+01 +232 1.995057e-09 1.313283e-05 2.500000e+01 6.000000e+01 +233 2.005057e-09 1.319949e-05 2.500000e+01 6.000000e+01 +234 2.015057e-09 1.326616e-05 2.500000e+01 6.000000e+01 +235 2.025057e-09 1.333283e-05 2.500000e+01 6.000000e+01 +236 2.035057e-09 1.339949e-05 2.500000e+01 6.000000e+01 +237 2.045057e-09 1.346616e-05 2.500000e+01 6.000000e+01 +238 2.055057e-09 1.353283e-05 2.500000e+01 6.000000e+01 +239 2.065057e-09 1.359949e-05 2.500000e+01 6.000000e+01 +240 2.075057e-09 1.366616e-05 2.500000e+01 6.000000e+01 +241 2.085057e-09 1.373283e-05 2.500000e+01 6.000000e+01 +242 2.095057e-09 1.379950e-05 2.500000e+01 6.000000e+01 +243 2.105057e-09 1.386616e-05 2.500000e+01 6.000000e+01 +244 2.115057e-09 1.393283e-05 2.500000e+01 6.000000e+01 +245 2.125057e-09 1.399949e-05 2.500000e+01 6.000000e+01 +246 2.135057e-09 1.406616e-05 2.500000e+01 6.000000e+01 +247 2.145057e-09 1.413283e-05 2.500000e+01 6.000000e+01 +248 2.155057e-09 1.419949e-05 2.500000e+01 6.000000e+01 +249 2.165057e-09 1.426616e-05 2.500000e+01 6.000000e+01 +250 2.175057e-09 1.433283e-05 2.500000e+01 6.000000e+01 +251 2.185057e-09 1.439950e-05 2.500000e+01 6.000000e+01 +252 2.195057e-09 1.446616e-05 2.500000e+01 6.000000e+01 +253 2.205057e-09 1.453283e-05 2.500000e+01 6.000000e+01 +254 2.215057e-09 1.459949e-05 2.500000e+01 6.000000e+01 +255 2.225057e-09 1.466616e-05 2.500000e+01 6.000000e+01 +256 2.235057e-09 1.473282e-05 2.500000e+01 6.000000e+01 +257 2.245057e-09 1.479949e-05 2.500000e+01 6.000000e+01 +258 2.255057e-09 1.486616e-05 2.500000e+01 6.000000e+01 +259 2.265057e-09 1.493282e-05 2.500000e+01 6.000000e+01 +260 2.275057e-09 1.499949e-05 2.500000e+01 6.000000e+01 +261 2.285057e-09 1.506616e-05 2.500000e+01 6.000000e+01 +262 2.295057e-09 1.513283e-05 2.500000e+01 6.000000e+01 +263 2.305057e-09 1.519949e-05 2.500000e+01 6.000000e+01 +264 2.315057e-09 1.526616e-05 2.500000e+01 6.000000e+01 +265 2.325057e-09 1.533283e-05 2.500000e+01 6.000000e+01 +266 2.335057e-09 1.539949e-05 2.500000e+01 6.000000e+01 +267 2.345057e-09 1.546616e-05 2.500000e+01 6.000000e+01 +268 2.355057e-09 1.553283e-05 2.500000e+01 6.000000e+01 +269 2.365057e-09 1.559949e-05 2.500000e+01 6.000000e+01 +270 2.375057e-09 1.566616e-05 2.500000e+01 6.000000e+01 +271 2.385057e-09 1.573282e-05 2.500000e+01 6.000000e+01 +272 2.395057e-09 1.579949e-05 2.500000e+01 6.000000e+01 +273 2.405057e-09 1.586616e-05 2.500000e+01 6.000000e+01 +274 2.415057e-09 1.593283e-05 2.500000e+01 6.000000e+01 +275 2.425057e-09 1.599949e-05 2.500000e+01 6.000000e+01 +276 2.435057e-09 1.606616e-05 2.500000e+01 6.000000e+01 +277 2.445057e-09 1.613283e-05 2.500000e+01 6.000000e+01 +278 2.455057e-09 1.619949e-05 2.500000e+01 6.000000e+01 +279 2.465057e-09 1.626616e-05 2.500000e+01 6.000000e+01 +280 2.475057e-09 1.633283e-05 2.500000e+01 6.000000e+01 +281 2.485057e-09 1.639949e-05 2.500000e+01 6.000000e+01 +282 2.495057e-09 1.646616e-05 2.500000e+01 6.000000e+01 +283 2.500000e-09 1.649911e-05 2.500000e+01 6.000000e+01 + + * /home/michi/tryprogressbar.oregano + Transient Analysis Fri Jun 9 21:36:56 2017 +-------------------------------------------------------------------------------- +Index time V(4) V(5) l_l1#branch +-------------------------------------------------------------------------------- +0 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +1 1.000000e-13 2.000000e+01 6.000000e+01 -1.33333e-08 +2 2.000000e-13 2.000000e+01 6.000000e+01 -2.66667e-08 +3 4.000000e-13 2.000000e+01 6.000000e+01 -5.33333e-08 +4 8.000000e-13 2.000000e+01 6.000000e+01 -1.06667e-07 +5 1.600000e-12 2.000000e+01 6.000000e+01 -2.13333e-07 +6 3.200000e-12 2.000000e+01 5.999999e+01 -4.26667e-07 +7 4.666667e-12 2.000000e+01 5.999999e+01 -6.22222e-07 +8 5.358333e-12 2.000000e+01 5.999999e+01 -7.14444e-07 +9 6.568750e-12 2.000000e+01 5.999998e+01 -8.75833e-07 +10 6.903776e-12 2.000000e+01 5.999998e+01 -9.20503e-07 +11 7.490072e-12 2.000000e+01 5.999998e+01 -9.98676e-07 +12 7.652350e-12 2.000000e+01 5.999998e+01 -1.02031e-06 +13 7.936337e-12 2.000000e+01 5.999998e+01 -1.05818e-06 +14 8.014940e-12 2.000000e+01 5.999998e+01 -1.06866e-06 +15 8.152496e-12 2.000000e+01 5.999998e+01 -1.08700e-06 +16 8.190570e-12 2.000000e+01 5.999998e+01 -1.09208e-06 +17 8.257199e-12 2.000000e+01 5.999998e+01 -1.10096e-06 +18 8.275641e-12 2.000000e+01 5.999998e+01 -1.10342e-06 +19 8.307914e-12 2.000000e+01 5.999998e+01 -1.10772e-06 +20 8.339341e-12 2.000000e+01 3.724889e-01 -1.10879e-06 +21 8.368989e-12 2.000000e+01 3.721389e-01 -1.10685e-06 +22 8.415783e-12 2.000000e+01 3.715661e-01 -1.10379e-06 +23 8.462595e-12 2.000000e+01 3.709686e-01 -1.10072e-06 +24 8.556218e-12 2.000000e+01 3.697067e-01 -1.09460e-06 +25 8.743465e-12 2.000000e+01 3.669207e-01 -1.08235e-06 +26 9.117958e-12 2.000000e+01 3.603499e-01 -1.05783e-06 +27 9.866944e-12 2.000000e+01 3.436482e-01 -1.00878e-06 +28 1.000000e-11 2.000000e+01 3.402226e-01 -1.00006e-06 +29 1.014980e-11 2.000000e+01 3.362220e-01 -9.90242e-07 +30 1.044939e-11 2.000000e+01 3.277442e-01 -9.70601e-07 +31 1.104858e-11 2.000000e+01 3.093324e-01 -9.31291e-07 +32 1.224696e-11 2.000000e+01 2.687330e-01 -8.52554e-07 +33 1.464371e-11 2.000000e+01 1.860234e-01 -6.94587e-07 +34 1.943722e-11 2.000000e+01 6.687593e-02 -3.77040e-07 +35 2.680459e-11 2.000000e+01 5.465349e-03 1.132302e-07 +36 3.505704e-11 2.000000e+01 7.712940e-06 6.633178e-07 +37 4.505704e-11 2.000000e+01 -6.02386e-07 1.329984e-06 +38 5.505704e-11 2.000000e+01 2.702691e-07 1.996651e-06 +39 6.505704e-11 2.000000e+01 2.593860e-07 2.663318e-06 +40 7.505704e-11 2.000000e+01 3.334843e-07 3.329984e-06 +41 8.505704e-11 2.000000e+01 3.994362e-07 3.996651e-06 +42 9.505704e-11 2.000000e+01 4.661716e-07 4.663318e-06 +43 1.050570e-10 2.000000e+01 5.328316e-07 5.329984e-06 +44 1.150570e-10 2.000000e+01 5.994989e-07 5.996651e-06 +45 1.250570e-10 2.000000e+01 6.661655e-07 6.663318e-06 +46 1.350570e-10 2.000000e+01 7.328321e-07 7.329984e-06 +47 1.450570e-10 2.000000e+01 7.994989e-07 7.996651e-06 +48 1.550570e-10 2.000000e+01 8.661655e-07 8.663318e-06 +49 1.650570e-10 2.000000e+01 9.328322e-07 9.329984e-06 +50 1.750570e-10 2.000000e+01 9.994988e-07 9.996651e-06 +51 1.850570e-10 2.000000e+01 1.066166e-06 1.066332e-05 +52 1.950570e-10 2.000000e+01 1.132832e-06 1.132998e-05 +53 2.050570e-10 2.000000e+01 1.199499e-06 1.199665e-05 +54 2.150570e-10 2.000000e+01 1.266165e-06 1.266332e-05 + +Index time V(4) V(5) l_l1#branch +-------------------------------------------------------------------------------- +55 2.250570e-10 2.000000e+01 1.332832e-06 1.332998e-05 +56 2.350570e-10 2.000000e+01 1.399499e-06 1.399665e-05 +57 2.450570e-10 2.000000e+01 1.466165e-06 1.466332e-05 +58 2.550570e-10 2.000000e+01 1.532832e-06 1.532998e-05 +59 2.650570e-10 2.000000e+01 1.599499e-06 1.599665e-05 +60 2.750570e-10 2.000000e+01 1.666165e-06 1.666332e-05 +61 2.850570e-10 2.000000e+01 1.732832e-06 1.732998e-05 +62 2.950570e-10 2.000000e+01 1.799499e-06 1.799665e-05 +63 3.050570e-10 2.000000e+01 1.866165e-06 1.866332e-05 +64 3.150570e-10 2.000000e+01 1.932832e-06 1.932998e-05 +65 3.250570e-10 2.000000e+01 1.999499e-06 1.999665e-05 +66 3.350570e-10 2.000000e+01 2.066165e-06 2.066332e-05 +67 3.450570e-10 2.000000e+01 2.132832e-06 2.132998e-05 +68 3.550570e-10 2.000000e+01 2.199499e-06 2.199665e-05 +69 3.650570e-10 2.000000e+01 2.266165e-06 2.266332e-05 +70 3.750570e-10 2.000000e+01 2.332832e-06 2.332998e-05 +71 3.850570e-10 2.000000e+01 2.399499e-06 2.399665e-05 +72 3.950570e-10 2.000000e+01 2.466165e-06 2.466332e-05 +73 4.050570e-10 2.000000e+01 2.532832e-06 2.532998e-05 +74 4.150570e-10 2.000000e+01 2.599499e-06 2.599665e-05 +75 4.250570e-10 2.000000e+01 2.666166e-06 2.666332e-05 +76 4.350570e-10 2.000000e+01 2.732832e-06 2.732998e-05 +77 4.450570e-10 2.000000e+01 2.799499e-06 2.799665e-05 +78 4.550570e-10 2.000000e+01 2.866166e-06 2.866332e-05 +79 4.650570e-10 2.000000e+01 2.932832e-06 2.932998e-05 +80 4.750570e-10 2.000000e+01 2.999499e-06 2.999665e-05 +81 4.850570e-10 2.000000e+01 3.066165e-06 3.066332e-05 +82 4.950570e-10 2.000000e+01 3.132832e-06 3.132998e-05 +83 5.050570e-10 2.000000e+01 3.199498e-06 3.199665e-05 +84 5.150570e-10 2.000000e+01 3.266165e-06 3.266332e-05 +85 5.250570e-10 2.000000e+01 3.332832e-06 3.332998e-05 +86 5.350570e-10 2.000000e+01 3.399499e-06 3.399665e-05 +87 5.450570e-10 2.000000e+01 3.466166e-06 3.466331e-05 +88 5.550570e-10 2.000000e+01 3.532832e-06 3.532998e-05 +89 5.650570e-10 2.000000e+01 3.599499e-06 3.599665e-05 +90 5.750570e-10 2.000000e+01 3.666165e-06 3.666331e-05 +91 5.850570e-10 2.000000e+01 3.732832e-06 3.732998e-05 +92 5.950570e-10 2.000000e+01 3.799498e-06 3.799665e-05 +93 6.050570e-10 2.000000e+01 3.866165e-06 3.866331e-05 +94 6.150570e-10 2.000000e+01 3.932832e-06 3.932998e-05 +95 6.250570e-10 2.000000e+01 3.999498e-06 3.999665e-05 +96 6.350570e-10 2.000000e+01 4.066165e-06 4.066331e-05 +97 6.450570e-10 2.000000e+01 4.132832e-06 4.132998e-05 +98 6.550570e-10 2.000000e+01 4.199499e-06 4.199665e-05 +99 6.650570e-10 2.000000e+01 4.266165e-06 4.266331e-05 +100 6.750570e-10 2.000000e+01 4.332832e-06 4.332998e-05 +101 6.850570e-10 2.000000e+01 4.399498e-06 4.399665e-05 +102 6.950570e-10 2.000000e+01 4.466165e-06 4.466331e-05 +103 7.050570e-10 2.000000e+01 4.532832e-06 4.532998e-05 +104 7.150570e-10 2.000000e+01 4.599498e-06 4.599665e-05 +105 7.250570e-10 2.000000e+01 4.666165e-06 4.666331e-05 +106 7.350570e-10 2.000000e+01 4.732832e-06 4.732998e-05 +107 7.450570e-10 2.000000e+01 4.799499e-06 4.799665e-05 +108 7.550570e-10 2.000000e+01 4.866165e-06 4.866331e-05 +109 7.650570e-10 2.000000e+01 4.932831e-06 4.932998e-05 +110 7.750570e-10 2.000000e+01 4.999498e-06 4.999664e-05 +111 7.850570e-10 2.000000e+01 5.066164e-06 5.066331e-05 +112 7.950570e-10 2.000000e+01 5.132831e-06 5.132998e-05 + +Index time V(4) V(5) l_l1#branch +-------------------------------------------------------------------------------- +113 8.050570e-10 2.000000e+01 5.199498e-06 5.199664e-05 +114 8.150570e-10 2.000000e+01 5.266165e-06 5.266331e-05 +115 8.250570e-10 2.000000e+01 5.332831e-06 5.332998e-05 +116 8.350570e-10 2.000000e+01 5.399498e-06 5.399664e-05 +117 8.450570e-10 2.000000e+01 5.466165e-06 5.466331e-05 +118 8.550570e-10 2.000000e+01 5.532831e-06 5.532998e-05 +119 8.650570e-10 2.000000e+01 5.599498e-06 5.599664e-05 +120 8.750570e-10 2.000000e+01 5.666165e-06 5.666331e-05 +121 8.850570e-10 2.000000e+01 5.732831e-06 5.732998e-05 +122 8.950570e-10 2.000000e+01 5.799498e-06 5.799664e-05 +123 9.050570e-10 2.000000e+01 5.866165e-06 5.866331e-05 +124 9.150570e-10 2.000000e+01 5.932831e-06 5.932998e-05 +125 9.250570e-10 2.000000e+01 5.999497e-06 5.999664e-05 +126 9.350570e-10 2.000000e+01 6.066165e-06 6.066331e-05 +127 9.450570e-10 2.000000e+01 6.132832e-06 6.132997e-05 +128 9.550570e-10 2.000000e+01 6.199498e-06 6.199664e-05 +129 9.650570e-10 2.000000e+01 6.266165e-06 6.266331e-05 +130 9.750570e-10 2.000000e+01 6.332832e-06 6.332997e-05 +131 9.850570e-10 2.000000e+01 6.399497e-06 6.399664e-05 +132 9.950570e-10 2.000000e+01 6.466164e-06 6.466331e-05 +133 1.005057e-09 2.000000e+01 6.532831e-06 6.532997e-05 +134 1.015057e-09 2.000000e+01 6.599497e-06 6.599664e-05 +135 1.025057e-09 2.000000e+01 6.666165e-06 6.666331e-05 +136 1.035057e-09 2.000000e+01 6.732832e-06 6.732997e-05 +137 1.045057e-09 2.000000e+01 6.799498e-06 6.799664e-05 +138 1.055057e-09 2.000000e+01 6.866164e-06 6.866331e-05 +139 1.065057e-09 2.000000e+01 6.932831e-06 6.932997e-05 +140 1.075057e-09 2.000000e+01 6.999498e-06 6.999664e-05 +141 1.085057e-09 2.000000e+01 7.066164e-06 7.066331e-05 +142 1.095057e-09 2.000000e+01 7.132830e-06 7.132997e-05 +143 1.105057e-09 2.000000e+01 7.199496e-06 7.199664e-05 +144 1.115057e-09 2.000000e+01 7.266163e-06 7.266330e-05 +145 1.125057e-09 2.000000e+01 7.332830e-06 7.332997e-05 +146 1.135057e-09 2.000000e+01 7.399497e-06 7.399664e-05 +147 1.145057e-09 2.000000e+01 7.466164e-06 7.466330e-05 +148 1.155057e-09 2.000000e+01 7.532831e-06 7.532997e-05 +149 1.165057e-09 2.000000e+01 7.599498e-06 7.599664e-05 +150 1.175057e-09 2.000000e+01 7.666164e-06 7.666330e-05 +151 1.185057e-09 2.000000e+01 7.732831e-06 7.732997e-05 +152 1.195057e-09 2.000000e+01 7.799498e-06 7.799664e-05 +153 1.205057e-09 2.000000e+01 7.866164e-06 7.866330e-05 +154 1.215057e-09 2.000000e+01 7.932830e-06 7.932997e-05 +155 1.225057e-09 2.000000e+01 7.999497e-06 7.999664e-05 +156 1.235057e-09 2.000000e+01 8.066164e-06 8.066330e-05 +157 1.245057e-09 2.000000e+01 8.132831e-06 8.132997e-05 +158 1.255057e-09 2.000000e+01 8.199497e-06 8.199663e-05 +159 1.265057e-09 2.000000e+01 8.266164e-06 8.266330e-05 +160 1.275057e-09 2.000000e+01 8.332830e-06 8.332997e-05 +161 1.285057e-09 2.000000e+01 8.399498e-06 8.399663e-05 +162 1.295057e-09 2.000000e+01 8.466164e-06 8.466330e-05 +163 1.305057e-09 2.000000e+01 8.532830e-06 8.532997e-05 +164 1.315057e-09 2.000000e+01 8.599498e-06 8.599663e-05 +165 1.325057e-09 2.000000e+01 8.666164e-06 8.666330e-05 +166 1.335057e-09 2.000000e+01 8.732830e-06 8.732997e-05 +167 1.345057e-09 2.000000e+01 8.799496e-06 8.799663e-05 +168 1.355057e-09 2.000000e+01 8.866164e-06 8.866330e-05 +169 1.365057e-09 2.000000e+01 8.932830e-06 8.932996e-05 +170 1.375057e-09 2.000000e+01 8.999496e-06 8.999663e-05 + +Index time V(4) V(5) l_l1#branch +-------------------------------------------------------------------------------- +171 1.385057e-09 2.000000e+01 9.066164e-06 9.066330e-05 +172 1.395057e-09 2.000000e+01 9.132829e-06 9.132996e-05 +173 1.405057e-09 2.000000e+01 9.199496e-06 9.199663e-05 +174 1.415057e-09 2.000000e+01 9.266164e-06 9.266330e-05 +175 1.425057e-09 2.000000e+01 9.332831e-06 9.332996e-05 +176 1.435057e-09 2.000000e+01 9.399497e-06 9.399663e-05 +177 1.445057e-09 2.000000e+01 9.466165e-06 9.466330e-05 +178 1.455057e-09 2.000000e+01 9.532830e-06 9.532996e-05 +179 1.465057e-09 2.000000e+01 9.599496e-06 9.599663e-05 +180 1.475057e-09 2.000000e+01 9.666164e-06 9.666329e-05 +181 1.485057e-09 2.000000e+01 9.732829e-06 9.732996e-05 +182 1.495057e-09 2.000000e+01 9.799496e-06 9.799663e-05 +183 1.505057e-09 2.000000e+01 9.866164e-06 9.866329e-05 +184 1.515057e-09 2.000000e+01 9.932829e-06 9.932996e-05 +185 1.525057e-09 2.000000e+01 9.999496e-06 9.999663e-05 +186 1.535057e-09 2.000000e+01 1.006616e-05 1.006633e-04 +187 1.545057e-09 2.000000e+01 1.013283e-05 1.013300e-04 +188 1.555057e-09 2.000000e+01 1.019950e-05 1.019966e-04 +189 1.565057e-09 2.000000e+01 1.026616e-05 1.026633e-04 +190 1.575057e-09 2.000000e+01 1.033283e-05 1.033300e-04 +191 1.585057e-09 2.000000e+01 1.039950e-05 1.039966e-04 +192 1.595057e-09 2.000000e+01 1.046616e-05 1.046633e-04 +193 1.605057e-09 2.000000e+01 1.053283e-05 1.053300e-04 +194 1.615057e-09 2.000000e+01 1.059950e-05 1.059966e-04 +195 1.625057e-09 2.000000e+01 1.066616e-05 1.066633e-04 +196 1.635057e-09 2.000000e+01 1.073283e-05 1.073300e-04 +197 1.645057e-09 2.000000e+01 1.079950e-05 1.079966e-04 +198 1.655057e-09 2.000000e+01 1.086616e-05 1.086633e-04 +199 1.665057e-09 2.000000e+01 1.093283e-05 1.093300e-04 +200 1.675057e-09 2.000000e+01 1.099950e-05 1.099966e-04 +201 1.685057e-09 2.000000e+01 1.106616e-05 1.106633e-04 +202 1.695057e-09 2.000000e+01 1.113283e-05 1.113300e-04 +203 1.705057e-09 2.000000e+01 1.119950e-05 1.119966e-04 +204 1.715057e-09 2.000000e+01 1.126616e-05 1.126633e-04 +205 1.725057e-09 2.000000e+01 1.133283e-05 1.133300e-04 +206 1.735057e-09 2.000000e+01 1.139950e-05 1.139966e-04 +207 1.745057e-09 2.000000e+01 1.146616e-05 1.146633e-04 +208 1.755057e-09 2.000000e+01 1.153283e-05 1.153300e-04 +209 1.765057e-09 2.000000e+01 1.159950e-05 1.159966e-04 +210 1.775057e-09 2.000000e+01 1.166616e-05 1.166633e-04 +211 1.785057e-09 2.000000e+01 1.173283e-05 1.173299e-04 +212 1.795057e-09 2.000000e+01 1.179950e-05 1.179966e-04 +213 1.805057e-09 2.000000e+01 1.186616e-05 1.186633e-04 +214 1.815057e-09 2.000000e+01 1.193283e-05 1.193299e-04 +215 1.825057e-09 2.000000e+01 1.199950e-05 1.199966e-04 +216 1.835057e-09 2.000000e+01 1.206616e-05 1.206633e-04 +217 1.845057e-09 2.000000e+01 1.213283e-05 1.213299e-04 +218 1.855057e-09 2.000000e+01 1.219950e-05 1.219966e-04 +219 1.865057e-09 2.000000e+01 1.226616e-05 1.226633e-04 +220 1.875057e-09 2.000000e+01 1.233283e-05 1.233299e-04 +221 1.885057e-09 2.000000e+01 1.239950e-05 1.239966e-04 +222 1.895057e-09 2.000000e+01 1.246616e-05 1.246633e-04 +223 1.905057e-09 2.000000e+01 1.253283e-05 1.253299e-04 +224 1.915057e-09 2.000000e+01 1.259949e-05 1.259966e-04 +225 1.925057e-09 2.000000e+01 1.266616e-05 1.266633e-04 +226 1.935057e-09 2.000000e+01 1.273283e-05 1.273299e-04 +227 1.945057e-09 2.000000e+01 1.279950e-05 1.279966e-04 +228 1.955057e-09 2.000000e+01 1.286616e-05 1.286633e-04 + +Index time V(4) V(5) l_l1#branch +-------------------------------------------------------------------------------- +229 1.965057e-09 2.000000e+01 1.293283e-05 1.293299e-04 +230 1.975057e-09 2.000000e+01 1.299950e-05 1.299966e-04 +231 1.985057e-09 2.000000e+01 1.306616e-05 1.306633e-04 +232 1.995057e-09 2.000000e+01 1.313283e-05 1.313299e-04 +233 2.005057e-09 2.000000e+01 1.319949e-05 1.319966e-04 +234 2.015057e-09 2.000000e+01 1.326616e-05 1.326633e-04 +235 2.025057e-09 2.000000e+01 1.333283e-05 1.333299e-04 +236 2.035057e-09 2.000000e+01 1.339949e-05 1.339966e-04 +237 2.045057e-09 2.000000e+01 1.346616e-05 1.346633e-04 +238 2.055057e-09 2.000000e+01 1.353283e-05 1.353299e-04 +239 2.065057e-09 2.000000e+01 1.359949e-05 1.359966e-04 +240 2.075057e-09 2.000000e+01 1.366616e-05 1.366633e-04 +241 2.085057e-09 2.000000e+01 1.373283e-05 1.373299e-04 +242 2.095057e-09 2.000000e+01 1.379950e-05 1.379966e-04 +243 2.105057e-09 2.000000e+01 1.386616e-05 1.386633e-04 +244 2.115057e-09 2.000000e+01 1.393283e-05 1.393299e-04 +245 2.125057e-09 2.000000e+01 1.399949e-05 1.399966e-04 +246 2.135057e-09 2.000000e+01 1.406616e-05 1.406633e-04 +247 2.145057e-09 2.000000e+01 1.413283e-05 1.413299e-04 +248 2.155057e-09 2.000000e+01 1.419949e-05 1.419966e-04 +249 2.165057e-09 2.000000e+01 1.426616e-05 1.426633e-04 +250 2.175057e-09 2.000000e+01 1.433283e-05 1.433299e-04 +251 2.185057e-09 2.000000e+01 1.439950e-05 1.439966e-04 +252 2.195057e-09 2.000000e+01 1.446616e-05 1.446633e-04 +253 2.205057e-09 2.000000e+01 1.453283e-05 1.453299e-04 +254 2.215057e-09 2.000000e+01 1.459949e-05 1.459966e-04 +255 2.225057e-09 2.000000e+01 1.466616e-05 1.466633e-04 +256 2.235057e-09 2.000000e+01 1.473282e-05 1.473299e-04 +257 2.245057e-09 2.000000e+01 1.479949e-05 1.479966e-04 +258 2.255057e-09 2.000000e+01 1.486616e-05 1.486633e-04 +259 2.265057e-09 2.000000e+01 1.493282e-05 1.493299e-04 +260 2.275057e-09 2.000000e+01 1.499949e-05 1.499966e-04 +261 2.285057e-09 2.000000e+01 1.506616e-05 1.506633e-04 +262 2.295057e-09 2.000000e+01 1.513283e-05 1.513299e-04 +263 2.305057e-09 2.000000e+01 1.519949e-05 1.519966e-04 +264 2.315057e-09 2.000000e+01 1.526616e-05 1.526633e-04 +265 2.325057e-09 2.000000e+01 1.533283e-05 1.533299e-04 +266 2.335057e-09 2.000000e+01 1.539949e-05 1.539966e-04 +267 2.345057e-09 2.000000e+01 1.546616e-05 1.546633e-04 +268 2.355057e-09 2.000000e+01 1.553283e-05 1.553299e-04 +269 2.365057e-09 2.000000e+01 1.559949e-05 1.559966e-04 +270 2.375057e-09 2.000000e+01 1.566616e-05 1.566633e-04 +271 2.385057e-09 2.000000e+01 1.573282e-05 1.573299e-04 +272 2.395057e-09 2.000000e+01 1.579949e-05 1.579966e-04 +273 2.405057e-09 2.000000e+01 1.586616e-05 1.586633e-04 +274 2.415057e-09 2.000000e+01 1.593283e-05 1.593299e-04 +275 2.425057e-09 2.000000e+01 1.599949e-05 1.599966e-04 +276 2.435057e-09 2.000000e+01 1.606616e-05 1.606633e-04 +277 2.445057e-09 2.000000e+01 1.613283e-05 1.613299e-04 +278 2.455057e-09 2.000000e+01 1.619949e-05 1.619966e-04 +279 2.465057e-09 2.000000e+01 1.626616e-05 1.626633e-04 +280 2.475057e-09 2.000000e+01 1.633283e-05 1.633299e-04 +281 2.485057e-09 2.000000e+01 1.639949e-05 1.639966e-04 +282 2.495057e-09 2.000000e+01 1.646616e-05 1.646632e-04 +283 2.500000e-09 2.000000e+01 1.649911e-05 1.649928e-04 + + * /home/michi/tryprogressbar.oregano + Transient Analysis Fri Jun 9 21:36:56 2017 +-------------------------------------------------------------------------------- +Index time v_v1#branch v_v2#branch v_v3#branch +-------------------------------------------------------------------------------- +0 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +1 1.000000e-13 1.333333e-08 0.000000e+00 1.393333e-08 +2 2.000000e-13 2.666667e-08 0.000000e+00 2.726667e-08 +3 4.000000e-13 5.333333e-08 0.000000e+00 5.393333e-08 +4 8.000000e-13 1.066667e-07 0.000000e+00 1.072667e-07 +5 1.600000e-12 2.133333e-07 0.000000e+00 2.139333e-07 +6 3.200000e-12 4.266666e-07 0.000000e+00 4.272666e-07 +7 4.666667e-12 6.222221e-07 0.000000e+00 6.228221e-07 +8 5.358333e-12 7.144443e-07 0.000000e+00 7.150443e-07 +9 6.568750e-12 8.758332e-07 0.000000e+00 8.764332e-07 +10 6.903776e-12 9.205033e-07 0.000000e+00 9.211033e-07 +11 7.490072e-12 9.986760e-07 0.000000e+00 9.992760e-07 +12 7.652350e-12 1.020313e-06 0.000000e+00 1.020913e-06 +13 7.936337e-12 1.058178e-06 0.000000e+00 1.058778e-06 +14 8.014940e-12 1.068658e-06 0.000000e+00 1.069258e-06 +15 8.152496e-12 1.086999e-06 0.000000e+00 1.087599e-06 +16 8.190570e-12 1.092076e-06 0.000000e+00 1.092676e-06 +17 8.257199e-12 1.100960e-06 0.000000e+00 1.101560e-06 +18 8.275641e-12 1.103418e-06 0.000000e+00 1.104019e-06 +19 8.307914e-12 1.107722e-06 0.000000e+00 1.108322e-06 +20 8.339341e-12 1.108789e-06 0.000000e+00 3.724890e+00 +21 8.368989e-12 1.106849e-06 0.000000e+00 3.721390e+00 +22 8.415783e-12 1.103787e-06 0.000000e+00 3.715662e+00 +23 8.462595e-12 1.100724e-06 0.000000e+00 3.709687e+00 +24 8.556218e-12 1.094598e-06 0.000000e+00 3.697069e+00 +25 8.743465e-12 1.082345e-06 0.000000e+00 3.669208e+00 +26 9.117958e-12 1.057833e-06 0.000000e+00 3.603500e+00 +27 9.866944e-12 1.008779e-06 0.000000e+00 3.436483e+00 +28 1.000000e-11 1.000061e-06 0.000000e+00 3.402227e+00 +29 1.014980e-11 9.902420e-07 0.000000e+00 3.362221e+00 +30 1.044939e-11 9.706006e-07 0.000000e+00 3.277443e+00 +31 1.104858e-11 9.312909e-07 0.000000e+00 3.093325e+00 +32 1.224696e-11 8.525536e-07 0.000000e+00 2.687331e+00 +33 1.464371e-11 6.945865e-07 0.000000e+00 1.860234e+00 +34 1.943722e-11 3.770397e-07 0.000000e+00 6.687597e-01 +35 2.680459e-11 -1.13230e-07 0.000000e+00 5.465338e-02 +36 3.505704e-11 -6.63318e-07 0.000000e+00 7.646608e-05 +37 4.505704e-11 -1.32998e-06 0.000000e+00 -7.35384e-06 +38 5.505704e-11 -1.99665e-06 0.000000e+00 7.060396e-07 +39 6.505704e-11 -2.66332e-06 0.000000e+00 -6.94583e-08 +40 7.505704e-11 -3.32998e-06 0.000000e+00 4.858916e-09 +41 8.505704e-11 -3.99665e-06 0.000000e+00 -2.28947e-09 +42 9.505704e-11 -4.66332e-06 0.000000e+00 -1.60213e-09 +43 1.050570e-10 -5.32998e-06 0.000000e+00 -1.66822e-09 +44 1.150570e-10 -5.99665e-06 0.000000e+00 -1.66186e-09 +45 1.250570e-10 -6.66332e-06 0.000000e+00 -1.66248e-09 +46 1.350570e-10 -7.32998e-06 0.000000e+00 -1.66242e-09 +47 1.450570e-10 -7.99665e-06 0.000000e+00 -1.66243e-09 +48 1.550570e-10 -8.66332e-06 0.000000e+00 -1.66242e-09 +49 1.650570e-10 -9.32998e-06 0.000000e+00 -1.66243e-09 +50 1.750570e-10 -9.99665e-06 0.000000e+00 -1.66242e-09 +51 1.850570e-10 -1.06633e-05 0.000000e+00 -1.66242e-09 +52 1.950570e-10 -1.13300e-05 0.000000e+00 -1.66243e-09 +53 2.050570e-10 -1.19967e-05 0.000000e+00 -1.66242e-09 +54 2.150570e-10 -1.26633e-05 0.000000e+00 -1.66242e-09 + +Index time v_v1#branch v_v2#branch v_v3#branch +-------------------------------------------------------------------------------- +55 2.250570e-10 -1.33300e-05 0.000000e+00 -1.66242e-09 +56 2.350570e-10 -1.39967e-05 0.000000e+00 -1.66242e-09 +57 2.450570e-10 -1.46633e-05 0.000000e+00 -1.66242e-09 +58 2.550570e-10 -1.53300e-05 0.000000e+00 -1.66243e-09 +59 2.650570e-10 -1.59967e-05 0.000000e+00 -1.66242e-09 +60 2.750570e-10 -1.66633e-05 0.000000e+00 -1.66242e-09 +61 2.850570e-10 -1.73300e-05 0.000000e+00 -1.66242e-09 +62 2.950570e-10 -1.79967e-05 0.000000e+00 -1.66243e-09 +63 3.050570e-10 -1.86633e-05 0.000000e+00 -1.66242e-09 +64 3.150570e-10 -1.93300e-05 0.000000e+00 -1.66241e-09 +65 3.250570e-10 -1.99967e-05 0.000000e+00 -1.66243e-09 +66 3.350570e-10 -2.06633e-05 0.000000e+00 -1.66242e-09 +67 3.450570e-10 -2.13300e-05 0.000000e+00 -1.66242e-09 +68 3.550570e-10 -2.19966e-05 0.000000e+00 -1.66243e-09 +69 3.650570e-10 -2.26633e-05 0.000000e+00 -1.66242e-09 +70 3.750570e-10 -2.33300e-05 0.000000e+00 -1.66242e-09 +71 3.850570e-10 -2.39966e-05 0.000000e+00 -1.66244e-09 +72 3.950570e-10 -2.46633e-05 0.000000e+00 -1.66242e-09 +73 4.050570e-10 -2.53300e-05 0.000000e+00 -1.66242e-09 +74 4.150570e-10 -2.59966e-05 0.000000e+00 -1.66243e-09 +75 4.250570e-10 -2.66633e-05 0.000000e+00 -1.66242e-09 +76 4.350570e-10 -2.73300e-05 0.000000e+00 -1.66241e-09 +77 4.450570e-10 -2.79966e-05 0.000000e+00 -1.66242e-09 +78 4.550570e-10 -2.86633e-05 0.000000e+00 -1.66244e-09 +79 4.650570e-10 -2.93300e-05 0.000000e+00 -1.66242e-09 +80 4.750570e-10 -2.99966e-05 0.000000e+00 -1.66242e-09 +81 4.850570e-10 -3.06633e-05 0.000000e+00 -1.66243e-09 +82 4.950570e-10 -3.13300e-05 0.000000e+00 -1.66241e-09 +83 5.050570e-10 -3.19966e-05 0.000000e+00 -1.66243e-09 +84 5.150570e-10 -3.26633e-05 0.000000e+00 -1.66243e-09 +85 5.250570e-10 -3.33300e-05 0.000000e+00 -1.66242e-09 +86 5.350570e-10 -3.39966e-05 0.000000e+00 -1.66242e-09 +87 5.450570e-10 -3.46633e-05 0.000000e+00 -1.66243e-09 +88 5.550570e-10 -3.53300e-05 0.000000e+00 -1.66241e-09 +89 5.650570e-10 -3.59966e-05 0.000000e+00 -1.66242e-09 +90 5.750570e-10 -3.66633e-05 0.000000e+00 -1.66240e-09 +91 5.850570e-10 -3.73300e-05 0.000000e+00 -1.66246e-09 +92 5.950570e-10 -3.79966e-05 0.000000e+00 -1.66240e-09 +93 6.050570e-10 -3.86633e-05 0.000000e+00 -1.66242e-09 +94 6.150570e-10 -3.93300e-05 0.000000e+00 -1.66244e-09 +95 6.250570e-10 -3.99966e-05 0.000000e+00 -1.66242e-09 +96 6.350570e-10 -4.06633e-05 0.000000e+00 -1.66242e-09 +97 6.450570e-10 -4.13300e-05 0.000000e+00 -1.66243e-09 +98 6.550570e-10 -4.19966e-05 0.000000e+00 -1.66243e-09 +99 6.650570e-10 -4.26633e-05 0.000000e+00 -1.66241e-09 +100 6.750570e-10 -4.33300e-05 0.000000e+00 -1.66243e-09 +101 6.850570e-10 -4.39966e-05 0.000000e+00 -1.66242e-09 +102 6.950570e-10 -4.46633e-05 0.000000e+00 -1.66242e-09 +103 7.050570e-10 -4.53300e-05 0.000000e+00 -1.66244e-09 +104 7.150570e-10 -4.59966e-05 0.000000e+00 -1.66241e-09 +105 7.250570e-10 -4.66633e-05 0.000000e+00 -1.66242e-09 +106 7.350570e-10 -4.73300e-05 0.000000e+00 -1.66244e-09 +107 7.450570e-10 -4.79966e-05 0.000000e+00 -1.66241e-09 +108 7.550570e-10 -4.86633e-05 0.000000e+00 -1.66243e-09 +109 7.650570e-10 -4.93300e-05 0.000000e+00 -1.66240e-09 +110 7.750570e-10 -4.99966e-05 0.000000e+00 -1.66243e-09 +111 7.850570e-10 -5.06633e-05 0.000000e+00 -1.66241e-09 +112 7.950570e-10 -5.13300e-05 0.000000e+00 -1.66243e-09 + +Index time v_v1#branch v_v2#branch v_v3#branch +-------------------------------------------------------------------------------- +113 8.050570e-10 -5.19966e-05 0.000000e+00 -1.66244e-09 +114 8.150570e-10 -5.26633e-05 0.000000e+00 -1.66241e-09 +115 8.250570e-10 -5.33300e-05 0.000000e+00 -1.66242e-09 +116 8.350570e-10 -5.39966e-05 0.000000e+00 -1.66243e-09 +117 8.450570e-10 -5.46633e-05 0.000000e+00 -1.66244e-09 +118 8.550570e-10 -5.53300e-05 0.000000e+00 -1.66240e-09 +119 8.650570e-10 -5.59966e-05 0.000000e+00 -1.66243e-09 +120 8.750570e-10 -5.66633e-05 0.000000e+00 -1.66242e-09 +121 8.850570e-10 -5.73300e-05 0.000000e+00 -1.66241e-09 +122 8.950570e-10 -5.79966e-05 0.000000e+00 -1.66243e-09 +123 9.050570e-10 -5.86633e-05 0.000000e+00 -1.66244e-09 +124 9.150570e-10 -5.93300e-05 0.000000e+00 -1.66241e-09 +125 9.250570e-10 -5.99966e-05 0.000000e+00 -1.66240e-09 +126 9.350570e-10 -6.06633e-05 0.000000e+00 -1.66244e-09 +127 9.450570e-10 -6.13300e-05 0.000000e+00 -1.66244e-09 +128 9.550570e-10 -6.19966e-05 0.000000e+00 -1.66240e-09 +129 9.650570e-10 -6.26633e-05 0.000000e+00 -1.66243e-09 +130 9.750570e-10 -6.33300e-05 0.000000e+00 -1.66244e-09 +131 9.850570e-10 -6.39966e-05 0.000000e+00 -1.66237e-09 +132 9.950570e-10 -6.46633e-05 0.000000e+00 -1.66246e-09 +133 1.005057e-09 -6.53300e-05 0.000000e+00 -1.66241e-09 +134 1.015057e-09 -6.59966e-05 0.000000e+00 -1.66242e-09 +135 1.025057e-09 -6.66633e-05 0.000000e+00 -1.66245e-09 +136 1.035057e-09 -6.73300e-05 0.000000e+00 -1.66243e-09 +137 1.045057e-09 -6.79966e-05 0.000000e+00 -1.66240e-09 +138 1.055057e-09 -6.86633e-05 0.000000e+00 -1.66240e-09 +139 1.065057e-09 -6.93300e-05 0.000000e+00 -1.66243e-09 +140 1.075057e-09 -6.99966e-05 0.000000e+00 -1.66243e-09 +141 1.085057e-09 -7.06633e-05 0.000000e+00 -1.66243e-09 +142 1.095057e-09 -7.13300e-05 0.000000e+00 -1.66240e-09 +143 1.105057e-09 -7.19966e-05 0.000000e+00 -1.66240e-09 +144 1.115057e-09 -7.26633e-05 0.000000e+00 -1.66243e-09 +145 1.125057e-09 -7.33300e-05 0.000000e+00 -1.66243e-09 +146 1.135057e-09 -7.39966e-05 0.000000e+00 -1.66243e-09 +147 1.145057e-09 -7.46633e-05 0.000000e+00 -1.66243e-09 +148 1.155057e-09 -7.53300e-05 0.000000e+00 -1.66243e-09 +149 1.165057e-09 -7.59966e-05 0.000000e+00 -1.66243e-09 +150 1.175057e-09 -7.66633e-05 0.000000e+00 -1.66243e-09 +151 1.185057e-09 -7.73300e-05 0.000000e+00 -1.66243e-09 +152 1.195057e-09 -7.79966e-05 0.000000e+00 -1.66243e-09 +153 1.205057e-09 -7.86633e-05 0.000000e+00 -1.66240e-09 +154 1.215057e-09 -7.93300e-05 0.000000e+00 -1.66241e-09 +155 1.225057e-09 -7.99966e-05 0.000000e+00 -1.66243e-09 +156 1.235057e-09 -8.06633e-05 0.000000e+00 -1.66243e-09 +157 1.245057e-09 -8.13300e-05 0.000000e+00 -1.66243e-09 +158 1.255057e-09 -8.19966e-05 0.000000e+00 -1.66240e-09 +159 1.265057e-09 -8.26633e-05 0.000000e+00 -1.66243e-09 +160 1.275057e-09 -8.33300e-05 0.000000e+00 -1.66243e-09 +161 1.285057e-09 -8.39966e-05 0.000000e+00 -1.66245e-09 +162 1.295057e-09 -8.46633e-05 0.000000e+00 -1.66240e-09 +163 1.305057e-09 -8.53300e-05 0.000000e+00 -1.66241e-09 +164 1.315057e-09 -8.59966e-05 0.000000e+00 -1.66246e-09 +165 1.325057e-09 -8.66633e-05 0.000000e+00 -1.66240e-09 +166 1.335057e-09 -8.73300e-05 0.000000e+00 -1.66241e-09 +167 1.345057e-09 -8.79966e-05 0.000000e+00 -1.66241e-09 +168 1.355057e-09 -8.86633e-05 0.000000e+00 -1.66246e-09 +169 1.365057e-09 -8.93300e-05 0.000000e+00 -1.66242e-09 +170 1.375057e-09 -8.99966e-05 0.000000e+00 -1.66237e-09 + +Index time v_v1#branch v_v2#branch v_v3#branch +-------------------------------------------------------------------------------- +171 1.385057e-09 -9.06633e-05 0.000000e+00 -1.66248e-09 +172 1.395057e-09 -9.13300e-05 0.000000e+00 -1.66237e-09 +173 1.405057e-09 -9.19966e-05 0.000000e+00 -1.66243e-09 +174 1.415057e-09 -9.26633e-05 0.000000e+00 -1.66245e-09 +175 1.425057e-09 -9.33300e-05 0.000000e+00 -1.66243e-09 +176 1.435057e-09 -9.39966e-05 0.000000e+00 -1.66240e-09 +177 1.445057e-09 -9.46633e-05 0.000000e+00 -1.66246e-09 +178 1.455057e-09 -9.53300e-05 0.000000e+00 -1.66237e-09 +179 1.465057e-09 -9.59966e-05 0.000000e+00 -1.66243e-09 +180 1.475057e-09 -9.66633e-05 0.000000e+00 -1.66245e-09 +181 1.485057e-09 -9.73300e-05 0.000000e+00 -1.66238e-09 +182 1.495057e-09 -9.79966e-05 0.000000e+00 -1.66244e-09 +183 1.505057e-09 -9.86633e-05 0.000000e+00 -1.66245e-09 +184 1.515057e-09 -9.93300e-05 0.000000e+00 -1.66237e-09 +185 1.525057e-09 -9.99966e-05 0.000000e+00 -1.66244e-09 +186 1.535057e-09 -1.00663e-04 0.000000e+00 -1.66243e-09 +187 1.545057e-09 -1.01330e-04 0.000000e+00 -1.66245e-09 +188 1.555057e-09 -1.01997e-04 0.000000e+00 -1.66240e-09 +189 1.565057e-09 -1.02663e-04 0.000000e+00 -1.66241e-09 +190 1.575057e-09 -1.03330e-04 0.000000e+00 -1.66245e-09 +191 1.585057e-09 -1.03997e-04 0.000000e+00 -1.66240e-09 +192 1.595057e-09 -1.04663e-04 0.000000e+00 -1.66238e-09 +193 1.605057e-09 -1.05330e-04 0.000000e+00 -1.66248e-09 +194 1.615057e-09 -1.05997e-04 0.000000e+00 -1.66240e-09 +195 1.625057e-09 -1.06663e-04 0.000000e+00 -1.66243e-09 +196 1.635057e-09 -1.07330e-04 0.000000e+00 -1.66243e-09 +197 1.645057e-09 -1.07997e-04 0.000000e+00 -1.66243e-09 +198 1.655057e-09 -1.08663e-04 0.000000e+00 -1.66240e-09 +199 1.665057e-09 -1.09330e-04 0.000000e+00 -1.66241e-09 +200 1.675057e-09 -1.09997e-04 0.000000e+00 -1.66248e-09 +201 1.685057e-09 -1.10663e-04 0.000000e+00 -1.66237e-09 +202 1.695057e-09 -1.11330e-04 0.000000e+00 -1.66241e-09 +203 1.705057e-09 -1.11997e-04 0.000000e+00 -1.66248e-09 +204 1.715057e-09 -1.12663e-04 0.000000e+00 -1.66237e-09 +205 1.725057e-09 -1.13330e-04 0.000000e+00 -1.66246e-09 +206 1.735057e-09 -1.13997e-04 0.000000e+00 -1.66240e-09 +207 1.745057e-09 -1.14663e-04 0.000000e+00 -1.66241e-09 +208 1.755057e-09 -1.15330e-04 0.000000e+00 -1.66245e-09 +209 1.765057e-09 -1.15997e-04 0.000000e+00 -1.66243e-09 +210 1.775057e-09 -1.16663e-04 0.000000e+00 -1.66240e-09 +211 1.785057e-09 -1.17330e-04 0.000000e+00 -1.66238e-09 +212 1.795057e-09 -1.17997e-04 0.000000e+00 -1.66249e-09 +213 1.805057e-09 -1.18663e-04 0.000000e+00 -1.66240e-09 +214 1.815057e-09 -1.19330e-04 0.000000e+00 -1.66241e-09 +215 1.825057e-09 -1.19997e-04 0.000000e+00 -1.66245e-09 +216 1.835057e-09 -1.20663e-04 0.000000e+00 -1.66243e-09 +217 1.845057e-09 -1.21330e-04 0.000000e+00 -1.66240e-09 +218 1.855057e-09 -1.21997e-04 0.000000e+00 -1.66243e-09 +219 1.865057e-09 -1.22663e-04 0.000000e+00 -1.66243e-09 +220 1.875057e-09 -1.23330e-04 0.000000e+00 -1.66243e-09 +221 1.885057e-09 -1.23997e-04 0.000000e+00 -1.66240e-09 +222 1.895057e-09 -1.24663e-04 0.000000e+00 -1.66243e-09 +223 1.905057e-09 -1.25330e-04 0.000000e+00 -1.66238e-09 +224 1.915057e-09 -1.25997e-04 0.000000e+00 -1.66246e-09 +225 1.925057e-09 -1.26663e-04 0.000000e+00 -1.66245e-09 +226 1.935057e-09 -1.27330e-04 0.000000e+00 -1.66243e-09 +227 1.945057e-09 -1.27997e-04 0.000000e+00 -1.66243e-09 +228 1.955057e-09 -1.28663e-04 0.000000e+00 -1.66240e-09 + +Index time v_v1#branch v_v2#branch v_v3#branch +-------------------------------------------------------------------------------- +229 1.965057e-09 -1.29330e-04 0.000000e+00 -1.66241e-09 +230 1.975057e-09 -1.29997e-04 0.000000e+00 -1.66246e-09 +231 1.985057e-09 -1.30663e-04 0.000000e+00 -1.66232e-09 +232 1.995057e-09 -1.31330e-04 0.000000e+00 -1.66249e-09 +233 2.005057e-09 -1.31997e-04 0.000000e+00 -1.66240e-09 +234 2.015057e-09 -1.32663e-04 0.000000e+00 -1.66238e-09 +235 2.025057e-09 -1.33330e-04 0.000000e+00 -1.66249e-09 +236 2.035057e-09 -1.33997e-04 0.000000e+00 -1.66240e-09 +237 2.045057e-09 -1.34663e-04 0.000000e+00 -1.66246e-09 +238 2.055057e-09 -1.35330e-04 0.000000e+00 -1.66240e-09 +239 2.065057e-09 -1.35997e-04 0.000000e+00 -1.66243e-09 +240 2.075057e-09 -1.36663e-04 0.000000e+00 -1.66240e-09 +241 2.085057e-09 -1.37330e-04 0.000000e+00 -1.66246e-09 +242 2.095057e-09 -1.37997e-04 0.000000e+00 -1.66245e-09 +243 2.105057e-09 -1.38663e-04 0.000000e+00 -1.66235e-09 +244 2.115057e-09 -1.39330e-04 0.000000e+00 -1.66251e-09 +245 2.125057e-09 -1.39997e-04 0.000000e+00 -1.66234e-09 +246 2.135057e-09 -1.40663e-04 0.000000e+00 -1.66246e-09 +247 2.145057e-09 -1.41330e-04 0.000000e+00 -1.66240e-09 +248 2.155057e-09 -1.41997e-04 0.000000e+00 -1.66241e-09 +249 2.165057e-09 -1.42663e-04 0.000000e+00 -1.66246e-09 +250 2.175057e-09 -1.43330e-04 0.000000e+00 -1.66235e-09 +251 2.185057e-09 -1.43997e-04 0.000000e+00 -1.66256e-09 +252 2.195057e-09 -1.44663e-04 0.000000e+00 -1.66234e-09 +253 2.205057e-09 -1.45330e-04 0.000000e+00 -1.66241e-09 +254 2.215057e-09 -1.45997e-04 0.000000e+00 -1.66240e-09 +255 2.225057e-09 -1.46663e-04 0.000000e+00 -1.66241e-09 +256 2.235057e-09 -1.47330e-04 0.000000e+00 -1.66241e-09 +257 2.245057e-09 -1.47997e-04 0.000000e+00 -1.66246e-09 +258 2.255057e-09 -1.48663e-04 0.000000e+00 -1.66245e-09 +259 2.265057e-09 -1.49330e-04 0.000000e+00 -1.66235e-09 +260 2.275057e-09 -1.49997e-04 0.000000e+00 -1.66246e-09 +261 2.285057e-09 -1.50663e-04 0.000000e+00 -1.66250e-09 +262 2.295057e-09 -1.51330e-04 0.000000e+00 -1.66235e-09 +263 2.305057e-09 -1.51997e-04 0.000000e+00 -1.66246e-09 +264 2.315057e-09 -1.52663e-04 0.000000e+00 -1.66240e-09 +265 2.325057e-09 -1.53330e-04 0.000000e+00 -1.66241e-09 +266 2.335057e-09 -1.53997e-04 0.000000e+00 -1.66246e-09 +267 2.345057e-09 -1.54663e-04 0.000000e+00 -1.66240e-09 +268 2.355057e-09 -1.55330e-04 0.000000e+00 -1.66241e-09 +269 2.365057e-09 -1.55997e-04 0.000000e+00 -1.66246e-09 +270 2.375057e-09 -1.56663e-04 0.000000e+00 -1.66245e-09 +271 2.385057e-09 -1.57330e-04 0.000000e+00 -1.66235e-09 +272 2.395057e-09 -1.57997e-04 0.000000e+00 -1.66241e-09 +273 2.405057e-09 -1.58663e-04 0.000000e+00 -1.66251e-09 +274 2.415057e-09 -1.59330e-04 0.000000e+00 -1.66245e-09 +275 2.425057e-09 -1.59997e-04 0.000000e+00 -1.66240e-09 +276 2.435057e-09 -1.60663e-04 0.000000e+00 -1.66241e-09 +277 2.445057e-09 -1.61330e-04 0.000000e+00 -1.66240e-09 +278 2.455057e-09 -1.61997e-04 0.000000e+00 -1.66241e-09 +279 2.465057e-09 -1.62663e-04 0.000000e+00 -1.66235e-09 +280 2.475057e-09 -1.63330e-04 0.000000e+00 -1.66251e-09 +281 2.485057e-09 -1.63997e-04 0.000000e+00 -1.66239e-09 +282 2.495057e-09 -1.64663e-04 0.000000e+00 -1.66241e-09 +283 2.500000e-09 -1.64993e-04 0.000000e+00 -1.66255e-09 + +CPU time since last call: 0.028 seconds. + +Total CPU time: 0.028 seconds. + +Total DRAM available = 7774.257812 MB. +DRAM currently available = 3526.550781 MB. +Total ngspice program size = 15.930664 MB. +Resident set size = 1.977539 MB. +Shared ngspice pages = 1.665039 MB. +Text (code) pages = 1.453125 MB. +Stack = 0 bytes. +Library pages = 414.000 kB. + diff --git a/test/test-files/test_engine_ngspice_watcher/error/step_zero/input.netlist b/test/test-files/test_engine_ngspice_watcher/error/step_zero/input.netlist new file mode 100644 index 0000000..7d90d8c --- /dev/null +++ b/test/test-files/test_engine_ngspice_watcher/error/step_zero/input.netlist @@ -0,0 +1,24 @@ +* /home/michi/tryProgressBar.oregano +*---------------------------------------------- +* ngspice - NETLIST +.options OUT=120 +*------------- Models ------------------------- +.include /usr/local/share/oregano/models/1N4148.model +*------------- Circuit Description------------- +V_V3 5 1 dc 0 +R_R1 3 0 10k +D_D1 5 3 D1N4148 +S1 1 0 2 0 M_S1 +.model M_S1 sw(VT=20 VH=0.0 RON=0.1 ROFF=100G) +V_V2 2 0 dc 0.0 ac 0.0 PULSE -5 25 0.0 0 0 1.0u 10u +L_L1 4 1 300uH +V_V1 4 0 dc 20 +C_C1 3 0 100u IC=60 + +*---------------------------------------------- +.tran 0.000000e+00 2.500000e-08 0.000000e+00 uic +.print tran all + +.op + +.END diff --git a/test/test-files/test_engine_ngspice_watcher/error/step_zero/result/actual.txt b/test/test-files/test_engine_ngspice_watcher/error/step_zero/result/actual.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/test-files/test_engine_ngspice_watcher/error/step_zero/result/actual.txt diff --git a/test/test-files/test_engine_ngspice_watcher/error/step_zero/result/expected.txt b/test/test-files/test_engine_ngspice_watcher/error/step_zero/result/expected.txt new file mode 100644 index 0000000..f2630a4 --- /dev/null +++ b/test/test-files/test_engine_ngspice_watcher/error/step_zero/result/expected.txt @@ -0,0 +1,5 @@ + +Circuit: * /home/michi/tryprogressbar.oregano + +Error on line 19 : .tran 0.000000e+00 2.500000e-08 0.000000e+00 uic + TSTEP is invalid, must be greater than zero. diff --git a/test/test.c b/test/test.c new file mode 100644 index 0000000..9741532 --- /dev/null +++ b/test/test.c @@ -0,0 +1,45 @@ +#include <glib.h> + +// may be already defined, if not: +#ifndef DEBUG_FORCE_FAIL +#define DEBUG_FORCE_FAIL 0 +#endif + +#include "helper.c" +#include "test_wire.c" +#include "test_engine.c" +#include "test_nodestore.c" +#include "test_update_connection_designators.c" +#include "test_thread_pipe.c" +#include "test_engine_ngspice.c" + +#if DEBUG_FORCE_FAIL +void +test_false () +{ + g_assert (FALSE==TRUE); +} +#endif + +int +main (int argc, char *argv[]) +{ +#if !(GLIB_CHECK_VERSION(2,36,0)) + g_type_init(); +#endif + + g_test_init (&argc, &argv, NULL); + + g_test_add_func ("/core/coords", test_coords); + g_test_add_func ("/core/model/wire/intersection", test_wire_intersection); + g_test_add_func ("/core/model/wire/tcrossing", test_wire_tcrossing); + g_test_add_func ("/core/model/nodestore", test_nodestore); + g_test_add_func ("/core/engine", test_engine); + add_funcs_test_update_connection_designators(); + add_funcs_test_thread_pipe_buffered(); + add_funcs_test_engine_ngspice(); +#if DEBUG_FORCE_FAIL + g_test_add_func ("/false", test_false); +#endif + return g_test_run (); +} diff --git a/test/test_engine.c b/test/test_engine.c new file mode 100644 index 0000000..5a96f0c --- /dev/null +++ b/test/test_engine.c @@ -0,0 +1,33 @@ +#ifndef TEST_ENGINE +#define TEST_ENGINE + +#include <glib.h> + +void +test_engine () +{ + extern gchar** get_variables (const gchar *str, gint *count); + + const gchar *test[] = { + " foo bar\twhat \t the\t heck \tis this", + "foo bar\twhat \t the\t heck \tis this\t ", + " \tfoo bar\twhat \t the\t heck \tis this\t ", + "\t foo bar what \t the\t heck \tis this \t", + "\n foo bar what \n the\n heck \nis\t this \n", + " \nfoo bar\t\twhat \t\n\t the\n heck \nis\t this\n\n\n", + NULL + }; + const gchar *const expected[] = {"foo","bar","what","the","heck","is","this"}; + gint i,j, k; + + for (i=0; test[i]; i++) { + gchar **v = get_variables (test[i], &k); + g_assert_cmpint (k,==,7); + for (j=0; j<k; j++) { + g_assert_cmpstr (v[j], ==, expected[j]); + } + g_strfreev (v); + } +} + +#endif diff --git a/test/test_engine_ngspice.c b/test/test_engine_ngspice.c new file mode 100644 index 0000000..56a039d --- /dev/null +++ b/test/test_engine_ngspice.c @@ -0,0 +1,223 @@ +/* + * test_engine_ngspice.c + * + * + * Authors: + * Michi <st101564@stud.uni-stuttgart.de> + * + * Web page: https://ahoi.io/project/oregano + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include "../src/engines/ngspice-watcher.h" +#include <glib.h> +#include <glib/gstdio.h> +#include <glib/gprintf.h> + +static void test_engine_ngspice_basic(); +static void test_engine_ngspice_error_no_such_file_or_directory(); +static void test_engine_ngspice_error_step_zero(); + +void +add_funcs_test_engine_ngspice() { + g_test_add_func ("/core/engine/ngspice/watcher/basic", test_engine_ngspice_basic); + g_test_add_func ("/core/engine/ngspice/watcher/error/no_such_file_or_directory", test_engine_ngspice_error_no_such_file_or_directory); + g_test_add_func ("/core/engine/ngspice/watcher/error/step_zero", test_engine_ngspice_error_step_zero); +} + +static void test_engine_ngspice_log_append_error(GList **list, const gchar *string) { + *list = g_list_append(*list, g_strdup(string)); +} + +static void print_log(const GList *list) { + for (const GList *walker = list; walker; walker = walker->next) + g_printf("%s", (char *)walker->data); +} + +typedef struct { + NgspiceWatcherBuildAndLaunchResources *resources; + OreganoNgSpice *ngspice; + GMainLoop *loop; + GList *log_list; + SimSettings *sim_settings; +} TestEngineNgspiceResources; + +static TestEngineNgspiceResources *test_engine_ngspice_resources_new() { + TestEngineNgspiceResources *test_resources = g_new0(TestEngineNgspiceResources, 1); + + + test_resources->resources = g_new0(NgspiceWatcherBuildAndLaunchResources, 1); + NgspiceWatcherBuildAndLaunchResources *resources = test_resources->resources; + test_resources->ngspice = OREGANO_NGSPICE(oregano_spice_new(NULL, FALSE)); + OreganoNgSpice *ngspice = test_resources->ngspice; + GMainLoop *loop = g_main_loop_new(NULL, FALSE); + test_resources->loop = loop; + g_signal_connect_swapped(G_OBJECT(ngspice), "done", G_CALLBACK(g_main_loop_quit), loop); + g_signal_connect_swapped(G_OBJECT(ngspice), "aborted", G_CALLBACK(g_main_loop_quit), loop); + + resources->aborted = &ngspice->priv->aborted; + resources->analysis = &ngspice->priv->analysis; + resources->child_pid = &ngspice->priv->child_pid; + resources->current = &ngspice->priv->current; + resources->emit_instance = ngspice; + + resources->log.log = (gpointer)&test_resources->log_list; + resources->log.log_append = NULL; + resources->log.log_append_error = (LogFunction)test_engine_ngspice_log_append_error; + + resources->num_analysis = &ngspice->priv->num_analysis; + resources->progress_ngspice = &ngspice->priv->progress_ngspice; + resources->progress_reader = &ngspice->priv->progress_reader; + test_resources->sim_settings = sim_settings_new(NULL); + resources->sim_settings = test_resources->sim_settings; + resources->netlist_file = g_strdup("/tmp/netlist.tmp"); + resources->ngspice_result_file = g_strdup("/tmp/netlist.lst"); + + resources->cancel_info = ngspice->priv->cancel_info; + cancel_info_subscribe(resources->cancel_info); + + return test_resources; +} + +static void test_engine_ngspice_resources_finalize(TestEngineNgspiceResources *test_resources) { + NgspiceWatcherBuildAndLaunchResources *resources = test_resources->resources; + + g_main_loop_unref(test_resources->loop); + + sim_settings_finalize(test_resources->sim_settings); + g_object_unref(test_resources->ngspice); + + g_list_free_full(test_resources->log_list, g_free); + + ngspice_watcher_build_and_launch_resources_finalize(resources); +} + +static void test_engine_ngspice_basic() { + + TestEngineNgspiceResources *test_resources = test_engine_ngspice_resources_new(); + + g_autofree gchar *test_dir = get_test_base_dir(); + + g_free(test_resources->resources->netlist_file); + test_resources->resources->netlist_file = g_strdup_printf("%s/test-files/test_engine_ngspice_watcher/basic/input.netlist", test_dir); + + g_free(test_resources->resources->ngspice_result_file); + test_resources->resources->ngspice_result_file = g_strdup_printf("%s/test-files/test_engine_ngspice_watcher/basic/result/actual.txt", test_dir); + + g_autofree gchar *actual_file = g_strdup_printf("%s/test-files/test_engine_ngspice_watcher/basic/result/actual.txt", test_dir); + g_autofree gchar *expected_file = g_strdup_printf("%s/test-files/test_engine_ngspice_watcher/basic/result/expected.txt", test_dir); + + ngspice_watcher_build_and_launch(test_resources->resources); + g_main_loop_run(test_resources->loop); + print_log(test_resources->log_list); + + test_engine_ngspice_resources_finalize(test_resources); + + g_autofree gchar *actual_content = NULL; + gsize actual_size; + g_file_get_contents(actual_file, &actual_content, &actual_size, NULL); + + g_autofree gchar *expected_content = NULL; + gsize expected_size; + g_file_get_contents(expected_file, &expected_content, &expected_size, NULL); + + // FIXME this comparision is too cumbersome and error prone + // any kind of change in the ngspice output will brake this + // we should only compare the lines which are considered + // number output of the simulation + // g_assert_true(expected_size > 350); + // g_assert_true(actual_size > expected_size - 350); + // double distance = 0; + // for (gsize i = 0; i < expected_size - 350; i++) { + // distance += ABS(actual_content[i] - expected_content[i]); + // } + // FIXME this will never work reliably + // g_assert_true(distance < 3*16*20); +} + +static void test_engine_ngspice_error_no_such_file_or_directory() { + TestEngineNgspiceResources *test_resources = test_engine_ngspice_resources_new(); + + // make sure that the given file does not exist + g_free(test_resources->resources->netlist_file); + gint fd = g_file_open_tmp(NULL, &test_resources->resources->netlist_file, NULL); + g_close(fd, NULL); + g_remove(test_resources->resources->netlist_file); + + ngspice_watcher_build_and_launch(test_resources->resources); + g_main_loop_run(test_resources->loop); + + g_assert_nonnull(test_resources->log_list); + g_assert_true(g_str_has_suffix(test_resources->log_list->data, " No such file or directory\n")); + + test_engine_ngspice_resources_finalize(test_resources); +} + +static void test_engine_ngspice_error_step_zero() { + TestEngineNgspiceResources *test_resources = test_engine_ngspice_resources_new(); + + + g_autofree gchar *test_dir = get_test_base_dir(); + + g_free(test_resources->resources->netlist_file); + test_resources->resources->netlist_file = g_strdup_printf("%s/test-files/test_engine_ngspice_watcher/error/step_zero/input.netlist", test_dir); + + g_free(test_resources->resources->ngspice_result_file); + test_resources->resources->ngspice_result_file = g_strdup_printf("%s/test-files/test_engine_ngspice_watcher/error/step_zero/result/actual.txt", test_dir); + + g_autofree gchar *actual_file = g_strdup_printf("%s/test-files/test_engine_ngspice_watcher/error/step_zero/result/actual.txt", test_dir); + g_autofree gchar *expected_file = g_strdup_printf("%s/test-files/test_engine_ngspice_watcher/error/step_zero/result/expected.txt", test_dir); + + + ngspice_watcher_build_and_launch(test_resources->resources); + g_main_loop_run(test_resources->loop); + + g_autofree gchar *actual_content = NULL; + gsize actual_size; + g_file_get_contents(actual_file, &actual_content, &actual_size, NULL); + + g_autofree gchar *expected_content = NULL; + gsize expected_size; + g_file_get_contents(expected_file, &expected_content, &expected_size, NULL); + + // + // g_assert_cmpstr(actual_content, ==, expected_content); + // + // const gchar *array[] = { + // "\n", + // "ngspice stopped due to error, no simulation run!\n", + // "\n", + // "ERROR: fatal error in ngspice, exit(1)\n", + // "### ngspice exited abnormally ###\n", + // "### netlist error detected ###\n", + // "You made a mistake in the simulation settings or part properties.\n", + // "The following information will help you to analyze the error.\n", + // NULL + // }; + // + // GList *walker = test_resources->log_list; + // + // for (int i = 0; array[i] != NULL; i++) { + // g_assert_nonnull(walker); + // g_assert_nonnull(walker->data); + // g_assert_cmpstr(walker->data, ==, array[i]); + // walker = walker->next; + // } + + test_engine_ngspice_resources_finalize(test_resources); +} diff --git a/test/test_nodestore.c b/test/test_nodestore.c new file mode 100644 index 0000000..50bbd39 --- /dev/null +++ b/test/test_nodestore.c @@ -0,0 +1,65 @@ +#ifndef TEST_NODESTORE +#define TEST_NODESTORE + +#include <glib.h> + +void +test_nodestore () +{ + gint i; + NodeStore *store; + Part *part; + Wire *wire; + Node *node; + + Coords p_pos = {111.,22.}; + Coords n_pos = {111.,33.}; + Coords w_pos = {111.,7.}; + Coords w_len = {0.,88.}; + + store = node_store_new (); + part = part_new (); + wire = wire_new (); + + // add one Pin with a offset that is on the wire when rotation N*Pi times + Pin *pin = g_new (Pin, 1); + pin->offset.x = n_pos.x - p_pos.x; + pin->offset.y = n_pos.y - p_pos.y; + GSList *list = NULL; + list = g_slist_prepend (list, pin); + part_set_pins (part, list); + g_slist_free (list); + + item_data_set_pos (ITEM_DATA (part), &p_pos); + + item_data_set_pos (ITEM_DATA (wire), &w_pos); + wire_set_length (wire, &w_len); + + node_store_add_part (store, part); + node_store_add_wire (store, wire); + + { + for (i=0; i<11; i++) + item_data_rotate (ITEM_DATA (part), 90, NULL); + item_data_set_pos (ITEM_DATA (part), &w_len); + for (i=0; i<4; i++) + item_data_rotate (ITEM_DATA (part), 90, NULL); + item_data_set_pos (ITEM_DATA (part), &n_pos); + for (i=0; i<7; i++) + item_data_rotate (ITEM_DATA (part), -90, NULL); + item_data_set_pos (ITEM_DATA (part), &p_pos); + } + g_assert (node_store_is_wire_at_pos (store, n_pos)); + g_assert (node_store_is_pin_at_pos (store, n_pos)); + + node = node_store_get_node (store, n_pos); + g_assert (!node_is_empty (node)); + g_assert (node_needs_dot (node)); + + node_store_remove_part (store, part); + node_store_remove_wire (store, wire); + + g_object_unref (store); +} + +#endif diff --git a/test/test_thread_pipe.c b/test/test_thread_pipe.c new file mode 100644 index 0000000..3de6a3b --- /dev/null +++ b/test/test_thread_pipe.c @@ -0,0 +1,398 @@ +/* + * test_thread_pipe.c + * + * + * Authors: + * Michi <st101564@stud.uni-stuttgart.de> + * + * Web page: https://ahoi.io/project/oregano + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef TEST_THREAD_PIPE_H_ +#define TEST_THREAD_PIPE_H_ + +#include <string.h> +#include "../src/tools/thread-pipe.h" + + +typedef struct _GTestAddDataFuncParameters GTestAddDataFuncParameters; +static gchar *get_testpath_g_test_add_data_func_parameters(GTestAddDataFuncParameters *parameters); +static gconstpointer get_test_data_g_test_add_data_func_parameters(GTestAddDataFuncParameters *parameters); +static GTestDataFunc get_test_func_g_test_add_data_func_parameters(GTestAddDataFuncParameters *parameters); +static GTestAddDataFuncParameters *get_next_g_test_add_data_func_parameters(GTestAddDataFuncParameters *parameters); + +static GTestAddDataFuncParameters *test_thread_pipe_buffered_create_test_data(); + +/** + * Automatically creates some test cases. + */ +void add_funcs_test_thread_pipe_buffered() { + GTestAddDataFuncParameters *parameters = test_thread_pipe_buffered_create_test_data(); + while (parameters) { + gchar *testpath = get_testpath_g_test_add_data_func_parameters(parameters); + gconstpointer test_data = get_test_data_g_test_add_data_func_parameters(parameters); + GTestDataFunc test_func = get_test_func_g_test_add_data_func_parameters(parameters); + GTestAddDataFuncParameters *next = get_next_g_test_add_data_func_parameters(parameters); + + g_test_add_data_func(testpath, test_data, test_func); + GTestAddDataFuncParameters *ptr = parameters; + parameters = next; + g_free(ptr); + } +} + +struct _GTestAddDataFuncParameters { + gchar *testpath; + gconstpointer test_data; + GTestDataFunc test_func; + GTestAddDataFuncParameters *next; +}; + +/** + * getters for GTestAddDataFuncParameters + */ +static gchar *get_testpath_g_test_add_data_func_parameters(GTestAddDataFuncParameters *parameters) { return parameters->testpath; } +static gconstpointer get_test_data_g_test_add_data_func_parameters(GTestAddDataFuncParameters *parameters) { return parameters->test_data; } +static GTestDataFunc get_test_func_g_test_add_data_func_parameters(GTestAddDataFuncParameters *parameters) { return parameters->test_func; } +static GTestAddDataFuncParameters *get_next_g_test_add_data_func_parameters(GTestAddDataFuncParameters *parameters) { return parameters->next; } + + +typedef struct _TestThreadPipeBufferedTestData TestThreadPipeBufferedTestData; +typedef struct _TestThreadPipeBufferedThreadData TestThreadPipeBufferedThreadData; +typedef struct _TestThreadPipeBufferedData TestThreadPipeBufferedData; + +static gchar *test_thread_pipe_buffered_get_testpath(guint *parameter_config, gchar ***parameter_names); +static TestThreadPipeBufferedTestData *test_thread_pipe_buffered_test_data_new(guint *parameter_config); +static void test_thread_pipe_buffered_test_func(TestThreadPipeBufferedTestData *test_data); +static gboolean test_thread_pipe_buffered_variate_parameters(guint *parameter_config, gchar ***parameter_names); +static guint test_thread_pipe_buffered_ptr_array_length(gpointer *array); + +static gpointer test_thread_pipe_buffered_writer(TestThreadPipeBufferedThreadData *pipe_data); +static gpointer test_thread_pipe_buffered_reader(TestThreadPipeBufferedThreadData *pipe_data); +static TestThreadPipeBufferedData *test_thread_pipe_buffered_data_new_varargs(const gchar *str, ...); +static TestThreadPipeBufferedData *test_thread_pipe_buffered_data_new(gchar **str); +static void test_thread_pipe_buffered_data_assert_equal(TestThreadPipeBufferedData *data1, TestThreadPipeBufferedData* data2); + +struct _TestThreadPipeBufferedThreadData { + ThreadPipe *pipe; + gulong sleep; + TestThreadPipeBufferedData *data; + ThreadPipe *(*pop)(ThreadPipe *pipe, gpointer *data_out, gsize *size); +}; + +struct _TestThreadPipeBufferedTestData { + TestThreadPipeBufferedThreadData write_data; + TestThreadPipeBufferedThreadData read_data; + TestThreadPipeBufferedData *expected; +}; + +struct _TestThreadPipeBufferedData { + gpointer data; + gsize size; + TestThreadPipeBufferedData *next; +}; + +/** + * Creates generic test data out by varying parameters. + */ +static GTestAddDataFuncParameters *test_thread_pipe_buffered_create_test_data() { + //0 terminated + gchar ***parameter_list = g_new0(gchar **, 6); + parameter_list[0] = (gchar *[]){"read_write", "write_read", NULL}; + parameter_list[1] = (gchar *[]){"nowhere", "middle", "end", NULL}; + parameter_list[2] = (gchar *[]){"first", "not_first", NULL}; + parameter_list[3] = (gchar *[]){"last", "not_last", NULL}; + parameter_list[4] = (gchar *[]){"pop", "pop_line", NULL}; + + //increase function needs one field more, that's why size+1 + guint *parameters = g_new0(guint, test_thread_pipe_buffered_ptr_array_length((gpointer *)parameter_list) + 1); + parameters[1] = test_thread_pipe_buffered_ptr_array_length((gpointer *)parameter_list[1]); + parameters[2] = test_thread_pipe_buffered_ptr_array_length((gpointer *)parameter_list[2]); + parameters[3] = test_thread_pipe_buffered_ptr_array_length((gpointer *)parameter_list[3]); + GTestAddDataFuncParameters *ret_val = NULL; + GTestAddDataFuncParameters **walker = &ret_val; + + do { + *walker = g_new0(GTestAddDataFuncParameters, 1); + (*walker)->testpath = test_thread_pipe_buffered_get_testpath(parameters, parameter_list); + (*walker)->test_data = test_thread_pipe_buffered_test_data_new(parameters); + (*walker)->test_func = (GTestDataFunc)test_thread_pipe_buffered_test_func; + walker = &(*walker)->next; + } while (test_thread_pipe_buffered_variate_parameters(parameters, parameter_list)); + + return ret_val; +} + +/** + * Creates unique test path out of a given parameter specification. + */ +static gchar *test_thread_pipe_buffered_get_testpath(guint *parameter_config, gchar ***parameter_names) { + GString *ret_val = g_string_new("/tools/thread_pipe_buffered/test"); + + for (int i = 0; parameter_names[i] != NULL; i++) { + if (parameter_names[i][parameter_config[i]] != NULL) { + g_string_append_printf(ret_val, "_%s", parameter_names[i][parameter_config[i]]); + } + } + gchar *ret_val_str = ret_val->str; + g_string_free(ret_val, FALSE); + return ret_val_str; +} + +/** + * Creates generic test data out of a given parameter specification. + */ +static TestThreadPipeBufferedTestData *test_thread_pipe_buffered_test_data_new(guint *parameter_config) { + TestThreadPipeBufferedTestData *tpipe = g_new0(TestThreadPipeBufferedTestData, 1); + ThreadPipe *pipe = thread_pipe_new(0, 0); + tpipe->write_data.pipe = pipe; + tpipe->read_data.pipe = pipe; + + switch (parameter_config[0]) { + case 0: + tpipe->write_data.sleep = 10000; + break; + case 1: + tpipe->read_data.sleep = 10000; + break; + } + + switch (parameter_config[4]) { + case 0: + tpipe->read_data.pop = thread_pipe_pop; + tpipe->write_data.data = test_thread_pipe_buffered_data_new_varargs( + "asdf", + "jklö", + "qwer", + "uiop", + "yxcv", + "m,.-", + NULL); + tpipe->expected = tpipe->write_data.data; + break; + case 1: + tpipe->read_data.pop = (ThreadPipe *(*)(ThreadPipe *pipe, gpointer *data_out, gsize *size))thread_pipe_pop_line; + + GString *string = g_string_new("asdf"); + GString *string_all = g_string_new(string->str); + + if (parameter_config[1] == 1) { + g_string_append(string, "\nasdf"); + g_string_append(string_all, "\nasdf"); + } + else if (parameter_config[1] == 2) { + g_string_append(string, "\n"); + g_string_append(string_all, "\n"); + } + + GList *list_write = NULL; + list_write = g_list_append(list_write, string->str); + g_string_free(string, FALSE); + + if (parameter_config[2] == 1) { + list_write = g_list_prepend(list_write, g_strdup("asdf")); + g_string_prepend(string_all, "asdf"); + } + + if (parameter_config[3] == 1) { + list_write = g_list_append(list_write, g_strdup("asdf")); + g_string_append(string_all, "asdf"); + } + + guint length = g_list_length(list_write); + + gchar **str_array = g_new0(gchar *, length + 1); + guint i = 0; + for (GList *l = list_write; l != NULL; l = l->next, i++) + str_array[i] = l->data; + + tpipe->write_data.data = test_thread_pipe_buffered_data_new(str_array); + + gchar **splitted = g_regex_split_simple("\\n", string_all->str, 0, 0); + gchar **walker; + for (walker = splitted; *(walker + 1) != NULL; walker++) + *walker = g_strdup_printf("%s\n", *walker); + if (**walker == 0) + *walker = NULL; + + tpipe->expected = test_thread_pipe_buffered_data_new(splitted); + + break; + } + + return tpipe; +} + +/** + * Executes the test with a specified test input data. + */ +static void test_thread_pipe_buffered_test_func(TestThreadPipeBufferedTestData *test_data) { + GThread *writer = g_thread_new( + "test_thread_pipe_buffered_writer", + (GThreadFunc)test_thread_pipe_buffered_writer, + (gpointer)(&test_data->write_data)); + GThread *reader = g_thread_new( + "test_thread_pipe_buffered_reader", + (GThreadFunc)test_thread_pipe_buffered_reader, + (gpointer)(&test_data->read_data)); + + g_thread_join(writer); + g_thread_join(reader); + + test_thread_pipe_buffered_data_assert_equal(test_data->expected, test_data->read_data.data); +} + +/** + * varies the input parameter configuration differentially + */ +static gboolean test_thread_pipe_buffered_variate_parameters(guint *parameter_config, gchar ***parameter_names) { + guint parameter_names_length = test_thread_pipe_buffered_ptr_array_length((gpointer *)parameter_names); + parameter_config[0]++; + for (int i = 0; i < parameter_names_length; i++) { + if (parameter_config[i] >= test_thread_pipe_buffered_ptr_array_length((gpointer *)parameter_names[i])) { + parameter_config[i] = 0; + parameter_config[i + 1]++; + } else + break; + } +// if (parameter_config[1] == 1 && parameter_config[4] == 0) { +// parameter_config[1] = 0; +// parameter_config[4]++; +// } + + return !parameter_config[parameter_names_length]; +} + +/** + * get the length of a 0 terminated pointer array + */ +static guint test_thread_pipe_buffered_ptr_array_length(gpointer *array) { + guint ret_val = 0; + + while (array[ret_val]) + ret_val++; + + return ret_val; +} + +/** + * writes to the pushing end of a thread pipe + */ +static gpointer test_thread_pipe_buffered_writer(TestThreadPipeBufferedThreadData *pipe_data) { + TestThreadPipeBufferedData *walker = pipe_data->data; + while (walker) { + g_usleep(pipe_data->sleep); + thread_pipe_push(pipe_data->pipe, walker->data, walker->size); + walker = walker->next; + } + thread_pipe_set_write_eof(pipe_data->pipe); + + return NULL; +} + +/** + * reads the popping end of a thread pipe + */ +static gpointer test_thread_pipe_buffered_reader(TestThreadPipeBufferedThreadData *pipe_data) { + gpointer data; + gsize size; + TestThreadPipeBufferedData **walker = &pipe_data->data; + while (pipe_data->pop(pipe_data->pipe, &data, &size)) { + *walker = g_new0(TestThreadPipeBufferedData, 1); + (*walker)->data = g_memdup(data, size); + (*walker)->size = size; + walker = &(*walker)->next; + g_usleep(pipe_data->sleep); +// puts(data); + } + + return NULL; +} + +/** + * Creates a new TestThreadPipeBufferedData struct out of an array string list. + * + * The list has to be 0 terminated. + */ +static TestThreadPipeBufferedData *test_thread_pipe_buffered_data_new(gchar **str) { + TestThreadPipeBufferedData *ret_val = NULL; + TestThreadPipeBufferedData **walker = &ret_val; + for (int i = 0; str[i] != NULL; i++) { + *walker = g_new0(TestThreadPipeBufferedData, 1); + (*walker)->data = g_strdup(str[i]); + (*walker)->size = strlen(str[i]) + 1; + walker = &(*walker)->next; + } + + return ret_val; +} + +/** + * Creates a new TestThreadPipeBufferedData struct out of a vararg string list. + * + * The list has to be 0 terminated. + */ +static TestThreadPipeBufferedData *test_thread_pipe_buffered_data_new_varargs(const gchar *str, ...) { + + va_list ptr; + va_start(ptr, str); + + gchar **str_array; + size_t size; + FILE *file = open_memstream((char **)&str_array, &size); + + const gchar *asdf = str; + while (asdf) { + fwrite(&asdf, sizeof(const gchar *), 1, file); + asdf = va_arg(ptr, const gchar *); + } + fwrite(&asdf, sizeof(const gchar *), 1, file); + + fclose(file); + + TestThreadPipeBufferedData *ret_val = test_thread_pipe_buffered_data_new(str_array); + g_free(str_array); + + return ret_val; +} + +/** + * Looks for equality of two TestThreadPipeBufferedData structs. + * + * Two structs are equal if + * - size of each block is equal and + * - data of each block is equal. + */ +static void test_thread_pipe_buffered_data_assert_equal(TestThreadPipeBufferedData *data1, TestThreadPipeBufferedData* data2) { + TestThreadPipeBufferedData *walker1 = data1; + TestThreadPipeBufferedData *walker2 = data2; + + while (walker1 && walker2) { + g_assert_cmpuint(walker1->size, ==, walker2->size); + g_assert_cmpmem(walker1->data, walker1->size, walker2->data, walker2->size); + walker1 = walker1->next; + walker2 = walker2->next; + } + + g_assert_true(walker1 == NULL); + g_assert_true(walker2 == NULL); + +} + +#endif /* TEST_THREAD_PIPE_H_ */ diff --git a/test/test_update_connection_designators.c b/test/test_update_connection_designators.c new file mode 100644 index 0000000..4d01020 --- /dev/null +++ b/test/test_update_connection_designators.c @@ -0,0 +1,315 @@ +/* + * test_update_schematic.c + * + * + * Authors: + * Michi <st101564@stud.uni-stuttgart.de> + * + * Web page: https://ahoi.io/project/oregano + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef TEST_UPDATE_CONNECTION_DESIGNATORS +#define TEST_UPDATE_CONNECTION_DESIGNATORS + +#include <glib.h> + +#include "../src/model/part-property.h" +#include "../src/model/part.h" +#include "../src/model/part-private.h" + +void test_update_connection_designators_basic(); +void test_update_connection_designators_AT(); +void test_update_connection_designators_AMPERSAND_TRUE(); +void test_update_connection_designators_AMPERSAND_FALSE(); +void test_update_connection_designators_QUESTION_MARK_TRUE(); +void test_update_connection_designators_QUESTION_MARK_FALSE(); +void test_update_connection_designators_TILDE_TRUE(); +void test_update_connection_designators_TILDE_FALSE(); +void test_update_connection_designators_HASHTAG_TRUE(); +void test_update_connection_designators_HASHTAG_FALSE(); +void doit_update_connection_designators(char *names[], char *test_values[], char *expected_values[]); + +void +add_funcs_test_update_connection_designators() +{ + g_test_add_func ("/core/model/part-property/update_connection_designators/basic", test_update_connection_designators_basic); + g_test_add_func ("/core/model/part-property/update_connection_designators/AT", test_update_connection_designators_AT); + g_test_add_func ("/core/model/part-property/update_connection_designators/AMPERSAND_TRUE", test_update_connection_designators_AMPERSAND_TRUE); + g_test_add_func ("/core/model/part-property/update_connection_designators/AMPERSAND_FALSE", test_update_connection_designators_AMPERSAND_FALSE); + g_test_add_func ("/core/model/part-property/update_connection_designators/QUESTION_MARK_TRUE", test_update_connection_designators_QUESTION_MARK_TRUE); + g_test_add_func ("/core/model/part-property/update_connection_designators/QUESTION_MARK_FALSE", test_update_connection_designators_QUESTION_MARK_FALSE); + g_test_add_func ("/core/model/part-property/update_connection_designators/TILDE_TRUE", test_update_connection_designators_TILDE_TRUE); + g_test_add_func ("/core/model/part-property/update_connection_designators/TILDE_FALSE", test_update_connection_designators_TILDE_FALSE); + g_test_add_func ("/core/model/part-property/update_connection_designators/HASHTAG_TRUE", test_update_connection_designators_HASHTAG_TRUE); + g_test_add_func ("/core/model/part-property/update_connection_designators/HASHTAG_FALSE", test_update_connection_designators_HASHTAG_FALSE); +} + +void test_update_connection_designators_basic() { + char *names[] = { + "Refdes", + "Res", + "Template", + NULL }; + char *test_values[] = { + "R1", + "1k", + "@refdes %asdf %asdf @res", + NULL }; + char *expected_values[] = { + "R1", + "1k", + "@refdes %1 %2 @res", + NULL }; + doit_update_connection_designators(names, test_values, expected_values); +} + +void test_update_connection_designators_AT() { + char *names[] = { + "Refdes", + "cur", + "Template", + NULL }; + char *test_values[] = { + "G1", + "'0.001*(V( %+i )-V( %-i ))'", + "@refdes %a %b cur=@cur", + NULL }; + char *expected_values[] = { + "G1", + "'0.001*(V( %3 )-V( %4 ))'", + "@refdes %1 %2 cur=@cur", + NULL }; + doit_update_connection_designators(names, test_values, expected_values); +} + +void test_update_connection_designators_AMPERSAND_TRUE() { + char *names[] = { + "Refdes", + "mname", + "Template", + NULL }; + char *test_values[] = { + "RMOD", + "RMODEL %adsf jkloe", + "@refdes %a %b &mname %asdf ", + NULL }; + char *expected_values[] = { + "RMOD", + "RMODEL %3 jkloe", + "@refdes %1 %2 &mname %4 ", + NULL }; + doit_update_connection_designators(names, test_values, expected_values); +} + +void test_update_connection_designators_AMPERSAND_FALSE() { + char *names[] = { + "Refdes", + "Template", + NULL }; + char *test_values[] = { + "RMOD", + "@refdes %a %b &mname %asdf ", + NULL }; + char *expected_values[] = { + "RMOD", + "@refdes %1 %2 &mname %3 ", + NULL }; + doit_update_connection_designators(names, test_values, expected_values); +} + +void test_update_connection_designators_QUESTION_MARK_TRUE() { + char *names[] = { + "Refdes", + "offset", + "ampl", + "freq", + "DC", + "Template", + NULL }; + char *test_values[] = { + "V1", + "5", + "5555 %34 asdf", + "555", + "5555 %34 asdf", + "@refdes %qtg %sd SIN(@offset 0 0) ?DC|DC @DC %agoi |(ampl @ampl %agoi ( ?DC|freq @freq %agoi |", + NULL }; + char *expected_values[] = { + "V1", + "5", + "5555 %34 asdf", + "555", + "5555 %3 asdf", + "@refdes %1 %2 SIN(@offset 0 0) ?DC|DC @DC %4 |(ampl @ampl %agoi ( ?DC|freq @freq %5 |", + NULL }; + doit_update_connection_designators(names, test_values, expected_values); +} + +void test_update_connection_designators_QUESTION_MARK_FALSE() { + char *names[] = { + "Refdes", + "offset", + "ampl", + "freq", + "Template", + NULL }; + char *test_values[] = { + "V1", + "5", + "5555 %34 asdf", + "555", + "@refdes %qtg %sd SIN(@offset 0 0) ?DC|DC @DC %agoi |(ampl @ampl %agoi ( %-gh ?DC|freq @freq %agoi | %-gh ", + NULL }; + char *expected_values[] = { + "V1", + "5", + "5555 %3 asdf", + "555", + "@refdes %1 %2 SIN(@offset 0 0) ?DC|DC @DC %agoi |(ampl @ampl %4 ( %5 ?DC|freq @freq %agoi | %6 ", + NULL }; + doit_update_connection_designators(names, test_values, expected_values); +} + +void test_update_connection_designators_TILDE_TRUE() { + char *names[] = { + "Refdes", + "offset", + "ampl", + "freq", + "DC", + "Template", + NULL }; + char *test_values[] = { + "V1", + "5", + "5555 %34 asdf", + "5555 %34 freq", + "5555 %34 asdf", + "@refdes %qtg %sd SIN(@offset 0 0) ~DC|ampl %lkj @ampl|(DC %lkj @DC( ~DC|freq %lkj @freq|", + NULL }; + char *expected_values[] = { + "V1", + "5", + "5555 %34 asdf", + "5555 %34 freq", + "5555 %4 asdf", + "@refdes %1 %2 SIN(@offset 0 0) ~DC|ampl %lkj @ampl|(DC %3 @DC( ~DC|freq %lkj @freq|", + NULL }; + doit_update_connection_designators(names, test_values, expected_values); +} + +void test_update_connection_designators_TILDE_FALSE() { + char *names[] = { + "Refdes", + "offset", + "ampl", + "freq", + "Template", + NULL }; + char *test_values[] = { + "V1", + "5", + "5555 %34 asdf", + "5555 %34 freq", + "@refdes %qtg %sd SIN(@offset 0 0) ~DC|freq %lkj @freq| ~DC|ampl %lkj @ampl|(DC %lkj @DC( %-gh ", + NULL }; + char *expected_values[] = { + "V1", + "5", + "5555 %6 asdf", + "5555 %4 freq", + "@refdes %1 %2 SIN(@offset 0 0) ~DC|freq %3 @freq| ~DC|ampl %5 @ampl|(DC %lkj @DC( %7 ", + NULL }; + doit_update_connection_designators(names, test_values, expected_values); +} + +void test_update_connection_designators_HASHTAG_TRUE() { + char *names[] = { + "Refdes", + "offset", + "ampl", + "freq", + "DC", + "Template", + NULL }; + char *test_values[] = { + "V1", + "5", + "55", + "555", + "5555 %34 asdf", + "@refdes %qtg %sd SIN(@offset @ampl @freq 0 0) #DC|DC %wfl @DC %wfl | aslkhgl %jkl ", + NULL }; + char *expected_values[] = { + "V1", + "5", + "55", + "555", + "5555 %4 asdf", + "@refdes %1 %2 SIN(@offset @ampl @freq 0 0) #DC|DC %3 @DC %5 | aslkhgl %6 ", + NULL }; + doit_update_connection_designators(names, test_values, expected_values); +} + +void test_update_connection_designators_HASHTAG_FALSE() { + char *names[] = { + "Refdes", + "offset", + "ampl", + "freq", + "Template", + NULL }; + char *test_values[] = { + "RMOD", + "5", + "5555 %34 asdf", + "555", + "@refdes %qtg %sd SIN(@offset @freq 0 0) #DC|DC %jkl @ampl %wfl | %-gh jkl", + NULL }; + char *expected_values[] = { + "RMOD", + "5", + "5555 %34 asdf", + "555", + "@refdes %1 %2 SIN(@offset @freq 0 0) #DC|DC %jkl @ampl %wfl | %-gh jkl", + NULL }; + doit_update_connection_designators(names, test_values, expected_values); +} + +//this function does not free the allocated memory +//do not use this function in productive code +void doit_update_connection_designators(char *names[], char *test_values[], char *expected_values[]) { + Part *test_part = part_new(); + + Property *prop; + + for (int i = 0; names[i] != NULL; i++) { + prop = g_new0 (Property, 1); + prop->name = g_strdup(names[i]); + prop->value = g_strdup(test_values[i]); + test_part->priv->properties = g_slist_prepend(test_part->priv->properties, prop); + } + + int node_ctr = 1; + update_connection_designators(test_part, part_get_property_ref(test_part, "template"), &node_ctr); + for (int i = 0; names[i] != NULL; i++) + g_assert_cmpstr(part_get_property(test_part, names[i]), ==, expected_values[i]); +} + +#endif diff --git a/test/test_wire.c b/test/test_wire.c new file mode 100644 index 0000000..ddbeee7 --- /dev/null +++ b/test/test_wire.c @@ -0,0 +1,99 @@ +#ifndef TEST_WIRE_H +#define TEST_WIRE_H + +#include <glib.h> + +#include "coords.h" +#include "wire.h" + +void +test_coords () +{ + const Coords l1 = {-100.,+100.}; + const Coords l2 = {+100.,+100.}; + Coords tmp; + + g_assert_cmpfloat (coords_cross (&l1, &l2), ==, -2e+4); + + g_assert_cmpfloat (coords_dot (&l1,&l2), ==, 0.); + + tmp = coords_average (&l1,&l2); + g_assert_cmpfloat (tmp.x, ==, 0.); + g_assert_cmpfloat (tmp.y, ==, 100.); + + g_assert_cmpfloat (coords_euclid (&l1), ==, coords_euclid (&l2)); + + tmp = coords_sum (&l1, &l2); + g_assert_cmpfloat (tmp.x, ==, 0.); + g_assert_cmpfloat (tmp.y, ==, 200.); +} + +#define NODE_EPSILON 1e-3 +#include "node-store.h" + +void +test_wire_intersection () +{ + extern gboolean do_wires_intersect (Wire *a, Wire *b, Coords *where); + // intersection + Coords p1 = {100.,0.}; + Coords l1 = {-100.,100.}; + Coords p2 = {0.,0.}; + Coords l2 = {100.,100.}; + Coords where = {-77777.77,-77.7777}; + const Coords expected = {50.0,50.0}; + + Wire *a = wire_new (NULL); + Wire *b = wire_new (NULL); + + item_data_set_pos (ITEM_DATA (a), &p1); + wire_set_length (a, &l1); + item_data_set_pos (ITEM_DATA (b), &p2); + wire_set_length (b, &l2); + + g_assert (do_wires_intersect (a,b,&where)); + g_assert (coords_equal (&where, &expected)); + + g_object_unref (a); + g_object_unref (b); + +} + + +void +test_wire_tcrossing () +{ + extern gboolean is_t_crossing (Wire *a, Wire *b, Coords *t); + // t crossing + Coords p1 = {50.,0.}; + Coords l1 = {0., 100.}; + Coords p2 = {0.,0.}; + Coords l2 = {100.,0.}; + Coords where = {-77.77,-77.77}; + const Coords expected = p1; + + Wire *a = wire_new (NULL); + Wire *b = wire_new (NULL); + + { + item_data_set_pos (ITEM_DATA (a), &p1); + wire_set_length (a, &l1); + item_data_set_pos (ITEM_DATA (b), &p2); + wire_set_length (b, &l2); + + g_assert (is_t_crossing (a, b, &where)); + g_assert (coords_equal (&where, &expected)); + } + + { + item_data_set_pos (ITEM_DATA (a), &p1); + wire_set_length (a, &l2); + item_data_set_pos (ITEM_DATA (b), &p2); + wire_set_length (b, &l1); + + g_assert (!is_t_crossing (a, b, &where)); + } + g_object_unref (a); + g_object_unref (b); +} +#endif diff --git a/test/wscript b/test/wscript new file mode 100644 index 0000000..1b1dece --- /dev/null +++ b/test/wscript @@ -0,0 +1,18 @@ +#! /usr/bin/env python3 +# encoding: utf-8 + +def options(opt): + pass + +def configure(conf): + pass + +def build(bld): + bld.program( + features = ['c', 'glib2'], + target = 'microtests', + source = ['test.c'], + includes = ['.', '../src', '../src/tools/', '../src/engines/', '../src/gplot/', '../src/model/', '../src/sheet/'], + use = 'shared_objects', + uselib = 'M XML GOBJECT GLIB GTK3 XML GOOCANVAS GTKSOURCEVIEW3' + ) |