package org.openstreetmap.atlas.geography.atlas.raw.sectioning;

import org.openstreetmap.atlas.geography.atlas.Atlas;
import org.openstreetmap.atlas.utilities.testing.CoreTestRule;
import org.openstreetmap.atlas.utilities.testing.TestAtlas;

/**
 * {@link AtlasSectionProcessorTest} test data.
 *
 * @author mgostintsev
 */
public class WaySectionProcessorTestRule extends CoreTestRule
{
    @TestAtlas(loadFromTextResource = "malformedPolyLine.atlas.txt")
    private Atlas malformedPolyLineAtlas;

    @TestAtlas(loadFromTextResource = "bidirectionalRing.atlas.txt")
    private Atlas bidirectioalRingAtlas;

    @TestAtlas(loadFromTextResource = "loopingWayWithIntersection.atlas.txt")
    private Atlas loopingWayWithIntersection;

    @TestAtlas(loadFromTextResource = "oneWayRing.atlas.txt")
    private Atlas oneWayRing;

    @TestAtlas(loadFromTextResource = "oneWaySimpleLine.atlas.txt")
    private Atlas oneWaySimpleLine;

    @TestAtlas(loadFromTextResource = "reversedOneWayLine.atlas.txt")
    private Atlas reversedOneWayLine;

    @TestAtlas(loadFromTextResource = "lineWithLoopAtEnd.atlas.txt")
    private Atlas lineWithLoopAtEnd;

    @TestAtlas(loadFromTextResource = "lineWithLoopInMiddle.atlas.txt")
    private Atlas lineWithLoopInMiddle;

    @TestAtlas(loadFromTextResource = "lineWithLoopAtStart.atlas.txt")
    private Atlas lineWithLoopAtStart;

    @TestAtlas(loadFromTextResource = "lineWithBarrier.atlas.txt")
    private Atlas lineWithBarrier;

    @TestAtlas(loadFromTextResource = "lineWithInvalidOverlappingGeometry.atlas.txt")
    private Atlas lineWithInvalidOverlappingGeometry;

    @TestAtlas(loadFromTextResource = "simpleBiDirectionalLine.atlas.txt")
    private Atlas simpleBiDirectionalLine;

    @TestAtlas(loadFromTextResource = "ringWithSingleIntersection.atlas.txt")
    private Atlas ringWithSingleIntersection;

    @TestAtlas(loadFromTextResource = "roundAbout.atlas.txt")
    private Atlas roundAbout;

    @TestAtlas(loadFromTextResource = "lineWithRepeatedLocation.atlas.txt")
    private Atlas lineWithRepeatedLocation;

    @TestAtlas(loadFromTextResource = "lineWithLessThanTwoNodesDueToRepeatedLocationAtEndOfLine.atlas.txt")
    private Atlas lineWithLessThanTwoNodesDueToRepeatedLocationAtEndOfLine;

    @TestAtlas(loadFromTextResource = "loopWithRepeatedLocation.atlas.txt")
    private Atlas loopWithRepeatedLocation;

    @TestAtlas(loadFromTextResource = "selfIntersectingLoop.atlas.txt")
    private Atlas selfIntersectingLoop;

    @TestAtlas(loadFromTextResource = "wayExceedingSectioningLimit.atlas.txt")
    private Atlas wayExceedingSectioningLimit;

    @TestAtlas(loadFromTextResource = "rawAtlasSpanningOutsideBoundary.atlas.txt")
    private Atlas rawAtlasSpanningOutsideBoundary;

    @TestAtlas(loadFromTextResource = "nestedRelationRemoval.atlas.txt")
    private Atlas nestedRelationRemoval;

    @TestAtlas(loadFromTextResource = "nodeAndPointAsRelationMember.atlas.txt")
    private Atlas nodeAndPointAsRelationMember;

    @TestAtlas(loadFromTextResource = "pedestrianRing.atlas.txt")
    private Atlas pedestrianRing;

    public Atlas getBidirectionalRingAtlas()
    {
        return this.bidirectioalRingAtlas;
    }

    public Atlas getLineWithBarrierAtlas()
    {
        return this.lineWithBarrier;
    }

    public Atlas getLineWithInvalidOverlappingGeometry()
    {
        return this.lineWithInvalidOverlappingGeometry;
    }

    public Atlas getLineWithLessThanTwoNodesDueToRepeatedLocationAtEndOfLineAtlas()
    {
        return this.lineWithLessThanTwoNodesDueToRepeatedLocationAtEndOfLine;
    }

    public Atlas getLineWithLoopAtEndAtlas()
    {
        return this.lineWithLoopAtEnd;
    }

    public Atlas getLineWithLoopAtStartAtlas()
    {
        return this.lineWithLoopAtStart;
    }

    public Atlas getLineWithLoopInMiddleAtlas()
    {
        return this.lineWithLoopInMiddle;
    }

    public Atlas getLineWithRepeatedLocationAtlas()
    {
        return this.lineWithRepeatedLocation;
    }

    public Atlas getLoopWithRepeatedLocationAtlas()
    {
        return this.loopWithRepeatedLocation;
    }

    public Atlas getLoopingWayWithIntersectionAtlas()
    {
        return this.loopingWayWithIntersection;
    }

    public Atlas getMalformedPolyLineAtlas()
    {
        return this.malformedPolyLineAtlas;
    }

    public Atlas getNestedRelationRemovalAtlas()
    {
        return this.nestedRelationRemoval;
    }

    public Atlas getNodeAndPointAsRelationMemberAtlas()
    {
        return this.nodeAndPointAsRelationMember;
    }

    public Atlas getOneWayRingAtlas()
    {
        return this.oneWayRing;
    }

    public Atlas getOneWaySimpleLineAtlas()
    {
        return this.oneWaySimpleLine;
    }

    public Atlas getPedestrianRingAtlas()
    {
        return this.pedestrianRing;
    }

    public Atlas getRawAtlasSpanningOutsideBoundary()
    {
        return this.rawAtlasSpanningOutsideBoundary;
    }

    public Atlas getReversedOneWayLineAtlas()
    {
        return this.reversedOneWayLine;
    }

    public Atlas getRingWithSingleIntersectionAtlas()
    {
        return this.ringWithSingleIntersection;
    }

    public Atlas getRoundAboutAtlas()
    {
        return this.roundAbout;
    }

    public Atlas getSelfIntersectingLoopAtlas()
    {
        return this.selfIntersectingLoop;
    }

    public Atlas getSimpleBiDirectionalLineAtlas()
    {
        return this.simpleBiDirectionalLine;
    }

    public Atlas getWayExceedingSectioningLimitAtlas()
    {
        return this.wayExceedingSectioningLimit;
    }
}
