@Test(expectedExceptions = IllegalArgumentException.class)
  public void TestMergingSuperClass() {
    final TestMergeableMetric instance1 = new TestMergeableMetric();
    final TestDerivedMergableMetric instance2 = new TestDerivedMergableMetric();

    instance2.merge(instance1);
  }
  @Test
  public void TestCanMerge() {
    final TestMergeableMetric instance1 = new TestMergeableMetric();
    instance1.unboxedInt = 1;
    final TestDerivedMergableMetric instance2 = new TestDerivedMergableMetric();
    instance2.unboxedInt = 2;

    instance1.merge(instance2);
    Assert.assertEquals(instance1.unboxedInt, 3);
  }