Skip to content

Commit

Permalink
add dbf test; fix dbf ext
Browse files Browse the repository at this point in the history
  • Loading branch information
mhkeller committed Jan 12, 2017
1 parent 0cce72e commit 09a5b07
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 5 deletions.
2 changes: 1 addition & 1 deletion bin/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ q.await(function (err, aData, bData) {
})

function getDbfOrDataLoader (path) {
return io.discernParser(path) === 'dbf' ? io.readDbf : io.readData
return io.discernFormat(path) === 'dbf' ? io.readDbf : io.readData
}

function stripExtension (fullPath) {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"example": "examples"
},
"scripts": {
"test": "mocha"
"test": "standard && mocha"
},
"bin": {
"joiner": "./bin/index.js"
Expand Down
34 changes: 31 additions & 3 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ var exec = require('child_process').exec
// Our dataset paths
//
var leftDataPath = 'examples/data/left-data.json'
var leftDataNestedPath = 'examples/data/left-data-nested.json'
// var leftDataNestedPath = 'examples/data/left-data-nested.json'
var leftDataNestedTwoPath = 'examples/data/left-data-nested-two.json'
var leftDataNestedThreePath = 'examples/data/left-data-nested-three.json'
var leftDataNestedFourPath = 'examples/data/left-data-nested-four.json'
Expand All @@ -21,12 +21,13 @@ var newDataTwoPath = 'examples/data/new-data-two.json'
var newDataThreePath = 'examples/data/new-data-three.json'
var geoDataPath = 'examples/data/us-states.geojson'
var newGeoDataPath = 'examples/data/new-geo-data.json'
var dbfDataPath = 'examples/data/us-states/us-states.dbf'

// --------------------------------------------
// Our loaded data
//
var leftData = io.readDataSync(leftDataPath)
var leftDataNested = io.readDataSync(leftDataNestedPath)
// var leftDataNested = io.readDataSync(leftDataNestedPath)
var leftDataNestedTwo = io.readDataSync(leftDataNestedTwoPath)
var leftDataNestedThree = io.readDataSync(leftDataNestedThreePath)
var leftDataNestedFour = io.readDataSync(leftDataNestedFourPath)
Expand All @@ -44,7 +45,8 @@ var joinedResultNested = '{"data":[{"id":"1","name":"Utah","values":{"weather":{
var joinedResultNestedKeys = '{"data":[{"id":"1","name":"UT","values":{"name":"Utah"},"type":"state","data":{"avg_temp":72}},{"id":"2","name":"WY","values":{"name":"Wyoming"},"type":null,"data":null},{"id":"3","name":"CO","values":{"name":"Colorado"},"type":"state","data":{"avg_temp":34}},{"id":"4","name":"NM","values":{"name":"New Mexico"},"type":"state","data":{"avg_temp":45}}],"report":{"diff":{"a":["Utah","Wyoming","Colorado","New Mexico"],"b":["Colorado","Utah","New Mexico"],"a_and_b":["Utah","Colorado","New Mexico"],"a_not_in_b":["Wyoming"],"b_not_in_a":[]},"prose":{"summary":"3 rows matched in A and B. 1 row in A not in B. All 3 rows in B in A.","full":"Matches in A and B: Utah, Colorado, New Mexico. A not in B: Wyoming."}}}'
var joinedGeoResultId = '{"data":{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-103.00051157559423,36.99999842346288],[-106.40314927871762,36.99999842346288],[-109.04485956299908,36.99999842346288],[-109.04485956299908,40.99944977889005],[-104.05217069691822,40.99944977889005],[-102.05294158231935,40.99892470978733],[-102.03858446120913,36.99999842346288],[-103.00051157559423,36.99999842346288]]]},"properties":{"name":"Colorado","state_name":"Colorado","avg_temp":34},"id":"CO"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-109.04485956299908,36.99999842346288],[-106.40314927871762,36.99999842346288],[-103.00051157559423,36.99999842346288],[-103.0435829389249,35.89420289313209],[-103.06511862059024,32.00186563466003],[-106.66157745870169,32.000290427351864],[-108.21573581888357,31.777661127798083],[-108.21573581888357,31.327151837663315],[-109.04844884327663,31.326626768560594],[-109.04485956299908,36.99999842346288]]]},"properties":{"name":"New Mexico","state_name":"New Mexico","avg_temp":45},"id":"NM"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-111.05126723815307,41.9997064195739],[-111.05126723815307,40.99944977889005],[-109.04485956299908,40.99944977889005],[-109.04485956299908,36.99999842346288],[-114.04113770935749,37.003148838079206],[-114.04113770935749,42.00023148867662],[-111.05126723815307,41.9997064195739]]]},"properties":{"name":"Utah","state_name":"Utah","avg_temp":72},"id":"UT"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-104.05217069691822,40.99944977889005],[-109.04485956299908,40.99944977889005],[-111.05126723815307,40.99944977889005],[-111.05126723815307,41.9997064195739],[-111.05126723815307,44.99995127252268],[-108.82591346606814,44.99995127252268],[-104.05575997719579,44.99995127252268],[-104.05217069691822,40.99944977889005]]]},"properties":{"name":"Wyoming","state_name":null,"avg_temp":null},"id":"WY"}]},"report":{"diff":{"a":["CO","NM","UT","WY"],"b":["CO","UT","NM"],"a_and_b":["CO","NM","UT"],"a_not_in_b":["WY"],"b_not_in_a":[]},"prose":{"summary":"3 rows matched in A and B. 1 row in A not in B. All 3 rows in B in A.","full":"Matches in A and B: CO, NM, UT. A not in B: WY."}}}'
var joinedGeoResultProp = '{"data":{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-103.00051157559423,36.99999842346288],[-106.40314927871762,36.99999842346288],[-109.04485956299908,36.99999842346288],[-109.04485956299908,40.99944977889005],[-104.05217069691822,40.99944977889005],[-102.05294158231935,40.99892470978733],[-102.03858446120913,36.99999842346288],[-103.00051157559423,36.99999842346288]]]},"properties":{"name":"Colorado","state_abbr":"CO","avg_temp":34},"id":"CO"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-109.04485956299908,36.99999842346288],[-106.40314927871762,36.99999842346288],[-103.00051157559423,36.99999842346288],[-103.0435829389249,35.89420289313209],[-103.06511862059024,32.00186563466003],[-106.66157745870169,32.000290427351864],[-108.21573581888357,31.777661127798083],[-108.21573581888357,31.327151837663315],[-109.04844884327663,31.326626768560594],[-109.04485956299908,36.99999842346288]]]},"properties":{"name":"New Mexico","state_abbr":"NM","avg_temp":45},"id":"NM"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-111.05126723815307,41.9997064195739],[-111.05126723815307,40.99944977889005],[-109.04485956299908,40.99944977889005],[-109.04485956299908,36.99999842346288],[-114.04113770935749,37.003148838079206],[-114.04113770935749,42.00023148867662],[-111.05126723815307,41.9997064195739]]]},"properties":{"name":"Utah","state_abbr":"UT","avg_temp":72},"id":"UT"},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-104.05217069691822,40.99944977889005],[-109.04485956299908,40.99944977889005],[-111.05126723815307,40.99944977889005],[-111.05126723815307,41.9997064195739],[-111.05126723815307,44.99995127252268],[-108.82591346606814,44.99995127252268],[-104.05575997719579,44.99995127252268],[-104.05217069691822,40.99944977889005]]]},"properties":{"name":"Wyoming","state_abbr":null,"avg_temp":null},"id":"WY"}]},"report":{"diff":{"a":["Colorado","New Mexico","Utah","Wyoming"],"b":["Colorado","Utah","New Mexico"],"a_and_b":["Colorado","New Mexico","Utah"],"a_not_in_b":["Wyoming"],"b_not_in_a":[]},"prose":{"summary":"3 rows matched in A and B. 1 row in A not in B. All 3 rows in B in A.","full":"Matches in A and B: Colorado, New Mexico, Utah. A not in B: Wyoming."}}}'

var joinedGeoResultPropDbf = '[{"name":"Colorado","fid":"CO","avg_temp":34},{"name":"New Mexico","fid":"NM","avg_temp":45},{"name":"Utah","fid":"UT","avg_temp":72},{"name":"Wyoming","fid":"WY","avg_temp":0}]'
var joinedGeoResultPropDbfReport = '{"diff":{"a":["Colorado","New Mexico","Utah","Wyoming"],"b":["Colorado","Utah","New Mexico"],"a_and_b":["Colorado","New Mexico","Utah"],"a_not_in_b":["Wyoming"],"b_not_in_a":[]},"prose":{"summary":"3 rows matched in A and B. 1 row in A not in B. All 3 rows in B in A.","full":"Matches in A and B: Colorado, New Mexico, Utah. A not in B: Wyoming."}}'
// --------------------------------------------
// Testing 1, 2, 3
//
Expand Down Expand Up @@ -254,4 +256,30 @@ describe('cli', function () {
})
})
})

describe('dbf', function () {
it('should match expected json', function (done) {
var config = {
leftDataKey: 'name',
rightDataKey: 'state_name'
}
var cmd = './bin/index.js -a ' + dbfDataPath + ' -k ' + config.leftDataKey + ' -b ' + newDataTwoPath + ' -j ' + config.rightDataKey
var outFile = 'test/tmp-test-dbf.dbf'
var outCmd = ' -o ' + outFile
exec(cmd + outCmd, function (err, stdout, stderr) {
assert(_.isEqual(err, null))
io.readDbf(outFile, function (err, data) {
assert(_.isEqual(err, null))
var report = io.readDataSync(outFile.replace('.dbf', '.report.json'))
var parsedResult = JSON.parse(joinedGeoResultPropDbf)
assert(_.isEqual(parsedResult, data))
assert(_.isEqual(JSON.parse(joinedGeoResultPropDbfReport), report))
rimraf(outFile.replace('.dbf', '*'), function (err) {
assert.equal(err, null)
done()
})
})
})
})
})
})

0 comments on commit 09a5b07

Please sign in to comment.