working on tree compare tests etc

This commit is contained in:
Peter Cottle 2013-06-08 14:11:13 -10:00
parent 89fa08e149
commit 3d8e40851e
5 changed files with 71 additions and 4 deletions

View file

@ -28136,7 +28136,9 @@ var toGlobalize = {
}; };
_.each(toGlobalize, function(module) { _.each(toGlobalize, function(module) {
_.extend(window, module); for (var key in module) {
window['debug_' + key] = module[key];
}
}); });
$(document).ready(function() { $(document).ready(function() {
@ -28145,6 +28147,7 @@ $(document).ready(function() {
window.sandbox = toGlobalize.Main.getSandbox(); window.sandbox = toGlobalize.Main.getSandbox();
window.modules = toGlobalize; window.modules = toGlobalize;
window.levelDropdown = toGlobalize.Main.getLevelDropdown(); window.levelDropdown = toGlobalize.Main.getLevelDropdown();
window.under = _;
}); });

View file

@ -1,6 +1,5 @@
var HeadlessGit = require('../src/js/git/headless').HeadlessGit; var HeadlessGit = require('../src/js/git/headless').HeadlessGit;
var TreeCompare = require('../src/js/git/treeCompare').TreeCompare; var TreeCompare = require('../src/js/git/treeCompare').TreeCompare;
var treeCompare = new TreeCompare();
var loadTree = function(json) { var loadTree = function(json) {
return JSON.parse(unescape(json)); return JSON.parse(unescape(json));
@ -10,7 +9,7 @@ var compareAnswer = function(headless, expectedJSON) {
var expectedTree = loadTree(expectedJSON); var expectedTree = loadTree(expectedJSON);
var actualTree = headless.gitEngine.exportTree(); var actualTree = headless.gitEngine.exportTree();
var equal = treeCompare.compareTrees(expectedTree, actualTree); var equal = TreeCompare.compareTrees(expectedTree, actualTree);
if (!equal) { if (!equal) {
console.log('tree1', expectedTree); console.log('tree1', expectedTree);
console.log('tree2', actualTree); console.log('tree2', actualTree);

39
spec/treeCompare.spec.js Normal file
View file

@ -0,0 +1,39 @@
var TreeCompare = require('../src/js/git/treeCompare').TreeCompare;
var _ = require('underscore');
var loadTree = function(json) {
return JSON.parse(unescape(json));
};
var copyArgs = function(args) {
return _.map(args, function(arg) {
return arg;
});
};
var loadTree = function(treeString) {
return TreeCompare.convertTreeSafe(treeString);
};
var testMethod = function(compareMethod, goalTreeString /* other trees */) {
if (arguments.length < 3) {
throw new Error('not allowed! need at least one tree to compare');
}
var toCompare = copyArgs(arguments).slice(2);
_.each(toCompare, function(actualTree) {
var isEqual = TreeCompare.dispatch(compareMethod, goalTreeString, actualTree);
if (!isEqual) {
console.log('this goal tree', loadTree(goalTreeString));
console.log('did not match this tree', loadTree(actualTree));
}
expect(isEqual).toBe(true);
});
};
describe('Tree Compare', function() {
it('can compare only master', function() {
});
});

View file

@ -3,6 +3,29 @@ var _ = require('underscore');
// static class... // static class...
var TreeCompare = {}; var TreeCompare = {};
TreeCompare.dispatchFromLevel = function(levelBlob, treeToCompare) {
var goalTreeString = levelBlob.goalTreeString;
return TreeCompare.dispatch(levelBlob, goalTreeString, treeToCompare);
};
TreeCompare.dispatch = function(levelBlob, goalTreeString, treeToCompare) {
switch(true) {
case !!levelBlob.compareOnlyMaster:
return TreeCompare.compareBranchWithinTrees(current, goalTreeString, 'master');
case !!levelBlob.compareOnlyBranches:
return TreeCompare.compareAllBranchesWithinTrees(current, goalTreeString);
case !!levelBlob.compareAllBranchesHashAgnostic:
return TreeCompare.compareAllBranchesWithinTreesHashAgnostic(current, goalTreeString);
case !!levelBlob.compareOnlyMasterHashAgnostic:
return TreeCompare.compareBranchesWithinTreesHashAgnostic(current, goalTreeString, ['master']);
case !!levelBlob.compareOnlyMasterHashAgnosticWithAsserts:
return TreeCompare.compareBranchesWithinTreesHashAgnostic(current, goalTreeString, ['master']) &&
TreeCompare.evalAsserts(current, levelBlob.goalAsserts);
default:
return TreeCompare.compareAllBranchesWithinTreesAndHEAD(current, goalTreeString);
}
};
// would love to have copy properties here.. :( // would love to have copy properties here.. :(
TreeCompare.compareAllBranchesWithinTreesAndHEAD = function(treeA, treeB) { TreeCompare.compareAllBranchesWithinTreesAndHEAD = function(treeA, treeB) {
treeA = this.convertTreeSafe(treeA); treeA = this.convertTreeSafe(treeA);

View file

@ -28,7 +28,9 @@ var toGlobalize = {
}; };
_.each(toGlobalize, function(module) { _.each(toGlobalize, function(module) {
_.extend(window, module); for (var key in module) {
window['debug_' + key] = module[key];
}
}); });
$(document).ready(function() { $(document).ready(function() {
@ -37,5 +39,6 @@ $(document).ready(function() {
window.sandbox = toGlobalize.Main.getSandbox(); window.sandbox = toGlobalize.Main.getSandbox();
window.modules = toGlobalize; window.modules = toGlobalize;
window.levelDropdown = toGlobalize.Main.getLevelDropdown(); window.levelDropdown = toGlobalize.Main.getLevelDropdown();
window.under = _;
}); });