package org.geotools.filter.function;
import java.text.DecimalFormatSymbols;
import junit.framework.TestCase;
import org.geotools.factory.CommonFactoryFinder;
import org.opengis.filter.FilterFactory;
import org.opengis.filter.expression.Expression;
import org.opengis.filter.expression.Function;
import org.opengis.filter.expression.Literal;
public class NumberFormatTest extends TestCase {
public void testFormatDouble() {
FilterFactory ff = CommonFactoryFinder.getFilterFactory(null);
Literal pattern = ff.literal("#.##");
Literal number = ff.literal("10.56789");
Function f = ff.function("numberFormat", new Expression[]{pattern, number});
char ds = new DecimalFormatSymbols().getDecimalSeparator();
assertEquals("10" + ds + "57", f.evaluate(null , String.class));
}
public void testFormatInteger() {
FilterFactory ff = CommonFactoryFinder.getFilterFactory(null);
Literal pattern = ff.literal("###,###");
Literal number = ff.literal("123456");
Function f = ff.function("numberFormat", new Expression[]{pattern, number});
char gs = new DecimalFormatSymbols().getGroupingSeparator();
assertEquals("123" + gs + "456", f.evaluate(null , String.class));
}
public void testNumberFormat2() {
FilterFactory ff = CommonFactoryFinder.getFilterFactory(null);
Literal pattern = ff.literal("###,###.##");
Literal number = ff.literal("-123456.7891");
Literal minus = ff.literal("x");
Literal ds = ff.literal(":");
Literal gs = ff.literal(";");
Function f = ff.function("numberFormat2", new Expression[]{pattern, number, minus, ds, gs});
assertEquals("x123;456:79", f.evaluate(null, String.class));
}
}