In: Computer Science
Create a JUNIT test program in Java for this program:
package edu.odu.cs.cs350;
import java.util.Arrays;
/**
* A duration represents a period of elapsed time, e.g., 4 hours, 23 minutes, 2 seconds.
* This is differentiated from a point in time (e.g., 4:23:02AM). A meeting that
* has a duration of 2 hours has that same duration no matter where it was held. A
* starting time (point) for that of 2:00PM EST can be unambiguous only if the time
* zone is added.
*
* <p>
* Because durations are often used in calculations, both positive and
* negative values are possible.
*
* <p>
* Most of the accessor functions for this class will respond with normalized
* values, where the normalization rules are as follows:
* <ul>
* <li>The seconds and minutes components will have an absolute
* value in the range 0..59, inclusive.</li>
* <li>The hours component will have an absolute value in the
* range 0..23, inclusive.</li>
* <li>The sign of each component matches the sign of the
* overall duration. A duration of -61 seconds, for example,
* has normalized components of -1 seconds and -1 minutes.</li>
* </ul>
* Inputs to the member functions are not, however, required to
* be normalized. new Duration(0,0,3,-61) and new Duration(0,0,1,59)
* are both acceptable (and the resulting Duration objects are equal).
*
* @author zeil
*
*/
public class Duration implements Cloneable {
/**
* Construct a new duration, equivalent to
* Duration(0,0,0,0).
*/
public Duration() {
//ToDo
}
/**
* Create a new duration.
*
* @param totalSeconds total number of seconds in duration
*/
public Duration(long totalSeconds) {
//ToDo
}
/**
* Create a new duration.
*
* @param days number of days in duration
* @param hours number of hours in duration
* @param minutes number of minutes in duration
* @param seconds number of seconds in duration
*/
public Duration(int days, int hours, int minutes, int seconds) {
//ToDo
}
/**
* Get the total seconds of this duration, including the contributions
* of the days, hours, minutes, & seconds components.
*
* @return the total seconds
*/
public long getTotalSeconds() {
//ToDo
return 0;
}
/**
* Set the total seconds of this duration, potentially altering
* the days, hours, minutes, & seconds components.
* @param totalSeconds the total seconds to set
*/
public void setTotalSeconds(long totalSeconds) {
//ToDo
}
/**
* How many days in this duration?.
*
* @return the normalized days component
*/
public int getDays() {
//ToDo
return 0;
}
private static final long secondsPerHour = 60 * 60;
/**
* How many hours in this duration?.
*
* @return the normalized hours component
*/
public int getHours() {
//ToDo
return 0;
}
/**
* How many minutes in this duration?.
*
* @return the normalized minutes component
*/
public int getMinutes() {
//ToDo
return 0;
}
/**
* How many seconds in this duration?.
*
* @return the normalized seconds component
*/
public int getSeconds() {
//ToDo
return 0;
}
/**
* Add another duration to this one.
* @param dur a duration
*/
public void add(Duration dur) {
//ToDo
}
/**
* Subtract another duration from this one.
* @param dur a duration
*/
public void subtract(Duration dur) {
//ToDo
}
/**
* Multiply this duration by a scaling factor,
* rounding to the closest second.
* @param factor a scaling factor
*/
public void scale(double factor) {
//ToDo
}
/**
* Render the duration as
* d:h:m:s
* (preceded by a '-'if the duration is negative)
* where the four components are normalized non-negative
* integer values. The final three components are always rendered
* in 2 digits. The two leading components and their
* associated ':' delimiters are omitted if the leading values
* are zero. E.g., Duration(0,-1,-59,-61) would be rendered as
* "-02:00:01".
*/
public String toString() {
//ToDo
return "";
}
// Comparison and hashing
/**
* Compares two durations for equality. They are considered equal if
* their getTotalSeconds() values are equal.
*
* @param obj object to be compared for equality with this duration
* @return <tt>true</tt> if the specified object is equal to this one
*/
public boolean equals(Object obj) {
//ToDo
return false;
}
/**
* Returns the hash code value for this object.
*
* @return the hash code value for this duration
*/
public int hashCode() {
//ToDo
return 0;
}
/**
* Return a (deep) copy of this object.
*/
@Override
public Object clone() {
//ToDo
return null;
}
}
*This is the template to fill in for the solution - please fill in these functions to complete the JUNIT Test Class*
/**
*
*/
package edu.odu.cs.cs350;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* @author Colten Everitt
*
*/
public class DurationClassTest {
/**
* @throws java.lang.Exception
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception
{
}
/**
* @throws java.lang.Exception
*/
@AfterClass
public static void tearDownAfterClass() throws
Exception {
}
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
}
/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#hashCode()}.
*/
@Test
public final void testHashCode() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#Duration()}.
*/
@Test
public final void testDuration() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#Duration(long)}.
*/
@Test
public final void testDurationLong() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#Duration(int, int, int, int)}.
*/
@Test
public final void testDurationIntIntIntInt() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#getTotalSeconds()}.
*/
@Test
public final void testGetTotalSeconds() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#setTotalSeconds(long)}.
*/
@Test
public final void testSetTotalSeconds() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#getDays()}.
*/
@Test
public final void testGetDays() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#getHours()}.
*/
@Test
public final void testGetHours() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#getMinutes()}.
*/
@Test
public final void testGetMinutes() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#getSeconds()}.
*/
@Test
public final void testGetSeconds() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#add(edu.odu.cs.cs350.Duration)}.
*/
@Test
public final void testAdd() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#subtract(edu.odu.cs.cs350.Duration)}.
*/
@Test
public final void testSubtract() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#scale(double)}.
*/
@Test
public final void testScale() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#toString()}.
*/
@Test
public final void testToString() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#equals(java.lang.Object)}.
*/
@Test
public final void testEqualsObject() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#clone()}.
*/
@Test
public final void testClone() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
java.lang.Object#Object()}.
*/
@Test
public final void testObject() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
java.lang.Object#getClass()}.
*/
@Test
public final void testGetClass() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
java.lang.Object#equals(java.lang.Object)}.
*/
@Test
public final void testEqualsObject1() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
java.lang.Object#clone()}.
*/
@Test
public final void testClone1() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
java.lang.Object#toString()}.
*/
@Test
public final void testToString1() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
java.lang.Object#notify()}.
*/
@Test
public final void testNotify() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
java.lang.Object#notifyAll()}.
*/
@Test
public final void testNotifyAll() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
java.lang.Object#wait(long)}.
*/
@Test
public final void testWaitLong() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link java.lang.Object#wait(long,
int)}.
*/
@Test
public final void testWaitLongInt() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
java.lang.Object#wait()}.
*/
@Test
public final void testWait() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
java.lang.Object#finalize()}.
*/
@Test
public final void testFinalize() {
fail("Not yet implemented"); //
TODO
}
}
package edu.odu.cs.cs350;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public static void main(String[] args) {
//ArrayList of type String
ArrayList data = new ArrayList();
try{
Scanner s = new Scanner(new
FileInputStream("C:/Documents/assn2data.txt"));
String line;
int sum=0;
// Read Each line of File Using hasNextLine()
while(s.hasNextLine()){
line = s.nextLine(); // nextLine() is to retrieve
sum = sum+line.length();
data.add(line); //Adding line to ArrayList
}
System.out.println("The number of Entries are:"+data.size());
System.out.println("The number of characters:"+sum);
/**
* @author Colten Everitt
*
*/
public class DurationClassTest {
/**
* @throws java.lang.Exception
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception
{
}
/**
* @throws java.lang.Exception
*/
@AfterClass
public static void tearDownAfterClass() throws
Exception {
}
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
}
/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#hashCode()}.
*/
@Test
public final void testHashCode() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#Duration()}.
*/
@Test
public final void testDuration() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#Duration(long)}.
*/
@Test
public final void testDurationLong() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#Duration(int, int, int, int)}.
*/
@Test
public final void testDurationIntIntIntInt() {
fail("Not yet implemented"); //
TODO
}
/**
* Test method for {@link
edu.odu.cs.cs350.Duration#getTotalSeconds()}.
*/
@Test
public final void testGetTotalSeconds() {
fail("Not yet implemented"); //
TODO
}
}
data.add(0, "*****The file has been modified on*****");
data.add(data.size(), "*****Number of lines remaining
are******");
System.out.println("Storing Data into file after being
modified..");
int j=0;
//Writing modified data into file
PrintWriter p = new
PrintWriter("C:/Users/Documents/assn2data-modified.txt");
BufferedWriter b = new BufferedWriter(p);
while(data.size()>j){
b.write(data.get(j));
b.newLine();
j++;
}
b.close();
p.close();
System.out.println("Data is stored into modified file..");
}
}