	@Test
	@SuppressWarnings("unchecked")
	public void testCreate() {

		// Constructor with types
		DataTable table1 = new DataTable(Integer.class, Double.class, Long.class, Float.class);
		assertEquals(4, table1.getColumnCount());
		assertEquals(0, table1.getRowCount());
		Class<? extends Comparable<?>>[] types1 = table1.getColumnTypes();
		assertEquals(Integer.class, types1[0]);
		assertEquals(Double.class, types1[1]);
		assertEquals(Long.class, types1[2]);
		assertEquals(Float.class, types1[3]);

		// Constructor with single type
		DataTable table2 = new DataTable(3, Double.class);
		assertEquals(3, table2.getColumnCount());
		assertEquals(0, table1.getRowCount());
		Class<? extends Comparable<?>>[] types2 = table2.getColumnTypes();
		for (Class<? extends Comparable<?>> aTypes2 : types2) {
			assertEquals(Double.class, aTypes2);
		}

		// Copy constructor
		DataTable table3 = new DataTable(table1);
		assertEquals(table1.getColumnCount(), table3.getColumnCount());
		assertEquals(table1.getRowCount(), table3.getRowCount());
		Class<? extends Comparable<?>>[] types3 = table1.getColumnTypes();
		for (int i = 0; i < types3.length; i++) {
			assertEquals(types1[i], types3[i]);
		}
	}