Skip to content

Commit 054e91c

Browse files
committed
Add test cases for egyptian fractions
1 parent 9a51b46 commit 054e91c

3 files changed

Lines changed: 43 additions & 20 deletions

File tree

src/main/java/com/packt/datastructuresandalg/lesson4/activity/egyptian/EgyptianFractions.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,4 @@
44

55
public class EgyptianFractions {
66
public List<Long> build(Long numerator, Long denominator) { return null; }
7-
8-
public static void printResult(Long numerator, Long denominator) {
9-
EgyptianFractions fractions = new EgyptianFractions();
10-
List<Long> ds = fractions.build(numerator, denominator);
11-
System.out.print(numerator + "/" + denominator + " =");
12-
for (int i = 0; i < ds.size(); i++) {
13-
System.out.print(" 1/" + ds.get(i));
14-
if (i + 1 < ds.size())
15-
System.out.print(" +");
16-
else
17-
System.out.print("\n");
18-
}
19-
}
20-
21-
public static void main(String[] args) {
22-
printResult(2l, 3l);
23-
printResult(6l, 14l);
24-
printResult(12l, 13l);
25-
}
267
}

src/main/java/com/packt/datastructuresandalg/lesson4/activity/egyptian/solution/EgyptianFractions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public List<Long> build(Long numerator, Long denominator) {
1616

1717
Long n = denominator / numerator + 1;
1818
List<Long> r = build(numerator * n - denominator, denominator * n);
19-
r.add(n);
19+
r.add(0, n);
2020
return r;
2121
}
2222

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.pactk.datastructuresandalg.lesson4.activity.egyptian;
2+
3+
import com.packt.datastructuresandalg.lesson4.activity.egyptian.EgyptianFractions;
4+
import junit.framework.TestCase;
5+
6+
import java.util.Arrays;
7+
8+
public class EgyptianFractionsTest extends TestCase {
9+
EgyptianFractions fractions = new EgyptianFractions();
10+
11+
public void test1() {
12+
assertTrue(fractions.build(2l, 3l).equals(Arrays.asList(2l, 6l)));
13+
}
14+
15+
public void test2() {
16+
assertTrue(fractions.build(6l, 14l).equals(Arrays.asList(3l, 11l, 231l)));
17+
}
18+
19+
public void test3() {
20+
assertTrue(fractions.build(12l, 13l).equals(Arrays.asList(2l, 3l, 12l, 156l)));
21+
}
22+
23+
public void test4() {
24+
assertTrue(fractions.build(3l, 4l).equals(Arrays.asList(2l, 4l)));
25+
}
26+
27+
public void test5() {
28+
assertTrue(fractions.build(6l, 7l).equals(Arrays.asList(2l, 3l, 42l)));
29+
}
30+
31+
public void test6() {
32+
assertTrue(fractions.build(5l, 8l).equals(Arrays.asList(2l, 8l)));
33+
}
34+
35+
public void test7() {
36+
assertTrue(fractions.build(123l, 1500l).equals(Arrays.asList(13l, 197l, 1280500l)));
37+
}
38+
39+
public void test8() {
40+
assertTrue(fractions.build(6123l, 7451l).equals(Arrays.asList(2l, 4l, 14l, 2939l, 14955066l, 654986696590548l)));
41+
}
42+
}

0 commit comments

Comments
 (0)