public void PlannerClass_GetPressureGroup_SelectedValuesAndEdgeCases() { // Depth lower than minimum on table Assert.AreEqual('A', _classUnderTest.GetPressureGroup(8, 10), "Unexpected value for 8,10"); // Duration lower than minimum on table Assert.AreEqual('A', _classUnderTest.GetPressureGroup(10, 8), "Unexpected value for 10,8"); // Duration AND depth lower than minimum on table Assert.AreEqual('A', _classUnderTest.GetPressureGroup(8, 8), "Unexpected value for 8,8"); // Matches cell exactly Assert.AreEqual('A', _classUnderTest.GetPressureGroup(10, 10), "Unexpected value for 10,10"); // Depth just over cell value Assert.AreEqual('B', _classUnderTest.GetPressureGroup(11, 11), "Unexpected value for 11,10"); // Duration just over cell value Assert.AreEqual('B', _classUnderTest.GetPressureGroup(10, 11), "Unexpected value for 10,11"); // Duration at maximum for depth Assert.AreEqual('Z', _classUnderTest.GetPressureGroup(10, 219), "Unexpected value for 10,219"); // Duration above maximum for depth Assert.IsNull(_classUnderTest.GetPressureGroup(10, 220), "Unexpected value for 10,220"); // Depth at Maximum for table Assert.AreEqual('B', _classUnderTest.GetPressureGroup(42, 4), "Unexpected value for 42,4"); // Depth over Maximum for table Assert.IsNull(_classUnderTest.GetPressureGroup(43, 4), "Unexpected value for 43,4"); // Duration and Depth over Maximum for table Assert.IsNull(_classUnderTest.GetPressureGroup(43, 9), "Unexpected value for 43,9"); // Cell skips down to next depth Assert.AreEqual('B', _classUnderTest.GetPressureGroup(40, 1), "Unexpected value for 40,1"); Assert.AreEqual('B', _classUnderTest.GetPressureGroup(42, 1), "Unexpected value for 42,1"); Assert.AreEqual('D', _classUnderTest.GetPressureGroup(42, 5), "Unexpected value for 42,5"); // can't test skip-down for 35 metres for 8.5 mins // can't test skip-down for 40 metres for 6.5 mins }