package org.apache.fop.render.gradient;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
this(3, domain, range);
this.functions = functions;
this.bounds = bounds;
- this.encode = encode;
+ this.encode = makeEncode(encode);
+ }
+
+ private List<Double> makeEncode(List<Double> encode) {
+ if (encode != null) {
+ return encode;
+ } else {
+ encode = new ArrayList<Double>(functions.size() * 2);
+ for (int i = 0; i < functions.size(); i++) {
+ encode.add(0.0);
+ encode.add(1.0);
+ }
+ return encode;
+ }
}
private Function(int functionType, List<Double> domain, List<Double> range) {
}
private void outputEncode(StringBuilder out, DoubleFormatter doubleFormatter) {
- if (encode != null) {
- out.append("/Encode ");
- GradientMaker.outputDoubles(out, doubleFormatter, encode);
- out.append("\n");
- } else {
- out.append("/Encode [ ");
- int size = functions.size();
- for (int i = 0; i < size; i++) {
- out.append("0 1 ");
- }
- out.append("]\n");
- }
+ out.append("/Encode ");
+ GradientMaker.outputDoubles(out, doubleFormatter, encode);
+ out.append("\n");
}
private void outputDecode(StringBuilder out, DoubleFormatter doubleFormatter) {
return this;
}
+ FunctionChecker bounds(Double... expectedBounds) {
+ assertArrayEquals(expectedBounds, function.getBounds().toArray());
+ return this;
+ }
+
+ FunctionChecker encode(Double... expectedEncode) {
+ assertArrayEquals(expectedEncode, function.getEncode().toArray());
+ return this;
+ }
+
FunctionChecker cZero(float... expectedCZero) {
assertArrayEquals(expectedCZero, function.getCZero(), 0f);
return this;
FunctionChecker functionChecker = shadingChecker.function()
.functionType(3)
.domain(0.0, 1.0)
+ .bounds()
+ .encode(0.0, 1.0)
.functions(1);
functionChecker.function(0)
.functionType(2)