@Test
public void testHierarchical() {

  int[][] qData = new int[][] {
    //  /    A   B   C    D   E   F
    { 200, 100, 50, 50, 100, 10, 90 },  // abs
    { 200, 200, 200, 200, 200, 200, 200 },  // maxCap
    { 200, 110, 60, 50,  90, 90,  0 },  // used
    {  10,   0,  0,  0,  10,  0, 10 },  // pending
    {   0,   0,  0,  0,   0,  0,  0 },  // reserved
    {   4,   2,  1,  1,   2,  1,  1 },  // apps
    {  -1,  -1,  1,  1,  -1,  1,  1 },  // req granularity
    {   2,   2,  0,  0,   2,  0,  0 },  // subqueues
  };
  ProportionalCapacityPreemptionPolicy policy = buildPolicy(qData);
  policy.editSchedule();
  // verify capacity taken from A1, not B1 despite B1 being far over
  // its absolute guaranteed capacity
  verify(mDisp, times(10)).handle(argThat(new IsPreemptionRequestFor(appA)));
}