// Path: main-kata/src/main/java/kata/domain/Task.java
// public class Task extends TaskAbstract
// {
//     public Task(Timestamp processingDate)
//     {
//         super(processingDate);
//         // You must not modify this constructor. Mithra calls this internally.
//         // You can call this constructor. You can also add new constructors.
//     }
// 
//     @Override
//     public String toString()
//     {
//         return "Task[name=" + this.getName()
//                 + "; from=" + this.getProcessingDateFrom()
//                 + "; to=" + this.getProcessingDateTo()
//                 + "; status=" + this.getStatus() + ']';
//     }
// }
// 
// Path: main-kata/src/main/java/kata/domain/TaskList.java
// public class TaskList
//         extends TaskListAbstract
// {
// 	public TaskList()
// 	{
// 		super();
// 	}
// 
// 	public TaskList(int initialSize)
// 	{
// 		super(initialSize);
// 	}
// 
// 	public TaskList(Collection c)
// 	{
// 		super(c);
// 	}
// 
// 	public TaskList(Operation operation)
// 	{
// 		super(operation);
// 	}
// }


import org.eclipse.collections.impl.block.factory.Predicates;
import org.eclipse.collections.impl.set.mutable.UnifiedSet;
import org.eclipse.collections.impl.test.Verify;
import kata.domain.Task;
import kata.domain.TaskFinder;
import kata.domain.TaskList;
import org.junit.Assert;
import org.junit.Test;
import java.sql.Timestamp;
import java.util.Date;
        return null;
    }

    @Test
    public void testQ3()
    {
        TaskList tasks = this.getTaskHistory(1);

        Verify.assertAllSatisfy(tasks, Predicates.attributeEqual(TaskFinder.name(), "Build Bridge"));

        Verify.assertSetsEqual(UnifiedSet.newSetWith(
                Timestamp.valueOf("1965-01-01 06:00:00.0"),
                Timestamp.valueOf("1967-01-01 11:30:22.0"),
                Timestamp.valueOf("1990-01-01 06:00:00.0")),
                tasks.asEcList().collect(TaskFinder.processingDateFrom()).toSet());
    }

//------------------------ Question 4 --------------------------------------------------------
// End a task.  The task should no longer show up in current query results.

    public void endTask(final String name)
    {
        Assert.fail("Implement this functionality to make the test pass");
    }

    @Test
    public void testQ4()
    {
        int tasksBefore = new TaskList(TaskFinder.all()).count();

// Path: main-kata/src/main/java/kata/domain/Task.java
// public class Task extends TaskAbstract
// {
//     public Task(Timestamp processingDate)
//     {
//         super(processingDate);
//         // You must not modify this constructor. Mithra calls this internally.
//         // You can call this constructor. You can also add new constructors.
//     }
// 
//     @Override
//     public String toString()
//     {
//         return "Task[name=" + this.getName()
//                 + "; from=" + this.getProcessingDateFrom()
//                 + "; to=" + this.getProcessingDateTo()
//                 + "; status=" + this.getStatus() + ']';
//     }
// }
// 
// Path: main-kata/src/main/java/kata/domain/TaskList.java
// public class TaskList
//         extends TaskListAbstract
// {
// 	public TaskList()
// 	{
// 		super();
// 	}
// 
// 	public TaskList(int initialSize)
// 	{
// 		super(initialSize);
// 	}
// 
// 	public TaskList(Collection c)
// 	{
// 		super(c);
// 	}
// 
// 	public TaskList(Operation operation)
// 	{
// 		super(operation);
// 	}
// }


// Path: main-kata/src/test/java/kata/test/ExercisesAuditOnly.java
import org.eclipse.collections.impl.block.factory.Predicates;
import org.eclipse.collections.impl.set.mutable.UnifiedSet;
import org.eclipse.collections.impl.test.Verify;
import kata.domain.Task;
import kata.domain.TaskFinder;
import kata.domain.TaskList;
import org.junit.Assert;
import org.junit.Test;
import java.sql.Timestamp;
import java.util.Date;

        return null;
    }

    @Test
    public void testQ3()
    {
        TaskList tasks = this.getTaskHistory(1);

        Verify.assertAllSatisfy(tasks, Predicates.attributeEqual(TaskFinder.name(), "Build Bridge"));

        Verify.assertSetsEqual(UnifiedSet.newSetWith(
                Timestamp.valueOf("1965-01-01 06:00:00.0"),
                Timestamp.valueOf("1967-01-01 11:30:22.0"),
                Timestamp.valueOf("1990-01-01 06:00:00.0")),
                tasks.asEcList().collect(TaskFinder.processingDateFrom()).toSet());
    }

//------------------------ Question 4 --------------------------------------------------------
// End a task.  The task should no longer show up in current query results.

    public void endTask(final String name)
    {
        Assert.fail("Implement this functionality to make the test pass");
    }

    @Test
    public void testQ4()
    {
        int tasksBefore = new TaskList(TaskFinder.all()).count();

        Task damRiver = TaskFinder.findOne(TaskFinder.name().eq("Dam River"));