write your own tests to check the correctness of your implementation.

Introduction

In terms of concept, it’s a simple assignment where a runner is keeping track of their running activities. Each run is characterized by two attributes: distance (in kms) and time (in seconds). Each instance of a Run object also holds references to two other Run objects:

  1. prev: Run (if any) before the instance.
  2. next: Run (if any) after the instance.

Thus, we can track runs from earliest to latest using next, or latest to earliest using prev.

Your task

Your task is to complete the nine methods in the class Run.java.

IMPORTANT: All methods except addToFront require correct implementation of addToEnd as a pre-requisite.

For some methods, such as addToEndaddToFrontsize(), etc., it doesn’t matter which object in the list the methods is called on, the result should be the same.

For example, if there is a list of 20 runs starting at r, each of the following should return 20:

  1. r.size()
  2. r.next.next.next.size()
  3. r.next.next.next.next.next.prev.prev.size()

Helper methods and variables

You can, and if using recursion, will need to, add helper methods. You can add instance variables and class (static) variables as well.

Help document

A document to help you with the concept of the need to traverse to the first node, and for a helper method (for a good chunk of the methods) is provided in a4help.pdf at the bottom of the page.

Advanced tasks

Tests for the following methods are NOT supplied:

  1. add(Run) (10 marks)
  2. longestSequenceOver(double) (15 marks)
  3. getRunsOver(double) (15 marks)

You need to write your own tests to check the correctness of your implementation.

Grading criteria

Maximum marks for each method are provided in the tests corresponding to the methods. For full marks, you need to solve this assignment purely recursively. So, if you use a loop, even once, in any method, your marks will be reduced by 30% automatically. We hope the following table makes the situation clear for you.

Number of times loops used Raw Mark Final Mark
0 80 80
1 90 63
10 90 63
1 100 70

If it doesn’t, the following flowchart might help:

Submission format

Drag the file Run.java into the submission box. You got this!

Importing libraries

You cannot use any external library. The use of ANY function from outside the Run class will result in an automatic zero

find the cost of your paper

Determine the total amount of the loan based on the following parameters.

Python Input Statements   You are considering buying a condominium in the Tidewater Condominium Complex and have decided to estimate the total costs involved in applying for a loan. Since….

Determine the total amount of the loan based on the following parameters.

Python Input Statements       You are considering buying a condominium in the Tidewater Condominium Complex and have decided to estimate the total costs involved in applying for a….

Write a driver program to test your method scienceWriteln.

Define a utility class for displaying values of type double. Call the class DoubleOut. Include all the methods in the class DollarFormat, all the methods from the class OutputFormat ,….