Code review comment: Actually it has test `1000-00-00` until `2023-00-00`. But I can assign all values too.

Code under review:
public void testReadFileWithTypes() throws IOException {
		File folder = TEMPORARY_FOLDER.newFolder();
		String file = new File(folder, "testOrc").getPath();
		int rowSize = 1024;

		
		{
			
			TypeDescription schema =
					TypeDescription.fromString(
							"struct<" +
									"f0:float," +
									"f1:double," +
									"f2:timestamp," +
									"f3:tinyint," +
									"f4:smallint" +
									">");

			org.apache.hadoop.fs.Path filePath = new org.apache.hadoop.fs.Path(file);
			Configuration conf = new Configuration();

			Writer writer =
					OrcFile.createWriter(filePath,
							OrcFile.writerOptions(conf).setSchema(schema));

			VectorizedRowBatch batch = schema.createRowBatch(rowSize);
			DoubleColumnVector col0 = (DoubleColumnVector) batch.cols[0];
			DoubleColumnVector col1 = (DoubleColumnVector) batch.cols[1];
			TimestampColumnVector col2 = (TimestampColumnVector) batch.cols[2];
			LongColumnVector col3 = (LongColumnVector) batch.cols[3];
			LongColumnVector col4 = (LongColumnVector) batch.cols[4];

			col0.noNulls = false;
			col1.noNulls = false;
			col2.noNulls = false;
			col3.noNulls = false;
			col4.noNulls = false;
			for (int i = 0; i < rowSize - 1; i++) {
				col0.vector[i] = i;
				col1.vector[i] = i;

				Timestamp timestamp = Timestamp.valueOf(
						padZero(4, i + 1000) + "-01-01 00:00:00." + i);
				col2.time[i] = timestamp.getTime();
				col2.nanos[i] = timestamp.getNanos();

				col3.vector[i] = i;
				col4.vector[i] = i;
			}

			col0.isNull[rowSize - 1] = true;
			col1.isNull[rowSize - 1] = true;
			col2.isNull[rowSize - 1] = true;
			col3.isNull[rowSize - 1] = true;
			col4.isNull[rowSize - 1] = true;

			batch.size = rowSize;
			writer.addRowBatch(batch);
			batch.reset();
			writer.close();
		}

		
		FileInputSplit split = createSplits(new Path(file), 1)[0];

		long cnt = 0;
		Map<String, Object> partSpec = new HashMap<>();
		partSpec.put("f5", true);
		partSpec.put("f6", new Date(562423));
		partSpec.put("f7", LocalDateTime.of(1999, 1, 1, 1, 1));
		partSpec.put("f8", 6.6);
		partSpec.put("f9", null);
		partSpec.put("f10", null);
		partSpec.put("f11", null);
		partSpec.put("f12", null);
		partSpec.put("f13", null);
		try (OrcColumnarRowSplitReader reader = createReader(
				new int[] {2, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13},
				new DataType[] {
						DataTypes.FLOAT(),
						DataTypes.DOUBLE(),
						DataTypes.TIMESTAMP(),
						DataTypes.TINYINT(),
						DataTypes.SMALLINT(),
						DataTypes.BOOLEAN(),
						DataTypes.DATE(),
						DataTypes.TIMESTAMP(),
						DataTypes.DOUBLE(),
						DataTypes.DOUBLE(),
						DataTypes.INT(),
						DataTypes.STRING(),
						DataTypes.TIMESTAMP(),
						DataTypes.DECIMAL(5, 3)
				},
				partSpec,
				split)) {
			
			while (!reader.reachedEnd()) {
				BaseRow row = reader.nextRecord(null);

				if (cnt == rowSize - 1) {
					Assert.assertTrue(row.isNullAt(0));
					Assert.assertTrue(row.isNullAt(1));
					Assert.assertTrue(row.isNullAt(2));
					Assert.assertTrue(row.isNullAt(3));
					Assert.assertTrue(row.isNullAt(4));
				} else {
					Assert.assertFalse(row.isNullAt(0));
					Assert.assertFalse(row.isNullAt(1));
					Assert.assertFalse(row.isNullAt(2));
					Assert.assertFalse(row.isNullAt(3));
					Assert.assertFalse(row.isNullAt(4));
					Assert.assertEquals(
							SqlTimestamp.fromTimestamp(
									Timestamp.valueOf(padZero(4, cnt + 1000) + "-01-01 00:00:00." + cnt)),
							row.getTimestamp(0, 9));
					Assert.assertEquals(cnt, row.getFloat(1), 0);
					Assert.assertEquals(cnt, row.getDouble(2), 0);
					Assert.assertEquals((byte) cnt, row.getByte(3));
					Assert.assertEquals(cnt, row.getShort(4));
				}
				Assert.assertTrue(row.getBoolean(5));
				Assert.assertEquals(
						new Date(562423).toString(),
						internalToDate(row.getInt(6)).toString());

				Assert.assertEquals(
						LocalDateTime.of(1999, 1, 1, 1, 1),
						row.getTimestamp(7, 9).toLocalDateTime());

				Assert.assertEquals(6.6, row.getDouble(8), 0);
				Assert.assertTrue(row.isNullAt(9));
				Assert.assertTrue(row.isNullAt(10));
				Assert.assertTrue(row.isNullAt(11));
				Assert.assertTrue(row.isNullAt(12));
				Assert.assertTrue(row.isNullAt(13));
				cnt++;
			}
		}
		
		assertEquals(rowSize, cnt);
	}

