/*
* File: ForwardReverseEvaluatorPairTest.java
* Authors: Justin Basilico
* Project: Cognitive Foundry Common Core
*
* Copyright 2012, Cognitive Foundry. All rights reserved.
*/
package gov.sandia.cognition.evaluator;
import gov.sandia.cognition.util.AbstractCloneableSerializable;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Unit tests for class {@link ForwardReverseEvaluatorPair}.
*
* @author Justin Basilico
* @since 3.3.3
*/
public class ForwardReverseEvaluatorPairTest
extends Object
{
/**
* Creates a new test.
*/
public ForwardReverseEvaluatorPairTest()
{
super();
}
@Test
public void testConstructors()
{
Evaluator<String, Integer> forward = null;
Evaluator<Integer, String> reverse = null;
ForwardReverseEvaluatorPair<String, Integer, Evaluator<String, Integer>, Evaluator<Integer, String>> instance =
new ForwardReverseEvaluatorPair<String, Integer, Evaluator<String, Integer>, Evaluator<Integer, String>>();
assertSame(forward, instance.getForward());
assertSame(reverse, instance.getReverse());
forward = new StringToInteger();
reverse = new IntegerToString();
instance = new ForwardReverseEvaluatorPair<String, Integer, Evaluator<String, Integer>, Evaluator<Integer, String>>(forward, reverse);
assertSame(forward, instance.getForward());
assertSame(reverse, instance.getReverse());
}
/**
* Test of reverse method, of class ForwardReverseEvaluatorPair.
*/
@Test
public void testReverse()
{
Evaluator<String, Integer> forward = new StringToInteger();
Evaluator<Integer, String> reverse = new IntegerToString();
ForwardReverseEvaluatorPair<String, Integer, Evaluator<String, Integer>, Evaluator<Integer, String>> instance =
ForwardReverseEvaluatorPair.create(forward, reverse);
assertSame(forward, instance.getForward());
assertSame(reverse, instance.getReverse());
ForwardReverseEvaluatorPair<Integer, String, Evaluator<Integer, String>, Evaluator<String, Integer>> result =
instance.reverse();
assertSame(reverse, result.getForward());
assertSame(forward, result.getReverse());
}
/**
* Test of evaluate method, of class ForwardReverseEvaluatorPair.
*/
@Test
public void testEvaluate()
{
Evaluator<String, Integer> forward = new StringToInteger();
Evaluator<Integer, String> reverse = new IntegerToString();
ForwardReverseEvaluatorPair<String, Integer, Evaluator<String, Integer>, Evaluator<Integer, String>> instance =
ForwardReverseEvaluatorPair.create(forward, reverse);
assertEquals(4, (int) instance.evaluate("4"));
assertEquals(5, (int) instance.evaluate("5"));
}
/**
* Test of evaluateReverse method, of class ForwardReverseEvaluatorPair.
*/
@Test
public void testEvaluateReverse()
{
Evaluator<String, Integer> forward = new StringToInteger();
Evaluator<Integer, String> reverse = new IntegerToString();
ForwardReverseEvaluatorPair<String, Integer, Evaluator<String, Integer>, Evaluator<Integer, String>> instance =
ForwardReverseEvaluatorPair.create(forward, reverse);
assertEquals("4", instance.evaluateReverse(4));
assertEquals("5", instance.evaluateReverse(5));
}
/**
* Test of getForward method, of class ForwardReverseEvaluatorPair.
*/
@Test
public void testGetForward()
{
this.testSetForward();
}
/**
* Test of setForward method, of class ForwardReverseEvaluatorPair.
*/
@Test
public void testSetForward()
{
Evaluator<String, Integer> forward = null;
ForwardReverseEvaluatorPair<String, Integer, Evaluator<String, Integer>, Evaluator<Integer, String>> instance =
new ForwardReverseEvaluatorPair<String, Integer, Evaluator<String, Integer>, Evaluator<Integer, String>>();
assertSame(forward, instance.getForward());
forward = new StringToInteger();
instance.setForward(forward);
assertSame(forward, instance.getForward());
}
/**
* Test of getReverse method, of class ForwardReverseEvaluatorPair.
*/
@Test
public void testGetReverse()
{
this.testSetReverse();
}
/**
* Test of setReverse method, of class ForwardReverseEvaluatorPair.
*/
@Test
public void testSetReverse()
{
Evaluator<Integer, String> reverse = null;
ForwardReverseEvaluatorPair<String, Integer, Evaluator<String, Integer>, Evaluator<Integer, String>> instance =
new ForwardReverseEvaluatorPair<String, Integer, Evaluator<String, Integer>, Evaluator<Integer, String>>();
assertSame(reverse, instance.getReverse());
reverse = new IntegerToString();
instance.setReverse(reverse);
assertSame(reverse, instance.getReverse());
}
/**
* Test of create method, of class ForwardReverseEvaluatorPair.
*/
@Test
public void testCreate()
{
Evaluator<String, Integer> forward = new StringToInteger();
Evaluator<Integer, String> reverse = new IntegerToString();
ForwardReverseEvaluatorPair<String, Integer, Evaluator<String, Integer>, Evaluator<Integer, String>> instance =
ForwardReverseEvaluatorPair.create(forward, reverse);
assertSame(forward, instance.getForward());
assertSame(reverse, instance.getReverse());
}
public static class StringToInteger
extends AbstractCloneableSerializable
implements Evaluator<String, Integer>
{
@Override
public Integer evaluate(
final String input)
{
return Integer.valueOf(input);
}
}
public static class IntegerToString
extends AbstractCloneableSerializable
implements Evaluator<Integer, String>
{
@Override
public String evaluate(
final Integer input)
{
return input.toString();
}
}
}