xor js
by gol ngaz²
HTML
<table>
<tr>
<th>Tests 1</th>
<th>Tests 2</th>
<th>Tests 3</th>
<th>Tests 4</th>
</tr>
<tr>
<td><span id="result"></span></td>
<td><span id="result2"></span></td>
<td><span id="result3"></span></td>
<td><span id="result4"></span></td>
</tr>
</table>
CSS
table, tr, td, th {
border: 1px solid black;
}
JavaScript
resultElement = document.querySelector("#result");
resultElement2 = document.querySelector("#result2");
resultElement3 = document.querySelector("#result3");
resultElement4 = document.querySelector("#result4");
function test(a, b, shouldBeTrue) {
if (a ^ b) {
if (shouldBeTrue) {
resultElement.innerHTML += "<br><span style='color:green;'>ok</span>";
} else {
resultElement.innerHTML += "<br><span style='color:red;'>FAIL</span>";
}
} else {
if (shouldBeTrue) {
resultElement.innerHTML += "<br><span style='color:red;'>FAIL</span>";
} else {
resultElement.innerHTML += "<br><span style='color:green;'>ok</span>";
}
}
test2(a, b, shouldBeTrue);
}
function test2(a, b, shouldBeTrue) {
if (!a ^ !b) {
if (shouldBeTrue) {
resultElement2.innerHTML += "<br><span style='color:green;'>ok</span>";
} else {
resultElement2.innerHTML += "<br><span style='color:red;'>FAIL</span>";
}
} else {
if (shouldBeTrue) {
resultElement2.innerHTML += "<br><span style='color:red;'>FAIL</span>";
} else {
resultElement2.innerHTML += "<br><span style='color:green;'>ok</span>";
}
}
test3(a, b, shouldBeTrue);
}
function test3(a, b, shouldBeTrue) {
if (!a != !b) {
if (shouldBeTrue) {
resultElement3.innerHTML += "<br><span style='color:green;'>ok</span>";
} else {
resultElement3.innerHTML += "<br><span style='color:red;'>FAIL</span>";
}
} else {
if (shouldBeTrue) {
resultElement3.innerHTML += "<br><span style='color:red;'>FAIL</span>";
} else {
resultElement3.innerHTML += "<br><span...