public int getInt(int rowId, int colId) {
        return ((IntColumnVector) columns[colId]).getInt(rowId);
    }
@Test
    void testDictionary() {
        // all null
        HeapIntVector col = new HeapIntVector(VECTOR_SIZE);
        Integer[] dict = new Integer[2];
        dict[0] = 1998;
        dict[1] = 9998;
        col.setDictionary(new ColumnVectorTest.TestDictionary(dict));
        HeapIntVector heapIntVector = col.reserveDictionaryIds(VECTOR_SIZE);
        for (int i = 0; i < VECTOR_SIZE; i++) {
            heapIntVector.vector[i] = i % 2 == 0 ? 0 : 1;
        }

        VectorizedColumnBatch batch = new VectorizedColumnBatch(new ColumnVector[] {col});

        for (int i = 0; i < VECTOR_SIZE; i++) {
            ColumnarRowData row = new ColumnarRowData(batch, i);
            if (i % 2 == 0) {
                assertThat(1998).isEqualTo(row.getInt(0));
            } else {
                assertThat(9998).isEqualTo(row.getInt(0));
            }
        }
    }