package io.github.moulberry.notenoughupdates.miscfeatures;
import io.github.moulberry.notenoughupdates.core.util.Vec3Comparable;
import io.github.moulberry.notenoughupdates.miscfeatures.CrystalWishingCompassSolver.CompassTarget;
import io.github.moulberry.notenoughupdates.miscfeatures.CrystalWishingCompassSolver.HandleCompassResult;
import io.github.moulberry.notenoughupdates.miscfeatures.CrystalWishingCompassSolver.SolverState;
import io.github.moulberry.notenoughupdates.util.NEUDebugLogger;
import net.minecraft.util.BlockPos;
import net.minecraft.util.Vec3;
import net.minecraft.util.Vec3i;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.EnumSet;
import static io.github.moulberry.notenoughupdates.miscfeatures.CrystalWishingCompassSolver.*;
class CrystalWishingCompassSolverTest {
private static final CrystalWishingCompassSolver solver = getInstance();
long systemTimeMillis;
private final long DELAY_AFTER_FIRST_COMPASS_LAST_PARTICLE = 500L;
private final CompassUse minesOfDivanCompassUse1 = new CompassUse(
1647528732979L,
new BlockPos(754, 137, 239),
new ArrayList<>(Arrays.asList(
new ParticleSpawn(new Vec3Comparable(754.358459, 138.536407, 239.200928), 137),
new ParticleSpawn(new Vec3Comparable(754.315735, 138.444351, 239.690521), 45),
new ParticleSpawn(new Vec3Comparable(754.272278, 138.352051, 240.180008), 51),
new ParticleSpawn(new Vec3Comparable(754.228760, 138.259750, 240.669479), 49),
new ParticleSpawn(new Vec3Comparable(754.185303, 138.167435, 241.158966), 57),
new ParticleSpawn(new Vec3Comparable(754.141846, 138.075134, 241.648438), 50),
new ParticleSpawn(new Vec3Comparable(754.098328, 137.982819, 242.137909), 51),
new ParticleSpawn(new Vec3Comparable(754.054871, 137.890518, 242.627396), 57),
new ParticleSpawn(new Vec3Comparable(754.011353, 137.798203, 243.116867), 44),
new ParticleSpawn(new Vec3Comparable(753.967896, 137.705887, 243.606354), 59),
new ParticleSpawn(new Vec3Comparable(753.924438, 137.613586, 244.095825), 35),
new ParticleSpawn(new Vec3Comparable(753.880920, 137.521271, 244.585297), 48),
new ParticleSpawn(new Vec3Comparable(753.837463, 137.428970, 245.074783), 70),
new ParticleSpawn(new Vec3Comparable(753.793945, 137.336655, 245.564255), 33),
new ParticleSpawn(new Vec3Comparable(753.750488, 137.244354, 246.053741), 55),
new ParticleSpawn(new Vec3Comparable(753.707031, 137.152039, 246.543213), 42),
new ParticleSpawn(new Vec3Comparable(753.663513, 137.059738, 247.032700), 56),
new ParticleSpawn(