Skip to content
Snippets Groups Projects
Commit b7b1c309 authored by Luc Maisonobe's avatar Luc Maisonobe
Browse files

Added isColumnMerging predicate.

parent 083f33c9
No related branches found
No related tags found
No related merge requests found
......@@ -155,6 +155,15 @@ public class MinMaxTreeTile extends SimpleTile {
}
/** Check if the merging operation between level and level+1 is a column merging.
* @param level level to check
* @return true if the merging operation between level and level+1 is a column
* merging, false if is a row merging
*/
public boolean isColumnMerging(final int level) {
return (level & 0x1) != (start.length & 0x1);
}
/** Recursive setting of tree levels.
* <p>
* The following algorithms works for any array shape, even with
......@@ -228,7 +237,8 @@ public class MinMaxTreeTile extends SimpleTile {
final int level, final int levelRows, final int levelColumns,
final BivariateFunction f,
final double[] base, final int first) {
if ((level & 0x1) != (start.length & 0x1)) {
if (isColumnMerging(level)) {
// merge columns pairs
int iTree = start[level];
......
......@@ -47,6 +47,16 @@ public class MinMaxTreeTileTest {
Assert.assertEquals( 577, start[ 7]);
Assert.assertEquals(1117, start[ 8]);
Assert.assertTrue(tile.isColumnMerging(8));
Assert.assertFalse(tile.isColumnMerging(7));
Assert.assertTrue(tile.isColumnMerging(6));
Assert.assertFalse(tile.isColumnMerging(5));
Assert.assertTrue(tile.isColumnMerging(4));
Assert.assertFalse(tile.isColumnMerging(3));
Assert.assertTrue(tile.isColumnMerging(2));
Assert.assertFalse(tile.isColumnMerging(1));
Assert.assertTrue(tile.isColumnMerging(0));
Field minTreeField = MinMaxTreeTile.class.getDeclaredField("minTree");
minTreeField.setAccessible(true);
Assert.assertEquals(2187, ((double[]) minTreeField.get(tile)).length);
......@@ -71,6 +81,11 @@ public class MinMaxTreeTileTest {
Assert.assertEquals( 6, start[ 2]);
Assert.assertEquals(14, start[ 3]);
Assert.assertTrue(tile.isColumnMerging(3));
Assert.assertFalse(tile.isColumnMerging(2));
Assert.assertTrue(tile.isColumnMerging(1));
Assert.assertFalse(tile.isColumnMerging(0));
Field minTreeField = MinMaxTreeTile.class.getDeclaredField("minTree");
minTreeField.setAccessible(true);
Assert.assertEquals(30, ((double[]) minTreeField.get(tile)).length);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment