package mf; /*Generated by MPS */ import junit.framework.TestCase; import junit.framework.Assert; import junit.textui.TestRunner; public class MoneyTester extends TestCase { private Money myD15; private Money myD2_51; private Money myM2_51; public MoneyTester(String name) { super(name); } public void testDivide3() { Money[] actual = Money.dollars(100).divide(3); Money[] expected = {Money.dollars(33.34), Money.dollars(33.33), Money.dollars(33.33)}; for (int i = 0; i < expected.length; i++) { Assert.assertEquals(expected[i], actual[i]); } } public void testDivideAllButOne() { Money[] expected = Money.dollars(1.09).divide(10); for (int i = 0; i < 9; i++) { Assert.assertEquals(expected[i], Money.dollars(0.11)); } Assert.assertEquals(expected[9], Money.dollars(0.1)); } @Override public void setUp() { myD15 = Money.dollars(15); myD2_51 = Money.dollars(2.51); myM2_51 = new Money(2.51, Currency.DEM); } public void testAamount() { Assert.assertEquals(2.51, myD2_51.amount(), 0.0010); } public void testAdditionOfDifferentCurrencies() { try { myD15.add(myM2_51); Assert.fail("added different currencies"); } catch (Exception ignore) { } } public void testCloseNumbersNotEqual() { Money d2_51a = Money.dollars(2.515); Money d2_51b = Money.dollars(2.5149); Assert.assertTrue(!(d2_51a.equals(d2_51b))); } public void testCompare() { Assert.assertTrue(myD15.greaterThan(myD2_51)); Assert.assertTrue(myD2_51.lessThan(myD15)); Assert.assertTrue(!(myD15.greaterThan(myD15))); Assert.assertTrue(!(myD15.lessThan(myD15))); try { Assert.assertTrue(myD15.greaterThan(myM2_51)); Assert.fail(); } catch (Exception ignore) { } } public void testDifferentCurrencyNotEqual() { Assert.assertTrue(!(myD2_51.equals(myM2_51))); } public void testEquals() { Money d2_51a = Money.dollars(2.51); Assert.assertEquals(d2_51a, myD2_51); } public void xtestFormatPrinting() { Assert.assertEquals("$15.00", myD15.formatString()); Assert.assertEquals("DM 2.51", myM2_51.formatString()); } public void testHash() { Money d2_51a = Money.dollars(2.51); Assert.assertEquals(d2_51a.hashCode(), myD2_51.hashCode()); } public void xtestLocalPrinting() { Assert.assertEquals("$15.00", myD15.localString()); Assert.assertEquals("2,51 ?", myM2_51.localString()); } public void testNegate() { Assert.assertEquals(Money.dollars(-15), myD15.negate()); Assert.assertEquals(myM2_51, myM2_51.negate().negate()); } public void testPositiveNegative() { Assert.assertTrue(myD15.isPositive()); Assert.assertTrue(Money.dollars(-10).isNegative()); Assert.assertTrue(!(Money.dollars(0).isPositive())); Assert.assertTrue(!(Money.dollars(0).isNegative())); } public void testPrint() { Assert.assertEquals("USD 15.0", myD15.toString()); } public void testRound() { Money dRounded = Money.dollars(1.235); Assert.assertEquals(Money.dollars(1.24), dRounded); } public void testSubtraction() { Assert.assertEquals(Money.dollars(12.49), myD15.subtract(myD2_51)); } public static void main(String[] ignore) { String[] args = {"mf.MoneyTester"}; TestRunner.main(args); } }