@Test
public void testEnsureValidMask() throws ParseException,
IOException {
final Product product = new Product("n", "t", 18, 2);
final Band flagsBand = product.addBand("flags", ProductData.TYPE_INT8);
final FlagCoding flagCoding = new FlagCoding("fc");
final int f1Mask = 1;
flagCoding.addFlag("f1", f1Mask, "");
flagsBand.setSampleCoding(flagCoding);
product.getFlagCodingGroup().add(flagCoding);
final byte[] elems = new byte[]{
0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0,
1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1,
};
flagsBand.setDataElems(elems);
product.setModified(false);
final Term term = product.parseExpression("flags.f1");
final BitRaster validMask = product.createValidMask(term, ProgressMonitor.NULL);
for (int i = 0; i < elems.length; i++) {
assertEquals(elems[i] == 1, validMask.isSet(i));
}
}