UNPKG

zippa

Version:
61 lines (43 loc) 1.57 kB
'use strict'; var _chai = require('chai'); var _chai2 = _interopRequireDefault(_chai); var _sinonChai = require('sinon-chai'); var _sinonChai2 = _interopRequireDefault(_sinonChai); var _index = require('../index'); var _tree_zipper = require('./tree_zipper'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _chai2.default.use(_sinonChai2.default); var expect = _chai2.default.expect; var log = function log(node) { console.log(node.data); }; describe('TreeZipper', function () { function getTree() { return new _tree_zipper.Node(1, [new _tree_zipper.Node(2, [new _tree_zipper.Node(4), new _tree_zipper.Node(5)]), new _tree_zipper.Node(3)]); } function dfswalk(z) { var _z = z; var result = []; while (!_z.isEnd()) { result.push(_z.value().data); _z = _z.next(); } return result; } it('DFS iteration works', function () { var z = _tree_zipper.TreeZipper.from(getTree()); var iterationOrder = []; while (!z.isEnd()) { iterationOrder.push(z.value().data); z = z.next(); } var expected = [1, 2, 4, 5, 3]; expect(iterationOrder).to.deep.equal(expected); }); it('replacing works', function () { var z = _tree_zipper.TreeZipper.from(getTree()); var changedZipper = z.down().rightmost().remove().root(); var dfsorder = dfswalk(changedZipper); expect(dfsorder).to.deep.equal([1, 2, 4, 5]); }); });