excel-as-json
Version:
Convert Excel data to JSON
74 lines (66 loc) • 2.29 kB
JavaScript
// Generated by CoffeeScript 2.2.4
(function() {
var _removeDuplicates, chai, expect, transpose;
transpose = require('../lib/excel-as-json').transpose;
// TODO: How to get chai defined in a more global way
chai = require('chai');
chai.should();
expect = chai.expect;
_removeDuplicates = function(array) {
var i, key, ref, set;
set = {};
for (key = i = 0, ref = array.length - 1; (0 <= ref ? i <= ref : i >= ref); key = 0 <= ref ? ++i : --i) {
set[array[key]] = array[key];
}
return (function() {
var results;
results = [];
for (key in set) {
results.push(key);
}
return results;
})();
};
describe('transpose', function() {
var rectangleTall, rectangleWide, square;
square = [['one', 'two', 'three'], ['one', 'two', 'three'], ['one', 'two', 'three']];
rectangleWide = [['one', 'two', 'three'], ['one', 'two', 'three']];
rectangleTall = [['one', 'two'], ['one', 'two'], ['one', 'two']];
it('should transpose square 2D arrays', function() {
var i, len, result, results, row;
result = transpose(square);
result.length.should.equal(3);
results = [];
for (i = 0, len = result.length; i < len; i++) {
row = result[i];
row.length.should.equal(3);
results.push(_removeDuplicates(row).length.should.equal(1));
}
return results;
});
it('should transpose wide rectangular 2D arrays', function() {
var i, len, result, results, row;
result = transpose(rectangleWide);
result.length.should.equal(3);
results = [];
for (i = 0, len = result.length; i < len; i++) {
row = result[i];
row.length.should.equal(2);
results.push(_removeDuplicates(row).length.should.equal(1));
}
return results;
});
return it('should transpose tall rectangular 2D arrays', function() {
var i, len, result, results, row;
result = transpose(rectangleTall);
result.length.should.equal(2);
results = [];
for (i = 0, len = result.length; i < len; i++) {
row = result[i];
row.length.should.equal(3);
results.push(_removeDuplicates(row).length.should.equal(1));
}
return results;
});
});
}).call(this);