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...