package org.mafagafogigante.dungeon.util;
import org.junit.Assert;
import org.junit.Test;
public class DungeonMathTest {
@Test
public void weightedAverageShouldWorkAsExpected() throws Exception {
Assert.assertEquals(0, Double.compare(0.0, DungeonMath.weightedAverage(0.0, 1.0, new Percentage(0.0))));
Assert.assertEquals(0, Double.compare(1.0, DungeonMath.weightedAverage(1.0, 0.0, new Percentage(0.0))));
Assert.assertEquals(0, Double.compare(1.0, DungeonMath.weightedAverage(0.0, 1.0, new Percentage(1.0))));
Assert.assertEquals(0, Double.compare(0.0, DungeonMath.weightedAverage(1.0, 0.0, new Percentage(1.0))));
Assert.assertEquals(0, Double.compare(0.0, DungeonMath.weightedAverage(0.0, 0.5, new Percentage(0.0))));
Assert.assertEquals(0, Double.compare(0.1, DungeonMath.weightedAverage(0.0, 0.5, new Percentage(0.2))));
Assert.assertEquals(0, Double.compare(0.2, DungeonMath.weightedAverage(0.0, 0.5, new Percentage(0.4))));
Assert.assertEquals(0, Double.compare(0.3, DungeonMath.weightedAverage(0.0, 0.5, new Percentage(0.6))));
Assert.assertEquals(0, Double.compare(0.4, DungeonMath.weightedAverage(0.0, 0.5, new Percentage(0.8))));
Assert.assertEquals(0, Double.compare(0.5, DungeonMath.weightedAverage(0.0, 0.5, new Percentage(1.0))));
}
@Test
public void safeCastLongToIntegerShouldNotChangeValue() throws Exception {
Assert.assertEquals(-1, DungeonMath.safeCastLongToInteger(-1L));
Assert.assertEquals(0, DungeonMath.safeCastLongToInteger(0L));
Assert.assertEquals(1, DungeonMath.safeCastLongToInteger(1L));
Assert.assertEquals(Integer.MIN_VALUE, DungeonMath.safeCastLongToInteger((long) Integer.MIN_VALUE));
Assert.assertEquals(Integer.MAX_VALUE, DungeonMath.safeCastLongToInteger((long) Integer.MAX_VALUE));
}
@Test(expected = IllegalArgumentException.class)
public void safeCastLongToIntegerShouldThrowExceptionOnUnderflow() throws Exception {
DungeonMath.safeCastLongToInteger(((long) Integer.MIN_VALUE) - 1);
}
@Test(expected = IllegalArgumentException.class)
public void safeCastLongToIntegerShouldThrowExceptionOnOverflow() throws Exception {
DungeonMath.safeCastLongToInteger(((long) Integer.MAX_VALUE) + 1);
}
}