Smarter dump switch for the test runner, reference adjustments
This commit is contained in:
parent
42a3e2de55
commit
d09b3fdf38
3 changed files with 321 additions and 513 deletions
|
@ -3,15 +3,16 @@ const path = require('path')
|
||||||
const yaml = require('js-yaml')
|
const yaml = require('js-yaml')
|
||||||
const glob = require('glob')
|
const glob = require('glob')
|
||||||
const u = require('../src/utils')
|
const u = require('../src/utils')
|
||||||
|
const a = require('../src/assert')
|
||||||
const ergogen = require('../src/ergogen')
|
const ergogen = require('../src/ergogen')
|
||||||
require('./helpers/mock_footprints').inject(ergogen)
|
require('./helpers/mock_footprints').inject(ergogen)
|
||||||
|
|
||||||
let what = process.env.npm_config_what
|
let what = process.env.npm_config_what
|
||||||
let first = process.env.npm_config_first
|
let dump = process.env.npm_config_dump
|
||||||
|
|
||||||
// Unit tests
|
// Unit tests
|
||||||
// the --what switch supports each unit individually
|
// the --what switch supports each unit individually
|
||||||
// the --first switch does nothing here
|
// the --dump switch does nothing here
|
||||||
|
|
||||||
what = what ? what.split(',') : false
|
what = what ? what.split(',') : false
|
||||||
for (const unit of glob.sync(path.join(__dirname, 'unit', '*.js'))) {
|
for (const unit of glob.sync(path.join(__dirname, 'unit', '*.js'))) {
|
||||||
|
@ -23,7 +24,9 @@ for (const unit of glob.sync(path.join(__dirname, 'unit', '*.js'))) {
|
||||||
// Integration tests
|
// Integration tests
|
||||||
// the --what switch supports categories (like `points` and `outlines`)
|
// the --what switch supports categories (like `points` and `outlines`)
|
||||||
// as well as individual tests using slash-notation (like `points/000`)
|
// as well as individual tests using slash-notation (like `points/000`)
|
||||||
// the --first switch outputs the actual results for easier reference creation
|
// the --dump switch can output actual results for easier reference creation
|
||||||
|
// by default, json output is generated of the whole `actual`, but a raw,
|
||||||
|
// type-specific representation can be written if a deep path is specified
|
||||||
|
|
||||||
const cap = s => s.charAt(0).toUpperCase() + s.slice(1)
|
const cap = s => s.charAt(0).toUpperCase() + s.slice(1)
|
||||||
|
|
||||||
|
@ -33,13 +36,34 @@ const test = function(input_path) {
|
||||||
it(title, function() {
|
it(title, function() {
|
||||||
const input = yaml.load(fs.readFileSync(input_path).toString())
|
const input = yaml.load(fs.readFileSync(input_path).toString())
|
||||||
const actual = ergogen.process(input, true)
|
const actual = ergogen.process(input, true)
|
||||||
if (first) {
|
|
||||||
const out = path.join(path.dirname(input_path), path.basename(input_path, '.yaml') + '___actual.json')
|
// if we're just creating the reference, we can dump the current output
|
||||||
fs.writeJSONSync(out, actual, {spaces: 4})
|
if (dump) {
|
||||||
|
const out = path.join(
|
||||||
|
path.dirname(input_path),
|
||||||
|
path.basename(input_path, '.yaml') + '___ref_candidate'
|
||||||
|
)
|
||||||
|
// whole dump
|
||||||
|
if (dump === true) {
|
||||||
|
fs.writeJSONSync(out + '.json', actual, {spaces: 4})
|
||||||
|
// partial, type-specific dump
|
||||||
|
} else {
|
||||||
|
const part = u.deep(actual, dump)
|
||||||
|
if (a.type(part)() == 'string') {
|
||||||
|
fs.writeFileSync(out + '.txt', part)
|
||||||
|
} else {
|
||||||
|
fs.writeJSONSync(out + '.json', part, {spaces: 4})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// compare actual vs. reference
|
||||||
const base = path.join(path.dirname(input_path), path.basename(input_path, '.yaml'))
|
const base = path.join(path.dirname(input_path), path.basename(input_path, '.yaml'))
|
||||||
for (const expected_path of glob.sync(base + '___*')) {
|
for (const expected_path of glob.sync(base + '___*')) {
|
||||||
const expected = JSON.parse(fs.readFileSync(expected_path).toString())
|
let expected = fs.readFileSync(expected_path).toString()
|
||||||
|
if (expected_path.endsWith('.json')) {
|
||||||
|
expected = JSON.parse(expected)
|
||||||
|
}
|
||||||
const comp_path = expected_path.split('___')[1].split('.')[0].split('_').join('.')
|
const comp_path = expected_path.split('___')[1].split('.')[0].split('_').join('.')
|
||||||
u.deep(actual, comp_path).should.deep.equal(expected)
|
u.deep(actual, comp_path).should.deep.equal(expected)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,506 +0,0 @@
|
||||||
{
|
|
||||||
"outline": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"paths": {
|
|
||||||
"ShapeLine1": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
-10,
|
|
||||||
-10
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
29,
|
|
||||||
-10
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ShapeLine4": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
-10,
|
|
||||||
-10
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
-10,
|
|
||||||
29
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"paths": {},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"paths": {},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"paths": {
|
|
||||||
"ShapeLine3": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
-10,
|
|
||||||
29
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
29,
|
|
||||||
29
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"paths": {},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"paths": {},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"paths": {
|
|
||||||
"ShapeLine2": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
29,
|
|
||||||
-10
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
29,
|
|
||||||
29
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"paths": {},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"paths": {},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"paths": {},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"paths": {},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"paths": {},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {
|
|
||||||
"a": {
|
|
||||||
"models": {},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"paths": {
|
|
||||||
"ShapeLine1": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
-7,
|
|
||||||
-7
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
7,
|
|
||||||
-7
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ShapeLine2": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
7,
|
|
||||||
-7
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
7,
|
|
||||||
7
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ShapeLine3": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
7,
|
|
||||||
7
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
-7,
|
|
||||||
7
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ShapeLine4": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
-7,
|
|
||||||
7
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
-7,
|
|
||||||
-7
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"paths": {
|
|
||||||
"ShapeLine1": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
-7,
|
|
||||||
12
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
7,
|
|
||||||
12
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ShapeLine2": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
7,
|
|
||||||
12
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
7,
|
|
||||||
26
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ShapeLine3": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
7,
|
|
||||||
26
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
-7,
|
|
||||||
26
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ShapeLine4": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
-7,
|
|
||||||
26
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
-7,
|
|
||||||
12
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"paths": {
|
|
||||||
"ShapeLine1": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
12,
|
|
||||||
-7
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
26,
|
|
||||||
-7
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ShapeLine2": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
26,
|
|
||||||
-7
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
26,
|
|
||||||
7
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ShapeLine3": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
26,
|
|
||||||
7
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
12,
|
|
||||||
7
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ShapeLine4": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
12,
|
|
||||||
7
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
12,
|
|
||||||
-7
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"b": {
|
|
||||||
"paths": {
|
|
||||||
"ShapeLine1": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
12,
|
|
||||||
12
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
26,
|
|
||||||
12
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ShapeLine2": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
26,
|
|
||||||
12
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
26,
|
|
||||||
26
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ShapeLine3": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
26,
|
|
||||||
26
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
12,
|
|
||||||
26
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ShapeLine4": {
|
|
||||||
"type": "line",
|
|
||||||
"origin": [
|
|
||||||
12,
|
|
||||||
26
|
|
||||||
],
|
|
||||||
"end": [
|
|
||||||
12,
|
|
||||||
12
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"origin": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
290
test/outlines/001_basic_outline___outlines_outline_dxf.dxf
Normal file
290
test/outlines/001_basic_outline___outlines_outline_dxf.dxf
Normal file
|
@ -0,0 +1,290 @@
|
||||||
|
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
|
||||||
|
-10
|
||||||
|
20
|
||||||
|
-10
|
||||||
|
11
|
||||||
|
29
|
||||||
|
21
|
||||||
|
-10
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-10
|
||||||
|
20
|
||||||
|
-10
|
||||||
|
11
|
||||||
|
-10
|
||||||
|
21
|
||||||
|
29
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-10
|
||||||
|
20
|
||||||
|
29
|
||||||
|
11
|
||||||
|
29
|
||||||
|
21
|
||||||
|
29
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
29
|
||||||
|
20
|
||||||
|
-10
|
||||||
|
11
|
||||||
|
29
|
||||||
|
21
|
||||||
|
29
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-7
|
||||||
|
20
|
||||||
|
-7
|
||||||
|
11
|
||||||
|
7
|
||||||
|
21
|
||||||
|
-7
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
7
|
||||||
|
20
|
||||||
|
-7
|
||||||
|
11
|
||||||
|
7
|
||||||
|
21
|
||||||
|
7
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
7
|
||||||
|
20
|
||||||
|
7
|
||||||
|
11
|
||||||
|
-7
|
||||||
|
21
|
||||||
|
7
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-7
|
||||||
|
20
|
||||||
|
7
|
||||||
|
11
|
||||||
|
-7
|
||||||
|
21
|
||||||
|
-7
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-7
|
||||||
|
20
|
||||||
|
12
|
||||||
|
11
|
||||||
|
7
|
||||||
|
21
|
||||||
|
12
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
7
|
||||||
|
20
|
||||||
|
12
|
||||||
|
11
|
||||||
|
7
|
||||||
|
21
|
||||||
|
26
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
7
|
||||||
|
20
|
||||||
|
26
|
||||||
|
11
|
||||||
|
-7
|
||||||
|
21
|
||||||
|
26
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
-7
|
||||||
|
20
|
||||||
|
26
|
||||||
|
11
|
||||||
|
-7
|
||||||
|
21
|
||||||
|
12
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
12
|
||||||
|
20
|
||||||
|
-7
|
||||||
|
11
|
||||||
|
26
|
||||||
|
21
|
||||||
|
-7
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
26
|
||||||
|
20
|
||||||
|
-7
|
||||||
|
11
|
||||||
|
26
|
||||||
|
21
|
||||||
|
7
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
26
|
||||||
|
20
|
||||||
|
7
|
||||||
|
11
|
||||||
|
12
|
||||||
|
21
|
||||||
|
7
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
12
|
||||||
|
20
|
||||||
|
7
|
||||||
|
11
|
||||||
|
12
|
||||||
|
21
|
||||||
|
-7
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
12
|
||||||
|
20
|
||||||
|
12
|
||||||
|
11
|
||||||
|
26
|
||||||
|
21
|
||||||
|
12
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
26
|
||||||
|
20
|
||||||
|
12
|
||||||
|
11
|
||||||
|
26
|
||||||
|
21
|
||||||
|
26
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
26
|
||||||
|
20
|
||||||
|
26
|
||||||
|
11
|
||||||
|
12
|
||||||
|
21
|
||||||
|
26
|
||||||
|
0
|
||||||
|
LINE
|
||||||
|
8
|
||||||
|
0
|
||||||
|
10
|
||||||
|
12
|
||||||
|
20
|
||||||
|
26
|
||||||
|
11
|
||||||
|
12
|
||||||
|
21
|
||||||
|
12
|
||||||
|
0
|
||||||
|
ENDSEC
|
||||||
|
0
|
||||||
|
EOF
|
Loading…
Add table
Add a link
Reference in a new issue