/**
* Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT
* All rights reserved. Use is subject to license terms. See LICENSE.TXT
*/
package org.diirt.datasource.formula.venum;
import java.util.Arrays;
import java.util.List;
import org.diirt.datasource.formula.*;
import org.diirt.util.array.ArrayDouble;
import org.diirt.vtype.Alarm;
import org.diirt.vtype.VEnum;
import org.junit.Test;
import static org.diirt.vtype.ValueFactory.*;
/**
*
* @author carcassi
*/
public class VEnumFunctionSetTest {
private VEnumFunctionSet set = new VEnumFunctionSet();
@Test
public void enumOf1() {
List<String> labels = Arrays.asList("LOW", "MIDDLE", "HIGH");
VEnum low = newVEnum(0, labels, alarmNone(), timeNow());
VEnum middle = newVEnum(1, labels, alarmNone(), timeNow());
VEnum high = newVEnum(2, labels, alarmNone(), timeNow());
FunctionTester.findByName(set, "enumOf")
.compareReturnValue(low, -1.5, new ArrayDouble(-1.0, 1.0), labels)
.compareReturnValue(middle, 0.0, new ArrayDouble(-1.0, 1.0), labels)
.compareReturnValue(high, 1.5, new ArrayDouble(-1.0, 1.0), labels);
}
@Test
public void enumOf2() {
List<String> labels = Arrays.asList("A", "B", "C", "D");
ArrayDouble intervals = new ArrayDouble(-10.0, 0.0, 10.0);
VEnum a = newVEnum(0, labels, alarmNone(), timeNow());
VEnum b = newVEnum(1, labels, alarmNone(), timeNow());
VEnum c = newVEnum(2, labels, alarmNone(), timeNow());
VEnum d = newVEnum(3, labels, alarmNone(), timeNow());
FunctionTester.findByName(set, "enumOf")
.compareReturnValue(a, -11.0, intervals, labels)
.compareReturnValue(b, -1.0, intervals, labels)
.compareReturnValue(c, 2.0, intervals, labels)
.compareReturnValue(d, 11.0, intervals, labels);
}
@Test
public void indexOf(){
Alarm none = alarmNone();
List<String> labels = Arrays.asList("One", "Two", "Three");
FunctionTester.findByName(set, "indexOf")
.compareReturnValue(0, newVEnum(0, labels, none, timeNow()));
}
}