Complete CLI testing
This commit is contained in:
parent
4d88dac40a
commit
4105718ec6
41 changed files with 1384 additions and 7 deletions
1
test/cli/bad_input/bad.yaml
Normal file
1
test/cli/bad_input/bad.yaml
Normal file
|
@ -0,0 +1 @@
|
||||||
|
'bad input'
|
1
test/cli/bad_input/command
Normal file
1
test/cli/bad_input/command
Normal file
|
@ -0,0 +1 @@
|
||||||
|
node src/cli.js test/cli/bad_input/bad.yaml
|
1
test/cli/bad_input/error
Normal file
1
test/cli/bad_input/error
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Error: Input doesn't resolve into an object!
|
1
test/cli/big/command
Normal file
1
test/cli/big/command
Normal file
|
@ -0,0 +1 @@
|
||||||
|
node src/cli.js test/fixtures/big.yaml --debug --clean
|
13
test/cli/big/log
Normal file
13
test/cli/big/log
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Ergogen <version> CLI (Debug Mode)
|
||||||
|
|
||||||
|
Interpreting format: YAML
|
||||||
|
Preprocessing input...
|
||||||
|
Calculating variables...
|
||||||
|
Parsing points...
|
||||||
|
Generating outlines...
|
||||||
|
Extruding cases...
|
||||||
|
Scaffolding PCBs...
|
||||||
|
Cleaning output folder...
|
||||||
|
Writing output to disk...
|
||||||
|
Done.
|
||||||
|
|
33
test/cli/big/reference/canonical.yaml
Normal file
33
test/cli/big/reference/canonical.yaml
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
units:
|
||||||
|
a: 28 + u
|
||||||
|
points:
|
||||||
|
zones:
|
||||||
|
matrix:
|
||||||
|
columns:
|
||||||
|
col: {}
|
||||||
|
rows:
|
||||||
|
row: {}
|
||||||
|
outlines:
|
||||||
|
exports:
|
||||||
|
export:
|
||||||
|
-
|
||||||
|
type: keys
|
||||||
|
side: left
|
||||||
|
size: 18
|
||||||
|
_export:
|
||||||
|
-
|
||||||
|
type: keys
|
||||||
|
side: left
|
||||||
|
size: 18
|
||||||
|
cases:
|
||||||
|
export:
|
||||||
|
-
|
||||||
|
name: export
|
||||||
|
extrude: 1
|
||||||
|
_export:
|
||||||
|
-
|
||||||
|
name: export
|
||||||
|
extrude: 1
|
||||||
|
pcbs:
|
||||||
|
export: {}
|
||||||
|
_export: {}
|
36
test/cli/big/reference/cases/_export.jscad
Normal file
36
test/cli/big/reference/cases/_export.jscad
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
function export_outline_fn(){
|
||||||
|
return new CSG.Path2D([[-9,-9],[9,-9]]).appendPoint([9,9]).appendPoint([-9,9]).appendPoint([-9,-9]).close().innerToCAG()
|
||||||
|
.extrude({ offset: [0, 0, 1] });
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function _export_case_fn() {
|
||||||
|
|
||||||
|
|
||||||
|
// creating part 0 of case _export
|
||||||
|
let _export__part_0 = export_outline_fn();
|
||||||
|
|
||||||
|
// make sure that rotations are relative
|
||||||
|
let _export__part_0_bounds = _export__part_0.getBounds();
|
||||||
|
let _export__part_0_x = _export__part_0_bounds[0].x + (_export__part_0_bounds[1].x - _export__part_0_bounds[0].x) / 2
|
||||||
|
let _export__part_0_y = _export__part_0_bounds[0].y + (_export__part_0_bounds[1].y - _export__part_0_bounds[0].y) / 2
|
||||||
|
_export__part_0 = translate([-_export__part_0_x, -_export__part_0_y, 0], _export__part_0);
|
||||||
|
_export__part_0 = rotate([0,0,0], _export__part_0);
|
||||||
|
_export__part_0 = translate([_export__part_0_x, _export__part_0_y, 0], _export__part_0);
|
||||||
|
|
||||||
|
_export__part_0 = translate([0,0,0], _export__part_0);
|
||||||
|
let result = _export__part_0;
|
||||||
|
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
return _export_case_fn();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
86
test/cli/big/reference/cases/_export.stl
Normal file
86
test/cli/big/reference/cases/_export.stl
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
solid csg.js
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -9 9 0
|
||||||
|
vertex 9 9 0
|
||||||
|
vertex 9 -9 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -9 9 0
|
||||||
|
vertex 9 -9 0
|
||||||
|
vertex -9 -9 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -9 9 1
|
||||||
|
vertex -9 -9 1
|
||||||
|
vertex 9 -9 1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -9 9 1
|
||||||
|
vertex 9 -9 1
|
||||||
|
vertex 9 9 1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -1 0
|
||||||
|
outer loop
|
||||||
|
vertex 9 -9 0
|
||||||
|
vertex 9 -9 1
|
||||||
|
vertex -9 -9 1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -1 0
|
||||||
|
outer loop
|
||||||
|
vertex 9 -9 0
|
||||||
|
vertex -9 -9 1
|
||||||
|
vertex -9 -9 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex 9 9 0
|
||||||
|
vertex 9 9 1
|
||||||
|
vertex 9 -9 1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex 9 9 0
|
||||||
|
vertex 9 -9 1
|
||||||
|
vertex 9 -9 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 1 0
|
||||||
|
outer loop
|
||||||
|
vertex 9 9 1
|
||||||
|
vertex 9 9 0
|
||||||
|
vertex -9 9 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 1 0
|
||||||
|
outer loop
|
||||||
|
vertex 9 9 1
|
||||||
|
vertex -9 9 0
|
||||||
|
vertex -9 9 1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex -9 9 1
|
||||||
|
vertex -9 9 0
|
||||||
|
vertex -9 -9 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex -9 9 1
|
||||||
|
vertex -9 -9 0
|
||||||
|
vertex -9 -9 1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
endsolid csg.js
|
36
test/cli/big/reference/cases/export.jscad
Normal file
36
test/cli/big/reference/cases/export.jscad
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
function export_outline_fn(){
|
||||||
|
return new CSG.Path2D([[-9,-9],[9,-9]]).appendPoint([9,9]).appendPoint([-9,9]).appendPoint([-9,-9]).close().innerToCAG()
|
||||||
|
.extrude({ offset: [0, 0, 1] });
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function export_case_fn() {
|
||||||
|
|
||||||
|
|
||||||
|
// creating part 0 of case export
|
||||||
|
let export__part_0 = export_outline_fn();
|
||||||
|
|
||||||
|
// make sure that rotations are relative
|
||||||
|
let export__part_0_bounds = export__part_0.getBounds();
|
||||||
|
let export__part_0_x = export__part_0_bounds[0].x + (export__part_0_bounds[1].x - export__part_0_bounds[0].x) / 2
|
||||||
|
let export__part_0_y = export__part_0_bounds[0].y + (export__part_0_bounds[1].y - export__part_0_bounds[0].y) / 2
|
||||||
|
export__part_0 = translate([-export__part_0_x, -export__part_0_y, 0], export__part_0);
|
||||||
|
export__part_0 = rotate([0,0,0], export__part_0);
|
||||||
|
export__part_0 = translate([export__part_0_x, export__part_0_y, 0], export__part_0);
|
||||||
|
|
||||||
|
export__part_0 = translate([0,0,0], export__part_0);
|
||||||
|
let result = export__part_0;
|
||||||
|
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
return export_case_fn();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
86
test/cli/big/reference/cases/export.stl
Normal file
86
test/cli/big/reference/cases/export.stl
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
solid csg.js
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -9 9 0
|
||||||
|
vertex 9 9 0
|
||||||
|
vertex 9 -9 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 -1
|
||||||
|
outer loop
|
||||||
|
vertex -9 9 0
|
||||||
|
vertex 9 -9 0
|
||||||
|
vertex -9 -9 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -9 9 1
|
||||||
|
vertex -9 -9 1
|
||||||
|
vertex 9 -9 1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 0 1
|
||||||
|
outer loop
|
||||||
|
vertex -9 9 1
|
||||||
|
vertex 9 -9 1
|
||||||
|
vertex 9 9 1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -1 0
|
||||||
|
outer loop
|
||||||
|
vertex 9 -9 0
|
||||||
|
vertex 9 -9 1
|
||||||
|
vertex -9 -9 1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 -1 0
|
||||||
|
outer loop
|
||||||
|
vertex 9 -9 0
|
||||||
|
vertex -9 -9 1
|
||||||
|
vertex -9 -9 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex 9 9 0
|
||||||
|
vertex 9 9 1
|
||||||
|
vertex 9 -9 1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex 9 9 0
|
||||||
|
vertex 9 -9 1
|
||||||
|
vertex 9 -9 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 1 0
|
||||||
|
outer loop
|
||||||
|
vertex 9 9 1
|
||||||
|
vertex 9 9 0
|
||||||
|
vertex -9 9 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 1 0
|
||||||
|
outer loop
|
||||||
|
vertex 9 9 1
|
||||||
|
vertex -9 9 0
|
||||||
|
vertex -9 9 1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex -9 9 1
|
||||||
|
vertex -9 9 0
|
||||||
|
vertex -9 -9 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1 0 0
|
||||||
|
outer loop
|
||||||
|
vertex -9 9 1
|
||||||
|
vertex -9 -9 0
|
||||||
|
vertex -9 -9 1
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
endsolid csg.js
|
98
test/cli/big/reference/outlines/_export.dxf
Normal file
98
test/cli/big/reference/outlines/_export.dxf
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
0
|
||||||
|
SECTION
|
||||||
|
2
|
||||||
|
HEADER
|
||||||
|
9
|
||||||
|
$INSUNITS
|
||||||
|
70
|
||||||
|
4
|
||||||
|
0
|
||||||
|
ENDSEC
|
||||||
|
0
|
||||||
|
SECTION
|
||||||
|
2
|
||||||
|
TABLES
|
||||||
|
0
|
||||||
|
TABLE
|
||||||
|
2
|
||||||
|
LTYPE
|
||||||
|
0
|
||||||
|
LTYPE
|
||||||
|
72
|
||||||
|
65
|
||||||
|
70
|
||||||
|
64
|
||||||
|
2
|
||||||
|
CONTINUOUS
|
||||||
|
3
|
||||||
|
______
|
||||||
|
73
|
||||||
|
0
|
||||||
|
40
|
||||||
|
0
|
||||||
|
0
|
||||||
|
ENDTAB
|
||||||
|
0
|
||||||
|
TABLE
|
||||||
|
2
|
||||||
|
LAYER
|
||||||
|
0
|
||||||
|
ENDTAB
|
||||||
|
0
|
||||||
|
ENDSEC
|
||||||
|
0
|
||||||
|
SECTION
|
||||||
|
2
|
||||||
|
ENTITIES
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-9
|
||||||
|
20
|
||||||
|
-9
|
||||||
|
11
|
||||||
|
9
|
||||||
|
21
|
||||||
|
-9
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
9
|
||||||
|
20
|
||||||
|
-9
|
||||||
|
11
|
||||||
|
9
|
||||||
|
21
|
||||||
|
9
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
9
|
||||||
|
20
|
||||||
|
9
|
||||||
|
11
|
||||||
|
-9
|
||||||
|
21
|
||||||
|
9
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-9
|
||||||
|
20
|
||||||
|
9
|
||||||
|
11
|
||||||
|
-9
|
||||||
|
21
|
||||||
|
-9
|
||||||
|
0
|
||||||
|
ENDSEC
|
||||||
|
0
|
||||||
|
EOF
|
91
test/cli/big/reference/outlines/_export.json
Normal file
91
test/cli/big/reference/outlines/_export.json
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
{
|
||||||
|
"models": {
|
||||||
|
"export": {
|
||||||
|
"models": {
|
||||||
|
"a": {
|
||||||
|
"models": {},
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"b": {
|
||||||
|
"models": {
|
||||||
|
"a": {
|
||||||
|
"models": {},
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"b": {
|
||||||
|
"paths": {
|
||||||
|
"ShapeLine1": {
|
||||||
|
"type": "line",
|
||||||
|
"origin": [
|
||||||
|
-9,
|
||||||
|
-9
|
||||||
|
],
|
||||||
|
"end": [
|
||||||
|
9,
|
||||||
|
-9
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ShapeLine2": {
|
||||||
|
"type": "line",
|
||||||
|
"origin": [
|
||||||
|
9,
|
||||||
|
-9
|
||||||
|
],
|
||||||
|
"end": [
|
||||||
|
9,
|
||||||
|
9
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ShapeLine3": {
|
||||||
|
"type": "line",
|
||||||
|
"origin": [
|
||||||
|
9,
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"end": [
|
||||||
|
-9,
|
||||||
|
9
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ShapeLine4": {
|
||||||
|
"type": "line",
|
||||||
|
"origin": [
|
||||||
|
-9,
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"end": [
|
||||||
|
-9,
|
||||||
|
-9
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"units": "mm",
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
1
test/cli/big/reference/outlines/_export.svg
Normal file
1
test/cli/big/reference/outlines/_export.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg width="18mm" height="18mm" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><g id="svgGroup" stroke-linecap="round" fill-rule="evenodd" font-size="9pt" stroke="#000" stroke-width="0.25mm" fill="none" style="stroke:#000;stroke-width:0.25mm;fill:none"><path d="M 0 18 L 18 18 L 18 0 L 0 0 L 0 18 Z" vector-effect="non-scaling-stroke"/></g></svg>
|
After Width: | Height: | Size: 354 B |
98
test/cli/big/reference/outlines/export.dxf
Normal file
98
test/cli/big/reference/outlines/export.dxf
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
0
|
||||||
|
SECTION
|
||||||
|
2
|
||||||
|
HEADER
|
||||||
|
9
|
||||||
|
$INSUNITS
|
||||||
|
70
|
||||||
|
4
|
||||||
|
0
|
||||||
|
ENDSEC
|
||||||
|
0
|
||||||
|
SECTION
|
||||||
|
2
|
||||||
|
TABLES
|
||||||
|
0
|
||||||
|
TABLE
|
||||||
|
2
|
||||||
|
LTYPE
|
||||||
|
0
|
||||||
|
LTYPE
|
||||||
|
72
|
||||||
|
65
|
||||||
|
70
|
||||||
|
64
|
||||||
|
2
|
||||||
|
CONTINUOUS
|
||||||
|
3
|
||||||
|
______
|
||||||
|
73
|
||||||
|
0
|
||||||
|
40
|
||||||
|
0
|
||||||
|
0
|
||||||
|
ENDTAB
|
||||||
|
0
|
||||||
|
TABLE
|
||||||
|
2
|
||||||
|
LAYER
|
||||||
|
0
|
||||||
|
ENDTAB
|
||||||
|
0
|
||||||
|
ENDSEC
|
||||||
|
0
|
||||||
|
SECTION
|
||||||
|
2
|
||||||
|
ENTITIES
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-9
|
||||||
|
20
|
||||||
|
-9
|
||||||
|
11
|
||||||
|
9
|
||||||
|
21
|
||||||
|
-9
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
9
|
||||||
|
20
|
||||||
|
-9
|
||||||
|
11
|
||||||
|
9
|
||||||
|
21
|
||||||
|
9
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
9
|
||||||
|
20
|
||||||
|
9
|
||||||
|
11
|
||||||
|
-9
|
||||||
|
21
|
||||||
|
9
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-9
|
||||||
|
20
|
||||||
|
9
|
||||||
|
11
|
||||||
|
-9
|
||||||
|
21
|
||||||
|
-9
|
||||||
|
0
|
||||||
|
ENDSEC
|
||||||
|
0
|
||||||
|
EOF
|
91
test/cli/big/reference/outlines/export.json
Normal file
91
test/cli/big/reference/outlines/export.json
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
{
|
||||||
|
"models": {
|
||||||
|
"export": {
|
||||||
|
"models": {
|
||||||
|
"a": {
|
||||||
|
"models": {},
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"b": {
|
||||||
|
"models": {
|
||||||
|
"a": {
|
||||||
|
"models": {},
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"b": {
|
||||||
|
"paths": {
|
||||||
|
"ShapeLine1": {
|
||||||
|
"type": "line",
|
||||||
|
"origin": [
|
||||||
|
-9,
|
||||||
|
-9
|
||||||
|
],
|
||||||
|
"end": [
|
||||||
|
9,
|
||||||
|
-9
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ShapeLine2": {
|
||||||
|
"type": "line",
|
||||||
|
"origin": [
|
||||||
|
9,
|
||||||
|
-9
|
||||||
|
],
|
||||||
|
"end": [
|
||||||
|
9,
|
||||||
|
9
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ShapeLine3": {
|
||||||
|
"type": "line",
|
||||||
|
"origin": [
|
||||||
|
9,
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"end": [
|
||||||
|
-9,
|
||||||
|
9
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ShapeLine4": {
|
||||||
|
"type": "line",
|
||||||
|
"origin": [
|
||||||
|
-9,
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"end": [
|
||||||
|
-9,
|
||||||
|
-9
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"units": "mm",
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
1
test/cli/big/reference/outlines/export.svg
Normal file
1
test/cli/big/reference/outlines/export.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg width="18mm" height="18mm" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><g id="svgGroup" stroke-linecap="round" fill-rule="evenodd" font-size="9pt" stroke="#000" stroke-width="0.25mm" fill="none" style="stroke:#000;stroke-width:0.25mm;fill:none"><path d="M 0 18 L 18 18 L 18 0 L 0 0 L 0 18 Z" vector-effect="non-scaling-stroke"/></g></svg>
|
After Width: | Height: | Size: 354 B |
112
test/cli/big/reference/pcbs/_export.kicad_pcb
Normal file
112
test/cli/big/reference/pcbs/_export.kicad_pcb
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
|
||||||
|
|
||||||
|
(kicad_pcb (version 20171130) (host pcbnew 5.1.6)
|
||||||
|
|
||||||
|
(page A3)
|
||||||
|
(title_block
|
||||||
|
(title KEYBOARD_NAME_HERE)
|
||||||
|
(rev VERSION_HERE)
|
||||||
|
(company YOUR_NAME_HERE)
|
||||||
|
)
|
||||||
|
|
||||||
|
(general
|
||||||
|
(thickness 1.6)
|
||||||
|
)
|
||||||
|
|
||||||
|
(layers
|
||||||
|
(0 F.Cu signal)
|
||||||
|
(31 B.Cu signal)
|
||||||
|
(32 B.Adhes user)
|
||||||
|
(33 F.Adhes user)
|
||||||
|
(34 B.Paste user)
|
||||||
|
(35 F.Paste user)
|
||||||
|
(36 B.SilkS user)
|
||||||
|
(37 F.SilkS user)
|
||||||
|
(38 B.Mask user)
|
||||||
|
(39 F.Mask user)
|
||||||
|
(40 Dwgs.User user)
|
||||||
|
(41 Cmts.User user)
|
||||||
|
(42 Eco1.User user)
|
||||||
|
(43 Eco2.User user)
|
||||||
|
(44 Edge.Cuts user)
|
||||||
|
(45 Margin user)
|
||||||
|
(46 B.CrtYd user)
|
||||||
|
(47 F.CrtYd user)
|
||||||
|
(48 B.Fab user)
|
||||||
|
(49 F.Fab user)
|
||||||
|
)
|
||||||
|
|
||||||
|
(setup
|
||||||
|
(last_trace_width 0.25)
|
||||||
|
(trace_clearance 0.2)
|
||||||
|
(zone_clearance 0.508)
|
||||||
|
(zone_45_only no)
|
||||||
|
(trace_min 0.2)
|
||||||
|
(via_size 0.8)
|
||||||
|
(via_drill 0.4)
|
||||||
|
(via_min_size 0.4)
|
||||||
|
(via_min_drill 0.3)
|
||||||
|
(uvia_size 0.3)
|
||||||
|
(uvia_drill 0.1)
|
||||||
|
(uvias_allowed no)
|
||||||
|
(uvia_min_size 0.2)
|
||||||
|
(uvia_min_drill 0.1)
|
||||||
|
(edge_width 0.05)
|
||||||
|
(segment_width 0.2)
|
||||||
|
(pcb_text_width 0.3)
|
||||||
|
(pcb_text_size 1.5 1.5)
|
||||||
|
(mod_edge_width 0.12)
|
||||||
|
(mod_text_size 1 1)
|
||||||
|
(mod_text_width 0.15)
|
||||||
|
(pad_size 1.524 1.524)
|
||||||
|
(pad_drill 0.762)
|
||||||
|
(pad_to_mask_clearance 0.05)
|
||||||
|
(aux_axis_origin 0 0)
|
||||||
|
(visible_elements FFFFFF7F)
|
||||||
|
(pcbplotparams
|
||||||
|
(layerselection 0x010fc_ffffffff)
|
||||||
|
(usegerberextensions false)
|
||||||
|
(usegerberattributes true)
|
||||||
|
(usegerberadvancedattributes true)
|
||||||
|
(creategerberjobfile true)
|
||||||
|
(excludeedgelayer true)
|
||||||
|
(linewidth 0.100000)
|
||||||
|
(plotframeref false)
|
||||||
|
(viasonmask false)
|
||||||
|
(mode 1)
|
||||||
|
(useauxorigin false)
|
||||||
|
(hpglpennumber 1)
|
||||||
|
(hpglpenspeed 20)
|
||||||
|
(hpglpendiameter 15.000000)
|
||||||
|
(psnegative false)
|
||||||
|
(psa4output false)
|
||||||
|
(plotreference true)
|
||||||
|
(plotvalue true)
|
||||||
|
(plotinvisibletext false)
|
||||||
|
(padsonsilk false)
|
||||||
|
(subtractmaskfromsilk false)
|
||||||
|
(outputformat 1)
|
||||||
|
(mirror false)
|
||||||
|
(drillshape 1)
|
||||||
|
(scaleselection 1)
|
||||||
|
(outputdirectory ""))
|
||||||
|
)
|
||||||
|
|
||||||
|
(net 0 "")
|
||||||
|
|
||||||
|
(net_class Default "This is the default net class."
|
||||||
|
(clearance 0.2)
|
||||||
|
(trace_width 0.25)
|
||||||
|
(via_dia 0.8)
|
||||||
|
(via_drill 0.4)
|
||||||
|
(uvia_dia 0.3)
|
||||||
|
(uvia_drill 0.1)
|
||||||
|
(add_net "")
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
|
112
test/cli/big/reference/pcbs/export.kicad_pcb
Normal file
112
test/cli/big/reference/pcbs/export.kicad_pcb
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
|
||||||
|
|
||||||
|
(kicad_pcb (version 20171130) (host pcbnew 5.1.6)
|
||||||
|
|
||||||
|
(page A3)
|
||||||
|
(title_block
|
||||||
|
(title KEYBOARD_NAME_HERE)
|
||||||
|
(rev VERSION_HERE)
|
||||||
|
(company YOUR_NAME_HERE)
|
||||||
|
)
|
||||||
|
|
||||||
|
(general
|
||||||
|
(thickness 1.6)
|
||||||
|
)
|
||||||
|
|
||||||
|
(layers
|
||||||
|
(0 F.Cu signal)
|
||||||
|
(31 B.Cu signal)
|
||||||
|
(32 B.Adhes user)
|
||||||
|
(33 F.Adhes user)
|
||||||
|
(34 B.Paste user)
|
||||||
|
(35 F.Paste user)
|
||||||
|
(36 B.SilkS user)
|
||||||
|
(37 F.SilkS user)
|
||||||
|
(38 B.Mask user)
|
||||||
|
(39 F.Mask user)
|
||||||
|
(40 Dwgs.User user)
|
||||||
|
(41 Cmts.User user)
|
||||||
|
(42 Eco1.User user)
|
||||||
|
(43 Eco2.User user)
|
||||||
|
(44 Edge.Cuts user)
|
||||||
|
(45 Margin user)
|
||||||
|
(46 B.CrtYd user)
|
||||||
|
(47 F.CrtYd user)
|
||||||
|
(48 B.Fab user)
|
||||||
|
(49 F.Fab user)
|
||||||
|
)
|
||||||
|
|
||||||
|
(setup
|
||||||
|
(last_trace_width 0.25)
|
||||||
|
(trace_clearance 0.2)
|
||||||
|
(zone_clearance 0.508)
|
||||||
|
(zone_45_only no)
|
||||||
|
(trace_min 0.2)
|
||||||
|
(via_size 0.8)
|
||||||
|
(via_drill 0.4)
|
||||||
|
(via_min_size 0.4)
|
||||||
|
(via_min_drill 0.3)
|
||||||
|
(uvia_size 0.3)
|
||||||
|
(uvia_drill 0.1)
|
||||||
|
(uvias_allowed no)
|
||||||
|
(uvia_min_size 0.2)
|
||||||
|
(uvia_min_drill 0.1)
|
||||||
|
(edge_width 0.05)
|
||||||
|
(segment_width 0.2)
|
||||||
|
(pcb_text_width 0.3)
|
||||||
|
(pcb_text_size 1.5 1.5)
|
||||||
|
(mod_edge_width 0.12)
|
||||||
|
(mod_text_size 1 1)
|
||||||
|
(mod_text_width 0.15)
|
||||||
|
(pad_size 1.524 1.524)
|
||||||
|
(pad_drill 0.762)
|
||||||
|
(pad_to_mask_clearance 0.05)
|
||||||
|
(aux_axis_origin 0 0)
|
||||||
|
(visible_elements FFFFFF7F)
|
||||||
|
(pcbplotparams
|
||||||
|
(layerselection 0x010fc_ffffffff)
|
||||||
|
(usegerberextensions false)
|
||||||
|
(usegerberattributes true)
|
||||||
|
(usegerberadvancedattributes true)
|
||||||
|
(creategerberjobfile true)
|
||||||
|
(excludeedgelayer true)
|
||||||
|
(linewidth 0.100000)
|
||||||
|
(plotframeref false)
|
||||||
|
(viasonmask false)
|
||||||
|
(mode 1)
|
||||||
|
(useauxorigin false)
|
||||||
|
(hpglpennumber 1)
|
||||||
|
(hpglpenspeed 20)
|
||||||
|
(hpglpendiameter 15.000000)
|
||||||
|
(psnegative false)
|
||||||
|
(psa4output false)
|
||||||
|
(plotreference true)
|
||||||
|
(plotvalue true)
|
||||||
|
(plotinvisibletext false)
|
||||||
|
(padsonsilk false)
|
||||||
|
(subtractmaskfromsilk false)
|
||||||
|
(outputformat 1)
|
||||||
|
(mirror false)
|
||||||
|
(drillshape 1)
|
||||||
|
(scaleselection 1)
|
||||||
|
(outputdirectory ""))
|
||||||
|
)
|
||||||
|
|
||||||
|
(net 0 "")
|
||||||
|
|
||||||
|
(net_class Default "This is the default net class."
|
||||||
|
(clearance 0.2)
|
||||||
|
(trace_width 0.25)
|
||||||
|
(via_dia 0.8)
|
||||||
|
(via_drill 0.4)
|
||||||
|
(uvia_dia 0.3)
|
||||||
|
(uvia_drill 0.1)
|
||||||
|
(add_net "")
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 353 B After Width: | Height: | Size: 353 B |
24
test/cli/big/reference/raw.txt
Normal file
24
test/cli/big/reference/raw.txt
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
units:
|
||||||
|
a: 28 + u
|
||||||
|
points.zones.matrix:
|
||||||
|
columns.col: {}
|
||||||
|
rows.row: {}
|
||||||
|
outlines.exports:
|
||||||
|
export:
|
||||||
|
- type: 'keys'
|
||||||
|
side: 'left'
|
||||||
|
size: 18
|
||||||
|
_export:
|
||||||
|
- type: 'keys'
|
||||||
|
side: 'left'
|
||||||
|
size: 18
|
||||||
|
cases:
|
||||||
|
export:
|
||||||
|
- name: 'export'
|
||||||
|
extrude: 1
|
||||||
|
_export:
|
||||||
|
- name: 'export'
|
||||||
|
extrude: 1
|
||||||
|
pcbs:
|
||||||
|
export: {}
|
||||||
|
_export: {}
|
6
test/cli/big/reference/units.json
Normal file
6
test/cli/big/reference/units.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"u": 19,
|
||||||
|
"cx": 18,
|
||||||
|
"cy": 17,
|
||||||
|
"a": 47
|
||||||
|
}
|
1
test/cli/medium/command
Normal file
1
test/cli/medium/command
Normal file
|
@ -0,0 +1 @@
|
||||||
|
node src/cli.js test/fixtures/medium.yaml
|
12
test/cli/medium/log
Normal file
12
test/cli/medium/log
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
Ergogen <version> CLI
|
||||||
|
|
||||||
|
Interpreting format: YAML
|
||||||
|
Preprocessing input...
|
||||||
|
Calculating variables...
|
||||||
|
Parsing points...
|
||||||
|
Generating outlines...
|
||||||
|
Extruding cases...
|
||||||
|
Scaffolding PCBs...
|
||||||
|
Writing output to disk...
|
||||||
|
Done.
|
||||||
|
|
98
test/cli/medium/reference/outlines/export.dxf
Normal file
98
test/cli/medium/reference/outlines/export.dxf
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
0
|
||||||
|
SECTION
|
||||||
|
2
|
||||||
|
HEADER
|
||||||
|
9
|
||||||
|
$INSUNITS
|
||||||
|
70
|
||||||
|
4
|
||||||
|
0
|
||||||
|
ENDSEC
|
||||||
|
0
|
||||||
|
SECTION
|
||||||
|
2
|
||||||
|
TABLES
|
||||||
|
0
|
||||||
|
TABLE
|
||||||
|
2
|
||||||
|
LTYPE
|
||||||
|
0
|
||||||
|
LTYPE
|
||||||
|
72
|
||||||
|
65
|
||||||
|
70
|
||||||
|
64
|
||||||
|
2
|
||||||
|
CONTINUOUS
|
||||||
|
3
|
||||||
|
______
|
||||||
|
73
|
||||||
|
0
|
||||||
|
40
|
||||||
|
0
|
||||||
|
0
|
||||||
|
ENDTAB
|
||||||
|
0
|
||||||
|
TABLE
|
||||||
|
2
|
||||||
|
LAYER
|
||||||
|
0
|
||||||
|
ENDTAB
|
||||||
|
0
|
||||||
|
ENDSEC
|
||||||
|
0
|
||||||
|
SECTION
|
||||||
|
2
|
||||||
|
ENTITIES
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-9
|
||||||
|
20
|
||||||
|
-9
|
||||||
|
11
|
||||||
|
9
|
||||||
|
21
|
||||||
|
-9
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
9
|
||||||
|
20
|
||||||
|
-9
|
||||||
|
11
|
||||||
|
9
|
||||||
|
21
|
||||||
|
9
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
9
|
||||||
|
20
|
||||||
|
9
|
||||||
|
11
|
||||||
|
-9
|
||||||
|
21
|
||||||
|
9
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-9
|
||||||
|
20
|
||||||
|
9
|
||||||
|
11
|
||||||
|
-9
|
||||||
|
21
|
||||||
|
-9
|
||||||
|
0
|
||||||
|
ENDSEC
|
||||||
|
0
|
||||||
|
EOF
|
112
test/cli/medium/reference/pcbs/export.kicad_pcb
Normal file
112
test/cli/medium/reference/pcbs/export.kicad_pcb
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
|
||||||
|
|
||||||
|
(kicad_pcb (version 20171130) (host pcbnew 5.1.6)
|
||||||
|
|
||||||
|
(page A3)
|
||||||
|
(title_block
|
||||||
|
(title KEYBOARD_NAME_HERE)
|
||||||
|
(rev VERSION_HERE)
|
||||||
|
(company YOUR_NAME_HERE)
|
||||||
|
)
|
||||||
|
|
||||||
|
(general
|
||||||
|
(thickness 1.6)
|
||||||
|
)
|
||||||
|
|
||||||
|
(layers
|
||||||
|
(0 F.Cu signal)
|
||||||
|
(31 B.Cu signal)
|
||||||
|
(32 B.Adhes user)
|
||||||
|
(33 F.Adhes user)
|
||||||
|
(34 B.Paste user)
|
||||||
|
(35 F.Paste user)
|
||||||
|
(36 B.SilkS user)
|
||||||
|
(37 F.SilkS user)
|
||||||
|
(38 B.Mask user)
|
||||||
|
(39 F.Mask user)
|
||||||
|
(40 Dwgs.User user)
|
||||||
|
(41 Cmts.User user)
|
||||||
|
(42 Eco1.User user)
|
||||||
|
(43 Eco2.User user)
|
||||||
|
(44 Edge.Cuts user)
|
||||||
|
(45 Margin user)
|
||||||
|
(46 B.CrtYd user)
|
||||||
|
(47 F.CrtYd user)
|
||||||
|
(48 B.Fab user)
|
||||||
|
(49 F.Fab user)
|
||||||
|
)
|
||||||
|
|
||||||
|
(setup
|
||||||
|
(last_trace_width 0.25)
|
||||||
|
(trace_clearance 0.2)
|
||||||
|
(zone_clearance 0.508)
|
||||||
|
(zone_45_only no)
|
||||||
|
(trace_min 0.2)
|
||||||
|
(via_size 0.8)
|
||||||
|
(via_drill 0.4)
|
||||||
|
(via_min_size 0.4)
|
||||||
|
(via_min_drill 0.3)
|
||||||
|
(uvia_size 0.3)
|
||||||
|
(uvia_drill 0.1)
|
||||||
|
(uvias_allowed no)
|
||||||
|
(uvia_min_size 0.2)
|
||||||
|
(uvia_min_drill 0.1)
|
||||||
|
(edge_width 0.05)
|
||||||
|
(segment_width 0.2)
|
||||||
|
(pcb_text_width 0.3)
|
||||||
|
(pcb_text_size 1.5 1.5)
|
||||||
|
(mod_edge_width 0.12)
|
||||||
|
(mod_text_size 1 1)
|
||||||
|
(mod_text_width 0.15)
|
||||||
|
(pad_size 1.524 1.524)
|
||||||
|
(pad_drill 0.762)
|
||||||
|
(pad_to_mask_clearance 0.05)
|
||||||
|
(aux_axis_origin 0 0)
|
||||||
|
(visible_elements FFFFFF7F)
|
||||||
|
(pcbplotparams
|
||||||
|
(layerselection 0x010fc_ffffffff)
|
||||||
|
(usegerberextensions false)
|
||||||
|
(usegerberattributes true)
|
||||||
|
(usegerberadvancedattributes true)
|
||||||
|
(creategerberjobfile true)
|
||||||
|
(excludeedgelayer true)
|
||||||
|
(linewidth 0.100000)
|
||||||
|
(plotframeref false)
|
||||||
|
(viasonmask false)
|
||||||
|
(mode 1)
|
||||||
|
(useauxorigin false)
|
||||||
|
(hpglpennumber 1)
|
||||||
|
(hpglpenspeed 20)
|
||||||
|
(hpglpendiameter 15.000000)
|
||||||
|
(psnegative false)
|
||||||
|
(psa4output false)
|
||||||
|
(plotreference true)
|
||||||
|
(plotvalue true)
|
||||||
|
(plotinvisibletext false)
|
||||||
|
(padsonsilk false)
|
||||||
|
(subtractmaskfromsilk false)
|
||||||
|
(outputformat 1)
|
||||||
|
(mirror false)
|
||||||
|
(drillshape 1)
|
||||||
|
(scaleselection 1)
|
||||||
|
(outputdirectory ""))
|
||||||
|
)
|
||||||
|
|
||||||
|
(net 0 "")
|
||||||
|
|
||||||
|
(net_class Default "This is the default net class."
|
||||||
|
(clearance 0.2)
|
||||||
|
(trace_width 0.25)
|
||||||
|
(via_dia 0.8)
|
||||||
|
(via_drill 0.4)
|
||||||
|
(uvia_dia 0.3)
|
||||||
|
(uvia_drill 0.1)
|
||||||
|
(add_net "")
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Ergogen v2.0.0 CLI
|
Ergogen <version> CLI
|
||||||
|
|
||||||
Interpreting format: YAML
|
Interpreting format: YAML
|
||||||
Preprocessing input...
|
Preprocessing input...
|
98
test/cli/minimal/reference/points/demo.dxf
Normal file
98
test/cli/minimal/reference/points/demo.dxf
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
0
|
||||||
|
SECTION
|
||||||
|
2
|
||||||
|
HEADER
|
||||||
|
9
|
||||||
|
$INSUNITS
|
||||||
|
70
|
||||||
|
4
|
||||||
|
0
|
||||||
|
ENDSEC
|
||||||
|
0
|
||||||
|
SECTION
|
||||||
|
2
|
||||||
|
TABLES
|
||||||
|
0
|
||||||
|
TABLE
|
||||||
|
2
|
||||||
|
LTYPE
|
||||||
|
0
|
||||||
|
LTYPE
|
||||||
|
72
|
||||||
|
65
|
||||||
|
70
|
||||||
|
64
|
||||||
|
2
|
||||||
|
CONTINUOUS
|
||||||
|
3
|
||||||
|
______
|
||||||
|
73
|
||||||
|
0
|
||||||
|
40
|
||||||
|
0
|
||||||
|
0
|
||||||
|
ENDTAB
|
||||||
|
0
|
||||||
|
TABLE
|
||||||
|
2
|
||||||
|
LAYER
|
||||||
|
0
|
||||||
|
ENDTAB
|
||||||
|
0
|
||||||
|
ENDSEC
|
||||||
|
0
|
||||||
|
SECTION
|
||||||
|
2
|
||||||
|
ENTITIES
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-9
|
||||||
|
20
|
||||||
|
9
|
||||||
|
11
|
||||||
|
9
|
||||||
|
21
|
||||||
|
9
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
9
|
||||||
|
20
|
||||||
|
9
|
||||||
|
11
|
||||||
|
9
|
||||||
|
21
|
||||||
|
-9
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
9
|
||||||
|
20
|
||||||
|
-9
|
||||||
|
11
|
||||||
|
-9
|
||||||
|
21
|
||||||
|
-9
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-9
|
||||||
|
20
|
||||||
|
-9
|
||||||
|
11
|
||||||
|
-9
|
||||||
|
21
|
||||||
|
9
|
||||||
|
0
|
||||||
|
ENDSEC
|
||||||
|
0
|
||||||
|
EOF
|
69
test/cli/minimal/reference/points/demo.json
Normal file
69
test/cli/minimal/reference/points/demo.json
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
{
|
||||||
|
"models": {
|
||||||
|
"export": {
|
||||||
|
"models": {
|
||||||
|
"matrix_col_row": {
|
||||||
|
"paths": {
|
||||||
|
"top": {
|
||||||
|
"type": "line",
|
||||||
|
"origin": [
|
||||||
|
-9,
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"end": [
|
||||||
|
9,
|
||||||
|
9
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"type": "line",
|
||||||
|
"origin": [
|
||||||
|
9,
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"end": [
|
||||||
|
9,
|
||||||
|
-9
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"bottom": {
|
||||||
|
"type": "line",
|
||||||
|
"origin": [
|
||||||
|
9,
|
||||||
|
-9
|
||||||
|
],
|
||||||
|
"end": [
|
||||||
|
-9,
|
||||||
|
-9
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"left": {
|
||||||
|
"type": "line",
|
||||||
|
"origin": [
|
||||||
|
-9,
|
||||||
|
-9
|
||||||
|
],
|
||||||
|
"end": [
|
||||||
|
-9,
|
||||||
|
9
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"units": "mm",
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
1
test/cli/minimal/reference/points/demo.svg
Normal file
1
test/cli/minimal/reference/points/demo.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg width="18mm" height="18mm" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><g id="svgGroup" stroke-linecap="round" fill-rule="evenodd" font-size="9pt" stroke="#000" stroke-width="0.25mm" fill="none" style="stroke:#000;stroke-width:0.25mm;fill:none"><path d="M 0 0 L 18 0 L 18 18 L 0 18 L 0 0 Z" vector-effect="non-scaling-stroke"/></g></svg>
|
After Width: | Height: | Size: 353 B |
34
test/cli/minimal/reference/points/points.json
Normal file
34
test/cli/minimal/reference/points/points.json
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"matrix_col_row": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"r": 0,
|
||||||
|
"meta": {
|
||||||
|
"shift": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"rotate": 0,
|
||||||
|
"padding": 19,
|
||||||
|
"width": 1,
|
||||||
|
"height": 1,
|
||||||
|
"skip": false,
|
||||||
|
"asym": "both",
|
||||||
|
"name": "matrix_col_row",
|
||||||
|
"colrow": "col_row",
|
||||||
|
"col": {
|
||||||
|
"stagger": 0,
|
||||||
|
"spread": 0,
|
||||||
|
"rotate": 0,
|
||||||
|
"origin": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"rows": {},
|
||||||
|
"key": {},
|
||||||
|
"name": "col"
|
||||||
|
},
|
||||||
|
"row": "row"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1
test/cli/nonexistent_input/command
Normal file
1
test/cli/nonexistent_input/command
Normal file
|
@ -0,0 +1 @@
|
||||||
|
node src/cli.js nonexistent.yaml
|
1
test/cli/nonexistent_input/error
Normal file
1
test/cli/nonexistent_input/error
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Could not read config file "nonexistent.yaml": Error: ENOENT: no such file or directory, open 'nonexistent.yaml'
|
9
test/fixtures/medium.yaml
vendored
Normal file
9
test/fixtures/medium.yaml
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
points.zones.matrix:
|
||||||
|
columns.col: {}
|
||||||
|
outlines.exports:
|
||||||
|
export:
|
||||||
|
- type: 'keys'
|
||||||
|
side: 'left'
|
||||||
|
size: 18
|
||||||
|
pcbs:
|
||||||
|
export: {}
|
|
@ -103,33 +103,43 @@ if (what) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// End-to-end tests to actually drive the CLI as well
|
// End-to-end tests to actually drive the CLI as well
|
||||||
// --what filter is 'cli'
|
// --what filter is the same as above ('cli', or 'cli/prefix')
|
||||||
// --dump is meaningless (just use the CLI itself)
|
// --dump saves the log, as well as prevents the output from being deleted
|
||||||
|
|
||||||
const read = (d, p) => fs.readFileSync(path.join(d, p)).toString()
|
const read = (d, p) => fs.readFileSync(path.join(d, p)).toString()
|
||||||
const exists = (d, p) => fs.existsSync(path.join(d, p))
|
const exists = (d, p) => fs.existsSync(path.join(d, p))
|
||||||
const { execSync } = require('child_process')
|
const { execSync } = require('child_process')
|
||||||
const dircompare = require('dir-compare')
|
const dircompare = require('dir-compare')
|
||||||
|
|
||||||
if (!what || what.includes('cli')) {
|
const cli_what = what ? what.filter(w => w.startsWith('cli')) : ['cli']
|
||||||
|
|
||||||
|
for (let w of cli_what) {
|
||||||
|
if (!w.includes('/')) w += '/'
|
||||||
|
if (!w.endsWith('*')) w += '*'
|
||||||
describe('CLI', function() {
|
describe('CLI', function() {
|
||||||
this.timeout(120000)
|
this.timeout(120000)
|
||||||
this.slow(120000)
|
this.slow(120000)
|
||||||
for (const t of glob.sync(path.join(__dirname, 'cli/*'))) {
|
for (const t of glob.sync(path.join(__dirname, w))) {
|
||||||
it(cap(path.basename(t).split('_').join(' ')), function() {
|
it(cap(path.basename(t).split('_').join(' ')), function() {
|
||||||
const command = read(t, 'command')
|
const command = read(t, 'command')
|
||||||
const output_path = exists(t, 'path') ? read(t, 'path') : 'output'
|
const output_path = exists(t, 'path') ? read(t, 'path') : 'output'
|
||||||
|
fs.removeSync(output_path)
|
||||||
const version_regex = /\bv\d+\.\d+\.\d+\b/
|
const version_regex = /\bv\d+\.\d+\.\d+\b/
|
||||||
// correct execution
|
// correct execution
|
||||||
if (exists(t, 'log')) {
|
if (exists(t, 'log')) {
|
||||||
const ref_log = read(t, 'log').replace(version_regex, '<version>')
|
const ref_log = read(t, 'log').replace(version_regex, '<version>')
|
||||||
const actual_log = execSync(command).toString().replace(version_regex, '<version>')
|
const actual_log = execSync(command).toString().replace(version_regex, '<version>')
|
||||||
|
if (dump) {
|
||||||
|
fs.writeFileSync(path.join(t, 'log'), actual_log)
|
||||||
|
}
|
||||||
actual_log.should.equal(ref_log)
|
actual_log.should.equal(ref_log)
|
||||||
const comp_res = dircompare.compareSync(output_path, path.join(t, 'reference'), {
|
const comp_res = dircompare.compareSync(output_path, path.join(t, 'reference'), {
|
||||||
compareContent: true
|
compareContent: true
|
||||||
})
|
})
|
||||||
comp_res.same.should.be.true
|
comp_res.same.should.be.true
|
||||||
|
if (!dump) {
|
||||||
fs.removeSync(output_path)
|
fs.removeSync(output_path)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
const ref_error = read(t, 'error').replace(version_regex, '<version>')
|
const ref_error = read(t, 'error').replace(version_regex, '<version>')
|
||||||
try {
|
try {
|
||||||
|
@ -140,7 +150,10 @@ if (!what || what.includes('cli')) {
|
||||||
throw new Error('This command should have thrown!')
|
throw new Error('This command should have thrown!')
|
||||||
}
|
}
|
||||||
const actual_error = ex.stderr.toString().replace(version_regex, '<version>')
|
const actual_error = ex.stderr.toString().replace(version_regex, '<version>')
|
||||||
actual_error.should.equal(ref_error)
|
if (dump) {
|
||||||
|
fs.writeFileSync(path.join(t, 'error'), actual_error)
|
||||||
|
}
|
||||||
|
actual_error.includes(ref_error).should.be.true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue