Skip to content

Instantly share code, notes, and snippets.

@rutchkiwi
Created May 25, 2015 14:00
Show Gist options
  • Save rutchkiwi/8f1471c8e92bc8298131 to your computer and use it in GitHub Desktop.
Save rutchkiwi/8f1471c8e92bc8298131 to your computer and use it in GitHub Desktop.
JS Bin // source http://jsbin.com/qamobi
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<h4>Test results:</h4>
<div id="panel">
<div id="field_name"></div>
</div>
<script id="jsbin-javascript">
function largestInt(numbers) {
function sorter(a, b) {
ab = parseInt(String(a) + String(b));
ba = parseInt(String(b) + String(a));
if (ab > ba) {
return -1; //a is first
} else {
return 1; // b is first
}
}
numbers.sort(sorter);
console.log("num " + numbers);
str = "";
for (i = 0; i < numbers.length; i++) {
str = str + numbers[i];
}
return parseInt(str);
}
function test() {
var tests = [];
tests.push(function test1() {
var res = largestInt([1, 2]);
assertEquals(res, 21);
});
tests.push(function test2() {
var res = largestInt([90, 900, 9000, 9, 1]);
assertEquals(res, 99090090001);
});
tests.push(function test3() {
var res = largestInt([420, 42, 423]);
assertEquals(res, 42423420);
});
var count = 0;
tests.forEach(function(callback) {
try {
callback();
} catch (err) {
var failure = err;
}
var msg = "test " + (++count) + " ";
if (failure) {
msg += "failed: " + failure;
} else {
msg += "successful";
}
console.log(msg);
document.getElementById('field_name').innerHTML += msg + "<br>";
});
function assert(exp) {
if (!exp) {
throw "assertion failed";
}
}
function assertEquals(actual, expected) {
if (actual !== expected) {
throw "was " + actual + ", expected" + expected;
}
}
}
function arraysEqual(a, b) {
if (a === b) return true;
if (a == null || b == null) return false;
if (a.length != b.length) return false;
for (var i = 0; i < a.length; ++i) {
if (a[i] !== b[i]) return false;
}
return true;
}
console.clear();
test();
</script>
<script id="jsbin-source-javascript" type="text/javascript">function largestInt(numbers) {
function sorter(a, b) {
ab = parseInt(String(a) + String(b));
ba = parseInt(String(b) + String(a));
if (ab > ba) {
return -1; //a is first
} else {
return 1; // b is first
}
}
numbers.sort(sorter);
console.log("num " + numbers);
str = "";
for (i = 0; i < numbers.length; i++) {
str = str + numbers[i];
}
return parseInt(str);
}
function test() {
var tests = [];
tests.push(function test1() {
var res = largestInt([1, 2]);
assertEquals(res, 21);
});
tests.push(function test2() {
var res = largestInt([90, 900, 9000, 9, 1]);
assertEquals(res, 99090090001);
});
tests.push(function test3() {
var res = largestInt([420, 42, 423]);
assertEquals(res, 42423420);
});
var count = 0;
tests.forEach(function(callback) {
try {
callback();
} catch (err) {
var failure = err;
}
var msg = "test " + (++count) + " ";
if (failure) {
msg += "failed: " + failure;
} else {
msg += "successful";
}
console.log(msg);
document.getElementById('field_name').innerHTML += msg + "<br>";
});
function assert(exp) {
if (!exp) {
throw "assertion failed";
}
}
function assertEquals(actual, expected) {
if (actual !== expected) {
throw "was " + actual + ", expected" + expected;
}
}
}
function arraysEqual(a, b) {
if (a === b) return true;
if (a == null || b == null) return false;
if (a.length != b.length) return false;
for (var i = 0; i < a.length; ++i) {
if (a[i] !== b[i]) return false;
}
return true;
}
console.clear();
test();</script></body>
</html>
function largestInt(numbers) {
function sorter(a, b) {
ab = parseInt(String(a) + String(b));
ba = parseInt(String(b) + String(a));
if (ab > ba) {
return -1; //a is first
} else {
return 1; // b is first
}
}
numbers.sort(sorter);
console.log("num " + numbers);
str = "";
for (i = 0; i < numbers.length; i++) {
str = str + numbers[i];
}
return parseInt(str);
}
function test() {
var tests = [];
tests.push(function test1() {
var res = largestInt([1, 2]);
assertEquals(res, 21);
});
tests.push(function test2() {
var res = largestInt([90, 900, 9000, 9, 1]);
assertEquals(res, 99090090001);
});
tests.push(function test3() {
var res = largestInt([420, 42, 423]);
assertEquals(res, 42423420);
});
var count = 0;
tests.forEach(function(callback) {
try {
callback();
} catch (err) {
var failure = err;
}
var msg = "test " + (++count) + " ";
if (failure) {
msg += "failed: " + failure;
} else {
msg += "successful";
}
console.log(msg);
document.getElementById('field_name').innerHTML += msg + "<br>";
});
function assert(exp) {
if (!exp) {
throw "assertion failed";
}
}
function assertEquals(actual, expected) {
if (actual !== expected) {
throw "was " + actual + ", expected" + expected;
}
}
}
function arraysEqual(a, b) {
if (a === b) return true;
if (a == null || b == null) return false;
if (a.length != b.length) return false;
for (var i = 0; i < a.length; ++i) {
if (a[i] !== b[i]) return false;
}
return true;
}
console.clear();
test();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment