Skip to content

Commit 5a014da

Browse files
committedJan 26, 2025
tests: add tests for wire signal strength
1 parent c8655b0 commit 5a014da

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
 

‎tests/components.rs

+42
Original file line numberDiff line numberDiff line change
@@ -140,3 +140,45 @@ fn repeater_on_off(backend: TestBackend) {
140140
runner.check_block_powered(trapdoor_pos, false);
141141
}
142142
}
143+
144+
test_all_backends!(wire_barely_reaches);
145+
fn wire_barely_reaches(backend: TestBackend) {
146+
let lever_pos = pos(0, 1, 0);
147+
let trapdoor_pos = pos(16, 1, 0);
148+
149+
let mut world = TestWorld::new(2);
150+
make_lever(&mut world, lever_pos);
151+
// 15 wire blocks between lever and trapdoor
152+
for x in 1..=15 {
153+
make_wire(&mut world, pos(x, 1, 0));
154+
}
155+
world.set_block(trapdoor_pos, trapdoor());
156+
157+
let mut runner = BackendRunner::new(world, backend);
158+
runner.check_block_powered(trapdoor_pos, false);
159+
runner.use_block(lever_pos);
160+
runner.check_block_powered(trapdoor_pos, true);
161+
runner.use_block(lever_pos);
162+
runner.check_block_powered(trapdoor_pos, false);
163+
}
164+
165+
test_all_backends!(wire_no_reach);
166+
fn wire_no_reach(backend: TestBackend) {
167+
let lever_pos = pos(0, 1, 0);
168+
let trapdoor_pos = pos(17, 1, 0);
169+
170+
let mut world = TestWorld::new(2);
171+
make_lever(&mut world, lever_pos);
172+
// 16 wire blocks between lever and trapdoor
173+
for x in 1..=16 {
174+
make_wire(&mut world, pos(x, 1, 0));
175+
}
176+
world.set_block(trapdoor_pos, trapdoor());
177+
178+
let mut runner = BackendRunner::new(world, backend);
179+
runner.check_block_powered(trapdoor_pos, false);
180+
runner.use_block(lever_pos);
181+
runner.check_block_powered(trapdoor_pos, false);
182+
runner.use_block(lever_pos);
183+
runner.check_block_powered(trapdoor_pos, false);
184+
}

0 commit comments

Comments
 (0)
Please sign in to comment.