
package atmsdriver.model;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Iterator;
import java.util.Scanner;
import junit.framework.TestCase;

/**
 *
 * @author jdalbey
 */
public class PostmileCoordsTest extends TestCase
{
    private PostmileCoords pmc;
    
    public PostmileCoordsTest(String testName)
    {
        super(testName);
    }
    
    @Override
    protected void setUp() throws Exception
    {
        super.setUp();
    }
    
    @Override
    protected void tearDown() throws Exception
    {
        super.tearDown();
    }

    public void testLoad() throws FileNotFoundException
    {

        System.out.println("load");
        String line1 = "5 N 4.02, 33.33, -117.117,Dyer Rd\n5 S 3.56, 33.33, -117.117,Dyer Rd";
        Scanner scan = new Scanner(line1).useDelimiter("\\A"); 
        pmc = new PostmileCoords();
        pmc.load(scan);
        PostmileCoords.Postmile pm = new PostmileCoords.Postmile("5 N 4.02", "33.33", 
                "-117.117","Dyer Rd");
        assertEquals(pm,pmc.get(0));
        assert(pmc.size() == 2);
    }
    public void testLoadwithPrefix() throws FileNotFoundException
    {
        System.out.println("load");
        String line1 = "5 N R4.02, 33.33, -117.117,Dyer Rd\n5 S 3.56, 33.33, -117.117,Dyer Rd";
        Scanner scan = new Scanner(line1).useDelimiter("\\A"); 
        pmc = new PostmileCoords();
        pmc.load(scan);
        PostmileCoords.Postmile pm = new PostmileCoords.Postmile("5 N 4.02", "33.33", 
                "-117.117","Dyer Rd","0","0");
        assertEquals(pm,pmc.get(0));
        assert(pmc.size() == 2);
    }
    public void testLoadNoPerps() throws FileNotFoundException
    {

        System.out.println("load");
        String line1 = "5 N 4.02, 33.33, -117.117,Dyer Rd,\n5 S 3.56, 33.33, -117.117,Dyer Rd,";
        Scanner scan = new Scanner(line1).useDelimiter("\\A"); 
        pmc = new PostmileCoords();
        pmc.load(scan);
        PostmileCoords.Postmile pm = new PostmileCoords.Postmile("5 N 4.02", "33.33", 
                "-117.117","Dyer Rd","0","0");
        assertEquals(pm,pmc.get(0));
        assert(pmc.size() == 2);
    }
    public void testLoadPerps() throws FileNotFoundException
    {

        System.out.println("load");
        String line1 = "5 N 4.02, 33.33, -117.117,Dyer Rd,.1,.1\n5 S 3.56, 33.33, -117.117,Dyer Rd,.2,.2";
        Scanner scan = new Scanner(line1).useDelimiter("\\A"); 
        pmc = new PostmileCoords();
        pmc.load(scan);
        PostmileCoords.Postmile pm = new PostmileCoords.Postmile("5 N 4.02", "33.33", 
                "-117.117","Dyer Rd",".1",".1");
        assertEquals(pm,pmc.get(0));
        assert(pmc.size() == 2);
    }
    public void testIterator() throws FileNotFoundException
    {
        System.out.println("iterator");
        testLoad();
        int count = 0;
        for (Object pm: pmc)
        {
            count++;
        }
        assert(count == 2);
    }
    public void testFind() throws FileNotFoundException
    {
        System.out.println("find");
        testLoad();
        PostmileCoords.Postmile result = pmc.find("5 N 4.02");
        assertNotNull(result);
        PostmileCoords.Postmile pm = new PostmileCoords.Postmile("5 N 4.02", "33.33", "-117.117","Dyer Rd", "0.547592", "0.836745");
        assertEquals(pm,result);
        PostmileCoords.Postmile result2 = pmc.find("X");
        assertNull(result2);
        System.out.println(pm.toJson());
    }
}
