aboutsummaryrefslogtreecommitdiff
path: root/node_modules/fast-diff/test.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/fast-diff/test.js')
-rw-r--r--node_modules/fast-diff/test.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/node_modules/fast-diff/test.js b/node_modules/fast-diff/test.js
new file mode 100644
index 000000000..5a33eed74
--- /dev/null
+++ b/node_modules/fast-diff/test.js
@@ -0,0 +1,52 @@
+var _ = require('lodash');
+var googlediff = require('googlediff');
+var seedrandom = require('seedrandom');
+var diff = require('./diff.js');
+
+googlediff = new googlediff();
+
+var ITERATIONS = 10000;
+var ALPHABET = 'GATTACA';
+var LENGTH = 100;
+
+var seed = Math.floor(Math.random() * 10000);
+var random = seedrandom(seed);
+
+console.log('Running computing ' + ITERATIONS + ' diffs with seed ' + seed + '...');
+
+console.log('Generating strings...');
+var strings = [];
+for(var i = 0; i <= ITERATIONS; ++i) {
+ var chars = [];
+ for(var l = 0; l < LENGTH; ++l) {
+ var letter = ALPHABET.substr(Math.floor(random() * ALPHABET.length), 1);
+ chars.push(letter);
+ }
+ strings.push(chars.join(''));
+}
+
+console.log('Running tests *without* cursor information...');
+for(var i = 0; i < ITERATIONS; ++i) {
+ var result = diff(strings[i], strings[i+1]);
+ var expected = googlediff.diff_main(strings[i], strings[i+1]);
+ if (!_.isEqual(result, expected)) {
+ console.log('Expected', expected);
+ console.log('Result', result);
+ throw new Error('Diff produced difference results.');
+ }
+}
+
+console.log('Running tests *with* cursor information');
+for(var i = 0; i < ITERATIONS; ++i) {
+ var cursor_pos = Math.floor(random() * strings[i].length + 1);
+ var diffs = diff(strings[i], strings[i+1], cursor_pos);
+ var patch = googlediff.patch_make(strings[i], strings[i+1], diffs);
+ var expected = googlediff.patch_apply(patch, strings[i])[0];
+ if (expected !== strings[i+1]) {
+ console.log('Expected', expected);
+ console.log('Result', strings[i+1]);
+ throw new Error('Diff produced difference results.');
+ }
+}
+
+console.log("Success!");