## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

No credit card required

## Chapter 13. Make It

 \$5 + 10 CHF = \$10 if rate is 2:1\$5 + \$5 = \$10

We can't mark our test for \$5 + \$5 done until we've removed all of the duplication. We don't have code duplication, but we do have data duplication—the \$10 in the fake implementation:

##### Bank
 ``` Money reduce(Expression source, String to) { return Money.dollar(10); } ```

is really the same as the \$5 + \$5 in the test:

```public void testSimpleAddition() {
Money five= Money.dollar(5);
Expression sum= five.plus(five);
Bank bank= new Bank();
Money reduced= bank.reduce(sum, "USD");
assertEquals(Money.dollar(10), reduced);
}
```

Before when we've had a fake implementation, it has been obvious how to work backward to the real implementation. It simply has been a matter of replacing ...

## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

No credit card required