@Test
public void testRatioBoundaryConditions() {

    // no exposure
    assertEquals(0, RiskRatio.compute(0, 0, 100, 100), 0);
    // all exposed
    assertEquals(0, RiskRatio.compute(100, 100, 100, 100), 0);
    // event only found in exposed
    assertEquals(Double.POSITIVE_INFINITY, RiskRatio.compute(0, 100, 100, 100), 0);
    assertEquals(Double.POSITIVE_INFINITY, RiskRatio.compute(null, 100, 100, 100), 0);
    // event never found in exposed
    assertEquals(0, RiskRatio.compute(100, 0, 1000, 100), 0);
    assertEquals(0, RiskRatio.compute(100, null, 1000, 100), 0);
    // handling nulls, all zeroes
    assertEquals(0, RiskRatio.compute(null, null, null, null), 0);
}