final FieldIndex fieldIndex = new FieldIndex( extractor,
declaration,
MvelConstraint.INDEX_EVALUATOR );
final RightTupleIndexHashTable map = new RightTupleIndexHashTable( 16,
0.75f,
new FieldIndex[]{fieldIndex} );
assertEquals( 0,
map.size() );
final Cheese stilton1 = new Cheese( "stilton",
35 );
map.add( newRightTuple( 1,
stilton1 ) );
final Cheese stilton2 = new Cheese( "stilton",
81 );
map.add( newRightTuple( 2,
stilton2 ) );
final Cheese cheddar1 = new Cheese( "cheddar",
35 );
map.add( newRightTuple( 3,
cheddar1 ) );
final Cheese cheddar2 = new Cheese( "cheddar",
38 );
map.add( newRightTuple( 4,
cheddar2 ) );
final Cheese brie = new Cheese( "brie",
293 );
map.add( newRightTuple( 5,
brie ) );
final Cheese mozerella = new Cheese( "mozerella",
15 );
map.add( newRightTuple( 6,
mozerella ) );
final Cheese dolcelatte = new Cheese( "dolcelatte",
284 );
map.add( newRightTuple( 7,
dolcelatte ) );
final Cheese camembert1 = new Cheese( "camembert",
924 );
map.add( newRightTuple( 8,
camembert1 ) );
final Cheese camembert2 = new Cheese( "camembert",
765 );
map.add( newRightTuple( 9,
camembert2 ) );
final Cheese redLeicestor = new Cheese( "red leicestor",
23 );
map.add( newRightTuple( 10,
redLeicestor ) );
final Cheese wensleydale = new Cheese( "wensleydale",
20 );
map.add( newRightTuple( 11,
wensleydale ) );
final Cheese edam = new Cheese( "edam",
12 );
map.add( newRightTuple( 12,
edam ) );
final Cheese goude1 = new Cheese( "goude",
93 );
map.add( newRightTuple( 13,
goude1 ) );
final Cheese goude2 = new Cheese( "goude",
88 );
map.add( newRightTuple( 14,
goude2 ) );
final Cheese gruyere = new Cheese( "gruyere",
82 );
map.add( newRightTuple( 15,
gruyere ) );
final Cheese emmental = new Cheese( "emmental",
98 );
map.add( newRightTuple( 16,
emmental ) );
// At this point we have 16 facts but only 12 different types of cheeses
// so no table resize and thus its size is 16
assertEquals( 16,
map.size() );
Entry[] table = map.getTable();
assertEquals( 16,
table.length );
final Cheese feta = new Cheese( "feta",
48 );
map.add( newRightTuple( 2,
feta ) );
// This adds our 13th type of cheese. The map is set with an initial capacity of 16 and
// a threshold of 75%, that after 12 it should resize the map to 32.
assertEquals( 17,
map.size() );
table = map.getTable();
assertEquals( 32,
table.length );
final Cheese haloumi = new Cheese( "haloumi",
48 );
map.add( newRightTuple( 2,
haloumi ) );
final Cheese chevre = new Cheese( "chevre",
48 );
map.add( newRightTuple( 2,
chevre ) );
}