fix all core script syntax issues
This commit is contained in:
@@ -8,26 +8,34 @@ function stone_if_needed(b) { if (!stone.p(b)) stone(b) }
|
||||
|
||||
function bytes_to_blob(bytes) {
|
||||
var b = blob()
|
||||
for (var i = 0; i < length(bytes); i++) {
|
||||
var byte = bytes[i]
|
||||
for (var bit = 7; bit >= 0; bit--) b.write_bit((byte >> bit) & 1)
|
||||
var i = 0
|
||||
var byte = null
|
||||
var bit = null
|
||||
for (i = 0; i < length(bytes); i++) {
|
||||
byte = bytes[i]
|
||||
for (bit = 7; bit >= 0; bit--) b.write_bit((byte >> bit) & 1)
|
||||
}
|
||||
stone(b)
|
||||
return b
|
||||
}
|
||||
|
||||
function deepCompare(expected, actual, path) {
|
||||
path = path || ''
|
||||
function deepCompare(expected, actual, _path) {
|
||||
var diff = null
|
||||
var messages = null
|
||||
var expKeys = null
|
||||
var actKeys = null
|
||||
var i = 0
|
||||
var path = _path || ''
|
||||
if (expected == actual) return { passed: true, messages: [] };
|
||||
|
||||
if (is_number(expected) && is_number(actual)) {
|
||||
if (isNaN(expected) && isNaN(actual))
|
||||
return { passed: true, messages: [] };
|
||||
|
||||
var diff = abs(expected - actual);
|
||||
|
||||
diff = abs(expected - actual);
|
||||
if (diff <= EPSILON)
|
||||
return { passed: true, messages: [] };
|
||||
|
||||
|
||||
return {
|
||||
passed: false,
|
||||
messages: [
|
||||
@@ -41,7 +49,7 @@ function deepCompare(expected, actual, path) {
|
||||
stone_if_needed(expected); stone_if_needed(actual)
|
||||
if (length(expected) != length(actual))
|
||||
return { passed: false, messages: [`blob length mismatch at ${path}: ${length(expected)} vs ${length(actual)}`] }
|
||||
for (var i = 0; i < length(expected); i++) {
|
||||
for (i = 0; i < length(expected); i++) {
|
||||
if (expected.read_logical(i) != actual.read_logical(i))
|
||||
return { passed: false, messages: [`blob bit mismatch at ${path}[${i}]`] }
|
||||
}
|
||||
@@ -54,7 +62,7 @@ function deepCompare(expected, actual, path) {
|
||||
passed: false,
|
||||
messages: [`Array length mismatch at ${path}: expected ${length(expected)}, got ${length(actual)}`]
|
||||
};
|
||||
var messages = [];
|
||||
messages = [];
|
||||
arrfor(expected, function(val, i) {
|
||||
var result = deepCompare(val, actual[i], `${path}[${i}]`);
|
||||
if (!result.passed)
|
||||
@@ -64,17 +72,17 @@ function deepCompare(expected, actual, path) {
|
||||
}
|
||||
|
||||
if (is_object(expected) && is_object(actual)) {
|
||||
var expKeys = sort(array(expected))
|
||||
var actKeys = sort(array(actual))
|
||||
expKeys = sort(array(expected))
|
||||
actKeys = sort(array(actual))
|
||||
if (JSON.stringify(expKeys) != JSON.stringify(actKeys))
|
||||
return {
|
||||
passed: false,
|
||||
messages: [`Object keys mismatch at ${path}: expected ${expKeys}, got ${actKeys}`]
|
||||
};
|
||||
var messages = [];
|
||||
messages = [];
|
||||
arrfor(expKeys, function(key) {
|
||||
var result = deepCompare(expected[key], actual[key], `${path}.${key}`);
|
||||
if (!result.passed)
|
||||
if (!result.passed)
|
||||
messages = array(messages, result.messages)
|
||||
})
|
||||
return { passed: length(messages) == 0, messages: messages };
|
||||
@@ -89,26 +97,32 @@ function deepCompare(expected, actual, path) {
|
||||
function makeTest(test) {
|
||||
return function() {
|
||||
var encoded = test.replacer ? nota.encode(test.input, test.replacer) : nota.encode(test.input);
|
||||
if (!is_blob(encoded)){
|
||||
throw "encode() should return blob";
|
||||
var decoded = null
|
||||
var expected = null
|
||||
var key = null
|
||||
var compareResult = null
|
||||
if (!is_blob(encoded)) {
|
||||
disrupt
|
||||
}
|
||||
|
||||
var decoded = test.reviver ? nota.decode(encoded, test.reviver) : nota.decode(encoded);
|
||||
var expected = test.expected || test.input;
|
||||
decoded = test.reviver ? nota.decode(encoded, test.reviver) : nota.decode(encoded);
|
||||
expected = test.expected || test.input;
|
||||
if (expected && (expected.private || expected.system)) {
|
||||
var key = expected.private ? 'private' : 'system';
|
||||
key = expected.private ? 'private' : 'system';
|
||||
expected = { [key]: expected[key] };
|
||||
}
|
||||
|
||||
var compareResult = deepCompare(expected, decoded);
|
||||
compareResult = deepCompare(expected, decoded);
|
||||
if (!compareResult.passed) {
|
||||
throw text(compareResult.messages, '; ');
|
||||
disrupt
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
var testarr = []
|
||||
for (var i = 0; i < 500; i++) {
|
||||
var i = 0
|
||||
var t = null
|
||||
for (i = 0; i < 500; i++) {
|
||||
push(testarr, 1)
|
||||
}
|
||||
|
||||
@@ -172,8 +186,8 @@ var testCases = [
|
||||
];
|
||||
|
||||
var tests = {};
|
||||
for (var i = 0; i < length(testCases); i++) {
|
||||
var t = testCases[i];
|
||||
for (i = 0; i < length(testCases); i++) {
|
||||
t = testCases[i];
|
||||
tests[t.name] = makeTest(t);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user