@Test
public void setOffsets_works(){

    // given
    List<String> annotations = Arrays.asList("row", "value", "value", "column", "deco");
    List<Integer> orderNumbers = Arrays.asList(0, 0, 1, 1, 1);
    List<String> typeList = Arrays.asList(null, "SUM", "SUM", null, null);
    List<String> fieldNameList = Arrays.asList("fn1", "fn2", "fn2a", "fn3", "fn4");
    sourceSheetBuilder(annotations, orderNumbers, typeList, fieldNameList);
    // when
    p.pivot(sourceSheet, targetSheet);
    // then
    Assertions.assertThat(p.valueRowOffsetY).isEqualTo(1);
    Assertions.assertThat(p.columnLabelOffsetX).isEqualTo(2);
    Assertions.assertThat(p.decoRowOffsetX).isEqualTo(1);
    Assertions.assertThat(p.valuesStartAtRownumber).isEqualTo(2);
    // given
    annotations = Arrays.asList("row", "value", "value", "column", "deco", "column");
    orderNumbers = Arrays.asList(0, 0, 1, 1, 1, 2);
    typeList = Arrays.asList(null, "SUM", "SUM", null, null, null);
    fieldNameList = Arrays.asList("fn1", "fn2", "fn2a", "fn3", "fn4", "fn3a");
    sourceSheetBuilder(annotations, orderNumbers, typeList, fieldNameList);
    // when
    p.pivot(sourceSheet, targetSheet);
    // then
    Assertions.assertThat(p.valueRowOffsetY).isEqualTo(2);
    Assertions.assertThat(p.columnLabelOffsetX).isEqualTo(2);
    Assertions.assertThat(p.decoRowOffsetX).isEqualTo(1);
    Assertions.assertThat(p.valuesStartAtRownumber).isEqualTo(3);
}