Line commented on: padZero(4, i + 1000) + "-01-01 00:00:00." + i);

Revised code:
public void testReadFileWithTypes() throws IOException {
		File folder = TEMPORARY_FOLDER.newFolder();
		String file = new File(folder, "testOrc").getPath();
		int rowSize = 1024;

		
		{
			
			TypeDescription schema =
					TypeDescription.fromString(
							"struct<" +
									"f0:float," +
									"f1:double," +
									"f2:timestamp," +
									"f3:tinyint," +
									"f4:smallint" +
									">");

			org.apache.hadoop.fs.Path filePath = new org.apache.hadoop.fs.Path(file);
			Configuration conf = new Configuration();

			Writer writer =
					OrcFile.createWriter(filePath,
							OrcFile.writerOptions(conf).setSchema(schema));

			VectorizedRowBatch batch = schema.createRowBatch(rowSize);
			DoubleColumnVector col0 = (DoubleColumnVector) batch.cols[0];
			DoubleColumnVector col1 = (DoubleColumnVector) batch.cols[1];
			TimestampColumnVector col2 = (TimestampColumnVector) batch.cols[2];
			LongColumnVector col3 = (LongColumnVector) batch.cols[3];
			LongColumnVector col4 = (LongColumnVector) batch.cols[4];

			col0.noNulls = false;
			col1.noNulls = false;
			col2.noNulls = false;
			col3.noNulls = false;
			col4.noNulls = false;
			for (int i = 0; i < rowSize - 1; i++) {
				col0.vector[i] = i;
				col1.vector[i] = i;

				Timestamp timestamp = toTimestamp(i);
				col2.time[i] = timestamp.getTime();
				col2.nanos[i] = timestamp.getNanos();

				col3.vector[i] = i;
				col4.vector[i] = i;
			}

			col0.isNull[rowSize - 1] = true;
			col1.isNull[rowSize - 1] = true;
			col2.isNull[rowSize - 1] = true;
			col3.isNull[rowSize - 1] = true;
			col4.isNull[rowSize - 1] = true;

			batch.size = rowSize;
			writer.addRowBatch(batch);
			batch.reset();
			writer.close();
		}

		
		FileInputSplit split = createSplits(new Path(file), 1)[0];

		int cnt = 0;
		Map<String, Object> partSpec = new HashMap<>();
		partSpec.put("f5", true);
		partSpec.put("f6", new Date(562423));
		partSpec.put("f7", LocalDateTime.of(1999, 1, 1, 1, 1));
		partSpec.put("f8", 6.6);
		partSpec.put("f9", null);
		partSpec.put("f10", null);
		partSpec.put("f11", null);
		partSpec.put("f12", null);
		partSpec.put("f13", null);
		try (OrcColumnarRowSplitReader reader = createReader(
				new int[] {2, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13},
				new DataType[] {
						DataTypes.FLOAT(),
						DataTypes.DOUBLE(),
						DataTypes.TIMESTAMP(),
						DataTypes.TINYINT(),
						DataTypes.SMALLINT(),
						DataTypes.BOOLEAN(),
						DataTypes.DATE(),
						DataTypes.TIMESTAMP(),
						DataTypes.DOUBLE(),
						DataTypes.DOUBLE(),
						DataTypes.INT(),
						DataTypes.STRING(),
						DataTypes.TIMESTAMP(),
						DataTypes.DECIMAL(5, 3)
				},
				partSpec,
				split)) {
			
			while (!reader.reachedEnd()) {
				BaseRow row = reader.nextRecord(null);

				if (cnt == rowSize - 1) {
					Assert.assertTrue(row.isNullAt(0));
					Assert.assertTrue(row.isNullAt(1));
					Assert.assertTrue(row.isNullAt(2));
					Assert.assertTrue(row.isNullAt(3));
					Assert.assertTrue(row.isNullAt(4));
				} else {
					Assert.assertFalse(row.isNullAt(0));
					Assert.assertFalse(row.isNullAt(1));
					Assert.assertFalse(row.isNullAt(2));
					Assert.assertFalse(row.isNullAt(3));
					Assert.assertFalse(row.isNullAt(4));
					Assert.assertEquals(
							SqlTimestamp.fromTimestamp(toTimestamp(cnt)),
							row.getTimestamp(0, 9));
					Assert.assertEquals(cnt, row.getFloat(1), 0);
					Assert.assertEquals(cnt, row.getDouble(2), 0);
					Assert.assertEquals((byte) cnt, row.getByte(3));
					Assert.assertEquals(cnt, row.getShort(4));
				}
				Assert.assertTrue(row.getBoolean(5));
				Assert.assertEquals(
						new Date(562423).toString(),
						internalToDate(row.getInt(6)).toString());

				Assert.assertEquals(
						LocalDateTime.of(1999, 1, 1, 1, 1),
						row.getTimestamp(7, 9).toLocalDateTime());

				Assert.assertEquals(6.6, row.getDouble(8), 0);
				Assert.assertTrue(row.isNullAt(9));
				Assert.assertTrue(row.isNullAt(10));
				Assert.assertTrue(row.isNullAt(11));
				Assert.assertTrue(row.isNullAt(12));
				Assert.assertTrue(row.isNullAt(13));
				cnt++;
			}
		}
		
		assertEquals(rowSize, cnt);
	}