Truth test
by infiniteloops
CSS
body {
font-family:'consolas';
background-color: #353535;
color: #e5e5e5;
}
.true {
color: #00af00;
font-weight: bold;
}
.false {
color: #af0000;
font-weight: bold;
}
.null {
color: #aaaaaa;
font-weight: bold;
}
JavaScript
page = (function () {
var self = this;
self.EvaluateTrueEq = function (val) {
return (val || true).toString() === "true";
};
self.EvaluateFalseEq = function (val) {
return (val || false).toString() === "false";
};
// Array of tests to be run
self.testArr = [{
name: "EvaluateTrueEq",
method: self.EvaluateTrueEq
}, {
name: "EvaluateFalseEq",
method: self.EvaluateFalseEq
}];
// Array of values iterated for each test
self.boolArr = [null, true, false, "true", "false"];
return self;
})();
$(function () {
// Loop tests
for (var ix in page.testArr) {
var test = page.testArr[ix];
// Loop values
for (var iix in page.boolArr) {
var val = page.boolArr[iix];
var valStr = val == null ? 'null' : val.toString();
// run test
var result = test.method(val);
// show results
$('P').append("<div>" + test.name + "(<span class='" + valStr + "'>" + (typeof (val) === 'string' ? "'" + valStr + "'" : valStr) + "</span>) = <span class='" + result.toString() + "'>" + result + "</span></div>");
}
// break between tests
$('P').append('<br />');
}
});