package com.niklim.clicktrace.capture.voter; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import org.junit.Assert; import org.junit.Test; import com.niklim.clicktrace.capture.voter.LineVoter.ChangeSensitivity; public class LineVoterTest { private static final String SESSION_DIR = "src/test/resources/test-data/voter-sessions/line-voter/"; @Test public void normalShouldNotDetectAnyChange() throws IOException { LineVoter voter = new LineVoter(ChangeSensitivity.NORMAL); Vote vote = voter.vote(loadImage("1.png"), loadImage("1.png")); Assert.assertEquals(Vote.ABSTAIN, vote); } @Test public void normalShouldNotDetectCursor() throws IOException { LineVoter voter = new LineVoter(ChangeSensitivity.NORMAL); Vote vote = voter.vote(loadImage("1.png"), loadImage("2.png")); Assert.assertEquals(Vote.ABSTAIN, vote); } @Test public void normalShouldDetectCursorAndRect() throws IOException { LineVoter voter = new LineVoter(ChangeSensitivity.NORMAL); Vote vote = voter.vote(loadImage("1.png"), loadImage("3.png")); Assert.assertEquals(Vote.SAVE, vote); } @Test public void normalShouldDetectRect() throws IOException { LineVoter voter = new LineVoter(ChangeSensitivity.NORMAL); Vote vote = voter.vote(loadImage("2.png"), loadImage("3.png")); Assert.assertEquals(Vote.SAVE, vote); } @Test public void highShouldNotDetectAnyChange() throws IOException { LineVoter voter = new LineVoter(ChangeSensitivity.HIGH); Vote vote = voter.vote(loadImage("1.png"), loadImage("1.png")); Assert.assertEquals(Vote.ABSTAIN, vote); } @Test public void highShouldDetectCursor() throws IOException { LineVoter voter = new LineVoter(ChangeSensitivity.HIGH); Vote vote = voter.vote(loadImage("1.png"), loadImage("2.png")); Assert.assertEquals(Vote.SAVE, vote); } @Test public void highShouldDetectCursorAndRect() throws IOException { LineVoter voter = new LineVoter(ChangeSensitivity.HIGH); Vote vote = voter.vote(loadImage("1.png"), loadImage("3.png")); Assert.assertEquals(Vote.SAVE, vote); } @Test public void highShouldDetectRect() throws IOException { LineVoter voter = new LineVoter(ChangeSensitivity.HIGH); Vote vote = voter.vote(loadImage("2.png"), loadImage("3.png")); Assert.assertEquals(Vote.SAVE, vote); } @Test public void lowShouldNotDetectAnyChange() throws IOException { LineVoter voter = new LineVoter(ChangeSensitivity.LOW); Vote vote = voter.vote(loadImage("1.png"), loadImage("1.png")); Assert.assertEquals(Vote.ABSTAIN, vote); } @Test public void lowShouldNotDetectCursor() throws IOException { LineVoter voter = new LineVoter(ChangeSensitivity.LOW); Vote vote = voter.vote(loadImage("1.png"), loadImage("2.png")); Assert.assertEquals(Vote.ABSTAIN, vote); } @Test public void lowShouldNotDetectCursorAndRect() throws IOException { LineVoter voter = new LineVoter(ChangeSensitivity.LOW); Vote vote = voter.vote(loadImage("1.png"), loadImage("3.png")); Assert.assertEquals(Vote.ABSTAIN, vote); } @Test public void lowShouldNotDetectRect() throws IOException { LineVoter voter = new LineVoter(ChangeSensitivity.LOW); Vote vote = voter.vote(loadImage("2.png"), loadImage("3.png")); Assert.assertEquals(Vote.ABSTAIN, vote); } @Test public void lowShouldDetectCircle() throws IOException { LineVoter voter = new LineVoter(ChangeSensitivity.LOW); Vote vote = voter.vote(loadImage("1.png"), loadImage("4.png")); Assert.assertEquals(Vote.SAVE, vote); } private BufferedImage loadImage(String name) throws IOException { return ImageIO.read(new File(SESSION_DIR + name)); } }