Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Answers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
1. Forgetting that an array value starts at zero instead of 1, accidentally changing the array values, and storing a mismatched type value.
2. A new instance of the class will have no values in the arrays. If adding a single score, the arrays will each have one element. If adding multiple scores, the arrays will each have multiple elements.
3. a) A brand new instance of the Range function would look like a range with the min of 0 and the max of 0. b) There are no mutations in this class. c) We can make the start larger than the stop, or the start can be equal to the stop. d) The min has to be less than the max, obviously, even though the start can be greater than the stop.
21 changes: 21 additions & 0 deletions src/Average.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
public class Average {
private int count = 0;
private double sum = 0;

public void addValue(double value) {
sum += value;
count += 1;
}

public double getAverage() {
if (count == 0)
return 0.0;
else
return sum / (double) count;
}

public int getCount() {

return count;
}
}
56 changes: 56 additions & 0 deletions src/AverageTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import junit.framework.TestCase;

public class AverageTest extends TestCase {

public void testNewAverage() {
Average avg = new Average();

assertEquals(0, avg.getCount());
assertEquals(0.0, avg.getAverage(), 0.001);
}
public void testSingleValue() {
Average avg = new Average();

avg.addValue(5.5);

assertEquals(5.5, avg.getAverage(), 0.001);
assertEquals(1, avg.getCount());
}
public void testMultipleValues() {
Average avg = new Average();

avg.addValue(5.5);
avg.addValue(3.6);
avg.addValue(2.1);
avg.addValue(9.0);
avg.addValue(1.7);

assertEquals(4.38, avg.getAverage(), 0.001);
assertEquals(5, avg.getCount());
}
public void testAverageEqualsZero() {
Average avg = new Average();

avg.addValue(1.2);
avg.addValue(-1.2);
avg.addValue(5.2);
avg.addValue(-3.5);
avg.addValue(-1.7);

assertEquals(0, avg.getAverage(), 0.001);
assertEquals(5, avg.getCount());
}
public void testSameValues() {
Average avg = new Average();

avg.addValue(5);
avg.addValue(5);
avg.addValue(5);
avg.addValue(5);
avg.addValue(5);
avg.addValue(5);

assertEquals(5, avg.getAverage(), 0.001);
assertEquals(6, avg.getCount());
}
}
38 changes: 38 additions & 0 deletions src/Range.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
public class Range {
private double min = 0;
private double max = 0;

public Range(double start, double stop) {
if(start < stop) {
min = start;
max = stop;
}
else {
max = start;
min = stop;
}
}
public boolean contains(double value) {
if(value >= min && value <= max) {
return true;
}
else {
return false;
}
}
public double getWidth() {
if(min == max) {
return 0.0;
}
else {
double width = max - min;
return width;
}
}
public double getMin() {
return min;
}
public double getMax() {
return max;
}
}
58 changes: 58 additions & 0 deletions src/RangeTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import junit.framework.TestCase;

public class RangeTest extends TestCase {

public void testEmptyRange() {
Range r = new Range(0.0, 0.0);

assertTrue(r.contains(0.0));
assertEquals(0.0, r.getWidth());
assertEquals(0.0, r.getMin());
assertEquals(0.0, r.getMax());
}

public void testMaxFirst() {
Range r = new Range(4.0, 0.0);

assertTrue(r.contains(2.0));
assertEquals(4.0, r.getWidth());
assertEquals(0.0, r.getMin());
assertEquals(4.0, r.getMax());
}

public void testMaxLast() {
Range r = new Range(0.0, 4.0);

assertTrue(r.contains(2.0));
assertEquals(4.0, r.getWidth());
assertEquals(0.0, r.getMin());
assertEquals(4.0, r.getMax());
}

public void testMinMax() {
Range r = new Range(3.0, 9.0);

assertTrue(r.contains(4.0));
assertEquals(6.0, r.getWidth());
assertEquals(3.0, r.getMin());
assertEquals(9.0, r.getMax());
}

public void testMaxMin() {
Range r = new Range(9.0, 3.0);

assertTrue(r.contains(4.0));
assertEquals(6.0, r.getWidth());
assertEquals(3.0, r.getMin());
assertEquals(9.0, r.getMax());
}

public void testOutOfRange() {
Range r = new Range(2.0, 5.0);

assertFalse(r.contains(1.0));
assertEquals(3.0, r.getWidth());
assertEquals(2.0, r.getMin());
assertEquals(5.0, r.getMax());
}
}