From 7d67b1f444a3fc71bb5af7118f451fc160b7cf2d Mon Sep 17 00:00:00 2001 From: wsilverio11 Date: Thu, 26 Feb 2015 13:36:16 -0500 Subject: [PATCH] cool --- Average.java | 23 +++++++++++++++++++ AverageTest.java | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ Lab_3_answers.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ Range.java | 53 +++++++++++++++++++++++++++++++++++++++++++ RangeTest.java | 24 ++++++++++++++++++++ 5 files changed, 218 insertions(+) create mode 100755 Average.java create mode 100755 AverageTest.java create mode 100755 Lab_3_answers.md create mode 100644 Range.java create mode 100644 RangeTest.java diff --git a/Average.java b/Average.java new file mode 100755 index 0000000..db49e12 --- /dev/null +++ b/Average.java @@ -0,0 +1,23 @@ +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; + } + else { + return sum / count; + } + } + + public int getCount() { + + return count; + } +} \ No newline at end of file diff --git a/AverageTest.java b/AverageTest.java new file mode 100755 index 0000000..efb5b8f --- /dev/null +++ b/AverageTest.java @@ -0,0 +1,59 @@ +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 testFiveValuesNonZeroAverage() { + Average avg = new Average (); + + avg.addValue(5.5); + avg.addValue(2.5); + avg.addValue(3.5); + avg.addValue(1.5); + avg.addValue(4.0); + + assertEquals(3.4, avg.getAverage(), 0.001); + assertEquals(5, avg.getCount()); + } + public void testFiveValuesZeroAverage() { + Average avg = new Average (); + + avg.addValue(-1); + avg.addValue(0); + avg.addValue(-2); + avg.addValue(1); + avg.addValue(2); + + assertEquals(0, avg.getAverage(), 0.001); + assertEquals(5, avg.getCount()); + } + public void testFiveValuesSameAverage() { + Average avg = new Average (); + + avg.addValue(5); + avg.addValue(5); + avg.addValue(5); + avg.addValue(5); + avg.addValue(5); + + assertEquals(5, avg.getAverage(), 0.001); + assertEquals(5, avg.getCount()); + } +} diff --git a/Lab_3_answers.md b/Lab_3_answers.md new file mode 100755 index 0000000..90bb173 --- /dev/null +++ b/Lab_3_answers.md @@ -0,0 +1,59 @@ +CS Lab 2/12/2015 **Wilson Silverio** + +**Question 1** + +List three mistakes we can make when using an array. + +**a)** Reference the wrong position of the array. + +**b)** Can't use multiple types in an array. + +**c)** While looping the array, making sure that we have conditions that are logical to solve the problem. + +**Question 2:** + +List at least one configuration of a `Scoreboard` for each of the above scenarios. + +**a)** With a new instance of the class, it would use a reference to `Scoreboard`. No value(s) are in either array. + +**Instance of a class:** + +scores = [0,0,0,0,0,0,0,0,0,0] + +names = null + +**b)** An instance with a single mutation would change `Scoreboard` and `String` array. + +**Instance with a single mutation:** + +scores = [1,0,0,0,0,0,0,0,0] + +names = ["Professor Sommer"] + +**c)** An instance with multiple mutations would change to `Scoreboard` and `String` array multiple times, in sorted order (hightest to lowest). + +**Instance with multiple mutations:** + +scores = [1,0,0,0,0,1,0,0,0,0] + +names = ["Professor Sommer","Professor Coleman"] + +**Question 3:** Answer the "Testing Questions" descripted in the previous section. + +**New instance of the class:** + +max: 10.0 + +min: 0.0 + +**Best mutation:** + +No mutator methods + +**What else can we do with the class:** + +Ask it to return its values + +**Boundary conditions for the class:** + +min, max diff --git a/Range.java b/Range.java new file mode 100644 index 0000000..14b5e96 --- /dev/null +++ b/Range.java @@ -0,0 +1,53 @@ +public class Range { + private double min = 0; + private double max = 0; + + public Range (double start, double stop) { + if (start > stop) { + min = stop; + max = start; + } + else { + min = start; + max = stop; + } + } + + public boolean contains (double value) { + if (value > max || value < min) { + return false; + } + else { + return true; + } + } + + public double getWidth() { + return getMax() - getMin(); + } + + public double getMin() { + + return min; + } + + public double getMax() { + + return max; + } + + public Range intersection(Range other) { + double newMin = 0.0; + double newMax = 0.0; + + if (other.contains(min)) { + newMin = min; + newMax = other.getMax(); + } + else if (other.contains(max)) { + newMin = other.getMin(); + newMax = max; + } + return new Range(newMin, newMax); + } +} \ No newline at end of file diff --git a/RangeTest.java b/RangeTest.java new file mode 100644 index 0000000..0fd3d37 --- /dev/null +++ b/RangeTest.java @@ -0,0 +1,24 @@ +import junit.framework.TestCase; + + +public class RangeTest extends TestCase { + public void testNewRange() { + Range r = new Range(0.0, 0.0); + + } + public void testMin() { + Range r1 = new Range(1.0, 10.0); + assertEquals(1.0, r1.getMin(), 0.001); + + Range r2 = new Range(5.8, -1.2); + assertEquals(-1.2, r2.getMin(), 0.001); + } + public void testIntersection() { + Range r1 = new Range(1.0, 10.0); + Range r2 = new Range(5.0, 15.0); + Range r3 = r1.intersection(r2); + + assertEquals(r1.getMax(),r3.getMax()); + assertEquals(r2.getMin(),r3.getMin()); + } +}