43 lines
1.4 KiB
Java
43 lines
1.4 KiB
Java
package games.dmg.spigotbase;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
import java.util.HashSet;
|
|
import java.util.Optional;
|
|
import java.util.Set;
|
|
import java.util.UUID;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
final class PocketPortalGeometryTest {
|
|
@Test
|
|
void findsStandardFrameContainingIgnitedBlock() {
|
|
UUID worldId = UUID.randomUUID();
|
|
PocketPortalLocation expected = new PocketPortalLocation(
|
|
worldId, "world", 10, 64, 20, PocketPortalAxis.X
|
|
);
|
|
Set<BlockPosition> frame = new HashSet<>(PocketPortalGeometry.frameBlocks(expected));
|
|
|
|
Optional<PocketPortalLocation> found = PocketPortalGeometry.findFrame(
|
|
new BlockPosition(10, 66, 20),
|
|
worldId,
|
|
"world",
|
|
frame::contains,
|
|
ignored -> true
|
|
);
|
|
|
|
assertEquals(expected, found.orElseThrow());
|
|
}
|
|
|
|
@Test
|
|
void identifiesPortalInteriorAndRequiredFrameBlocks() {
|
|
PocketPortalLocation portal = new PocketPortalLocation(
|
|
UUID.randomUUID(), "world", 0, 64, 0, PocketPortalAxis.Z
|
|
);
|
|
|
|
assertTrue(PocketPortalGeometry.isInterior(portal, new BlockPosition(0, 65, 1)));
|
|
assertTrue(PocketPortalGeometry.isFrame(portal, new BlockPosition(0, 68, 3)));
|
|
assertEquals(14, PocketPortalGeometry.frameBlocks(portal).size());
|
|
}
|
|
}
|