package er.chronic;
import java.util.LinkedList;
import java.util.List;
import junit.framework.TestCase;
import er.chronic.handlers.Handler;
import er.chronic.repeaters.EnumRepeaterDayPortion;
import er.chronic.repeaters.RepeaterDayName;
import er.chronic.repeaters.RepeaterDayName.DayName;
import er.chronic.repeaters.RepeaterDayPortion;
import er.chronic.repeaters.RepeaterTime;
import er.chronic.utils.Span;
import er.chronic.utils.Time;
import er.chronic.utils.Token;
public class ChronicTest extends TestCase {
public void testPostNormalizeAmPmAliases() {
List<Token> tokens = new LinkedList<>();
// affect wanted patterns
tokens.add(new Token("5:00"));
tokens.add(new Token("morning"));
tokens.get(0).tag(new RepeaterTime("5:00"));
tokens.get(1).tag(new EnumRepeaterDayPortion(RepeaterDayPortion.DayPortion.MORNING));
assertEquals(RepeaterDayPortion.DayPortion.MORNING, tokens.get(1).getTags().get(0).getType());
tokens = Handler.dealiasAndDisambiguateTimes(tokens, new Options());
assertEquals(RepeaterDayPortion.DayPortion.AM, tokens.get(1).getTags().get(0).getType());
assertEquals(2, tokens.size());
// don't affect unwanted patterns
tokens = new LinkedList<>();
tokens.add(new Token("friday"));
tokens.add(new Token("morning"));
tokens.get(0).tag(new RepeaterDayName(DayName.FRIDAY));
tokens.get(1).tag(new EnumRepeaterDayPortion(RepeaterDayPortion.DayPortion.MORNING));
assertEquals(RepeaterDayPortion.DayPortion.MORNING, tokens.get(1).getTags().get(0).getType());
tokens = Handler.dealiasAndDisambiguateTimes(tokens, new Options());
assertEquals(RepeaterDayPortion.DayPortion.MORNING, tokens.get(1).getTags().get(0).getType());
assertEquals(2, tokens.size());
}
public void testGuess() {
Span span;
span = new Span(Time.construct(2006, 8, 16, 0), Time.construct(2006, 8, 17, 0));
assertEquals(Time.construct(2006, 8, 16, 12), Chronic.guess(span).getBeginCalendar());
span = new Span(Time.construct(2006, 8, 16, 0), Time.construct(2006, 8, 17, 0, 0, 1));
assertEquals(Time.construct(2006, 8, 16, 12), Chronic.guess(span).getBeginCalendar());
span = new Span(Time.construct(2006, 11), Time.construct(2006, 12));
assertEquals(Time.construct(2006, 11, 16), Chronic.guess(span).getBeginCalendar());
}
}