CalcResult minResult2 = minVisitor2.getResult();
CalcResult minResult3 = minResult1.merge(minResult2);
assertEquals(1, minResult3.toInt());
//test for destruction during merge
CalcResult minResult4 = new MinResult((Comparable) new Integer(10));
CalcResult minResult5 = minResult4.merge(minResult1);
assertEquals(1, minResult5.toInt());
assertEquals(10, minResult4.toInt());
//test negative result
CalcResult minResult6 = new MinResult((Comparable) new Integer(-5));
CalcResult minResult7 = (MinResult) minResult1.merge(minResult6);