mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-24 01:31:46 +00:00
86 lines
2.7 KiB
Java
86 lines
2.7 KiB
Java
// Copyright (c) FIRST and other WPILib contributors.
|
|
// Open Source Software; you can modify and/or share it under the terms of
|
|
// the WPILib BSD license file in the root directory of this project.
|
|
|
|
package org.wpilib.simulation;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
import org.wpilib.hardware.hal.HAL;
|
|
import org.wpilib.hardware.discrete.DigitalInput;
|
|
import org.wpilib.hardware.discrete.DigitalOutput;
|
|
import org.wpilib.simulation.testutils.BooleanCallback;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
class DIOSimTest {
|
|
@Test
|
|
void testInitialization() {
|
|
DIOSim sim = new DIOSim(2);
|
|
assertFalse(sim.getInitialized());
|
|
|
|
BooleanCallback initializedCallback = new BooleanCallback();
|
|
BooleanCallback isInputCallback = new BooleanCallback();
|
|
|
|
try (CallbackStore initializeCb = sim.registerInitializedCallback(initializedCallback, false);
|
|
CallbackStore inputCb = sim.registerIsInputCallback(isInputCallback, false);
|
|
DigitalOutput output = new DigitalOutput(2)) {
|
|
assertTrue(sim.getInitialized());
|
|
assertTrue(initializedCallback.wasTriggered());
|
|
assertTrue(initializedCallback.getSetValue());
|
|
|
|
assertFalse(sim.getIsInput());
|
|
assertTrue(isInputCallback.wasTriggered());
|
|
assertFalse(isInputCallback.getSetValue());
|
|
|
|
initializedCallback.reset();
|
|
sim.setInitialized(false);
|
|
assertTrue(initializedCallback.wasTriggered());
|
|
assertFalse(initializedCallback.getSetValue());
|
|
}
|
|
}
|
|
|
|
@Test
|
|
void testInput() {
|
|
HAL.initialize(500, 0);
|
|
|
|
try (DigitalInput input = new DigitalInput(0)) {
|
|
DIOSim sim = new DIOSim(input);
|
|
assertTrue(sim.getIsInput());
|
|
|
|
BooleanCallback valueCallback = new BooleanCallback();
|
|
|
|
try (CallbackStore cb = sim.registerValueCallback(valueCallback, false)) {
|
|
assertTrue(input.get());
|
|
assertTrue(sim.getValue());
|
|
|
|
assertFalse(valueCallback.wasTriggered());
|
|
sim.setValue(false);
|
|
assertTrue(valueCallback.wasTriggered());
|
|
assertFalse(valueCallback.getSetValue());
|
|
}
|
|
}
|
|
}
|
|
|
|
@Test
|
|
void testOutput() {
|
|
HAL.initialize(500, 0);
|
|
try (DigitalOutput output = new DigitalOutput(0)) {
|
|
DIOSim sim = new DIOSim(output);
|
|
assertFalse(sim.getIsInput());
|
|
|
|
BooleanCallback valueCallback = new BooleanCallback();
|
|
|
|
try (CallbackStore cb = sim.registerValueCallback(valueCallback, false)) {
|
|
assertTrue(output.get());
|
|
assertTrue(sim.getValue());
|
|
|
|
assertFalse(valueCallback.wasTriggered());
|
|
output.set(false);
|
|
assertTrue(valueCallback.wasTriggered());
|
|
assertFalse(valueCallback.getSetValue());
|
|
}
|
|
}
|
|
}
|
|
}
|