Arduino-Programmierung: Denkfehler?

Ich habe einen Testcode geschrieben, den ich im tinkercad-Simulator laufen lassen möchte.

Zwei Schalter sollen mit den Zuständen 000 bis 1111 vier Ausgänge schalten.

Dafür dieser Code:

const int input1 = 2; // Digitaleingang 1
const int input2 = 3; // Digitaleingang 2

const int output1 = 8; // Digitaler Ausgang 1
const int output2 = 9; // Digitaler Ausgang 2
const int output3 = 10; // Digitaler Ausgang 3
const int output4 = 11; // Digitaler Ausgang 4

void setup() {
  // Konfiguration der Pins als Eingänge und Ausgänge
  pinMode(input1, INPUT);
  pinMode(input2, INPUT);
  pinMode(output1, OUTPUT);
  pinMode(output2, OUTPUT);
  pinMode(output3, OUTPUT);
  pinMode(output4, OUTPUT);
}

void loop() {
  // Lesen des Zustands der Eingänge
  int input1Value = digitalRead(input1);
  int input2Value = digitalRead(input2);

  // Berechnen der Ausgangswerte
  int output1Value = (input1Value == 0) && (input2Value == 0);
  int output2Value = (input1Value == 0) && (input2Value == 1);
  int output3Value = (input1Value == 1) && (input2Value == 0);
  int output4Value = (input1Value == 1) && (input2Value == 1);

  // Schreiben der Ausgangswerte
  digitalWrite(output1, output1Value);
  digitalWrite(output2, output2Value);
  digitalWrite(output3, output3Value);
  digitalWrite(output4, output4Value);
}

Das funktioniert aber nicht. Die Logik wird nicht wie erwartet im Simulator umgesetzt. Ist der Code fehlerhaft oder mag der Simulator nicht richtig arbeiten?

Bild zum Beitrag
Cplusplus, Code, Arduino Uno