package com.googlecode.aviator.runtime.function;
import static org.junit.Assert.*;
import org.junit.Test;
import com.googlecode.aviator.AviatorEvaluator;
import com.googlecode.aviator.lexer.token.OperatorType;
import com.googlecode.aviator.runtime.function.seq.SeqMapFunction;
import com.googlecode.aviator.runtime.function.system.BinaryFunction;
import com.googlecode.aviator.runtime.type.AviatorFunction;
import com.googlecode.aviator.runtime.type.AviatorJavaType;
public class FunctionUtilsUnitTest {
@Test
public void testGetFunction_Normal() {
AviatorFunction fun = FunctionUtils.getFunction(new AviatorJavaType("map"), AviatorEvaluator.FUNC_MAP, 2);
assertNotNull(fun);
assertTrue(fun instanceof SeqMapFunction);
}
@Test
public void testGetFunction_sub() {
AviatorFunction fun = FunctionUtils.getFunction(new AviatorJavaType("-"), AviatorEvaluator.FUNC_MAP, 2);
assertNotNull(fun);
assertTrue(fun instanceof BinaryFunction);
assertEquals("-sub", fun.getName());
assertEquals(OperatorType.SUB, ((BinaryFunction) fun).getOpType());
}
@Test
public void testGetFunction_neg() {
AviatorFunction fun = FunctionUtils.getFunction(new AviatorJavaType("-"), AviatorEvaluator.FUNC_MAP, 1);
assertNotNull(fun);
assertTrue(fun instanceof BinaryFunction);
assertEquals("-neg", fun.getName());
assertEquals(OperatorType.NEG, ((BinaryFunction) fun).getOpType());
}
}