package de.randi2.simulation.unit.model; import static junit.framework.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import org.junit.Test; import de.randi2.model.TreatmentArm; import de.randi2.simulation.model.SimulationRun; public class SimulationRunTest { @Test public void testMarginalBalance2Arms() { List<TreatmentArm> arms = new ArrayList<TreatmentArm>(); SimulationRun simRun = new SimulationRun(new int[] { 10, 20 } , arms, null); simRun.setSubjectsPerArms(new int[] { 8, 22 }); double roundedResult = Math .round((simRun.getMarginalBalace() * 100000.0)) / 100000.0; assertEquals(roundedResult, 0.15789); simRun = new SimulationRun(new int[] { 20, 20 }, arms, null); simRun.setSubjectsPerArms(new int[] { 11, 29 }); roundedResult = Math .round((simRun.getMarginalBalace() * 100000.0)) / 100000.0; assertEquals(roundedResult, 0.45); simRun = new SimulationRun(new int[] { 20, 20 }, arms, null); simRun.setSubjectsPerArms(new int[] { 20, 20 }); roundedResult = Math .round((simRun.getMarginalBalace() * 100000.0)) / 100000.0; assertEquals(roundedResult, 0.0); simRun = new SimulationRun(new int[] { 100, 500 }, arms, null); simRun.setSubjectsPerArms(new int[] { 120, 480 }); roundedResult = Math .round((simRun.getMarginalBalace() * 100000.0)) / 100000.0; assertEquals(roundedResult, 0.11111); } @Test public void testMarginalBalance3Arms() { List<TreatmentArm> arms = new ArrayList<TreatmentArm>(); SimulationRun simRun = new SimulationRun(new int[] { 10, 20, 30 }, arms, null); simRun.setSubjectsPerArms(new int[] { 8, 20, 32 }); double roundedResult = Math .round((simRun.getMarginalBalace() * 100000.0)) / 100000.0; assertEquals(roundedResult, 0.09302); simRun = new SimulationRun(new int[] { 20, 20, 20 }, arms, null); simRun.setSubjectsPerArms(new int[] { 20, 20, 20 }); roundedResult = Math .round((simRun.getMarginalBalace() * 100000.0)) / 100000.0; assertEquals(roundedResult, 0.0); simRun = new SimulationRun(new int[] { 100, 100, 100 }, arms, null); simRun.setSubjectsPerArms(new int[] { 80, 105, 115 }); roundedResult = Math .round((simRun.getMarginalBalace() * 100000.0)) / 100000.0; assertEquals(roundedResult, 0.11667); } }