summaryrefslogtreecommitdiff
path: root/src/test/java/com/amazon/carbonado/qe
diff options
context:
space:
mode:
authorBrian S. O'Neill <bronee@gmail.com>2007-08-04 23:38:00 +0000
committerBrian S. O'Neill <bronee@gmail.com>2007-08-04 23:38:00 +0000
commitecf73566b91313b61c06b104e45e24d89f4dd329 (patch)
tree3ceb7eaf76178960eb796fa4375d6e9caa0c72b0 /src/test/java/com/amazon/carbonado/qe
parent9d3161037adbd58fb3c8dac5dea766d8abfbc7fe (diff)
Add filtering short-circuit optimization.
Diffstat (limited to 'src/test/java/com/amazon/carbonado/qe')
-rw-r--r--src/test/java/com/amazon/carbonado/qe/TestFilteringScore.java35
1 files changed, 20 insertions, 15 deletions
diff --git a/src/test/java/com/amazon/carbonado/qe/TestFilteringScore.java b/src/test/java/com/amazon/carbonado/qe/TestFilteringScore.java
index 25222a7..ecec5c0 100644
--- a/src/test/java/com/amazon/carbonado/qe/TestFilteringScore.java
+++ b/src/test/java/com/amazon/carbonado/qe/TestFilteringScore.java
@@ -624,9 +624,10 @@ public class TestFilteringScore extends TestCase {
score_1 = FilteringScore.evaluate(ix_1, filter);
score_2 = FilteringScore.evaluate(ix_2, filter);
- // Second is better because it has fewer properties.
- assertEquals(1, comp.compare(score_1, score_2));
- assertEquals(-1, comp.compare(score_2, score_1));
+ // Same -- number of properties no longer considered except by
+ // OrderingScore and CompositeScore.
+ assertEquals(0, comp.compare(score_1, score_2));
+ assertEquals(0, comp.compare(score_2, score_1));
score_1 = FilteringScore.evaluate(ix_1.clustered(true), filter);
score_2 = FilteringScore.evaluate(ix_2, filter);
@@ -637,9 +638,10 @@ public class TestFilteringScore extends TestCase {
score_1 = FilteringScore.evaluate(ix_1, filter);
score_2 = FilteringScore.evaluate(ix_2, filter);
- // Although no property matches, second is better just because it has fewer properties.
- assertEquals(1, comp.compare(score_1, score_2));
- assertEquals(-1, comp.compare(score_2, score_1));
+ // No property matches and number of properties no longer considered
+ // except by OrderingScore and CompositeScore.
+ assertEquals(0, comp.compare(score_1, score_2));
+ assertEquals(0, comp.compare(score_2, score_1));
filter = Filter.filterFor(StorableTestBasic.class, "stringProp = ?");
score_1 = FilteringScore.evaluate(ix_1.clustered(true), filter);
@@ -660,9 +662,10 @@ public class TestFilteringScore extends TestCase {
score_1 = FilteringScore.evaluate(ix_1, filter);
score_2 = FilteringScore.evaluate(ix_2, filter);
- // Second is better because it has fewer properties.
- assertEquals(1, comp.compare(score_1, score_2));
- assertEquals(-1, comp.compare(score_2, score_1));
+ // Same -- number of properties no longer considered except by
+ // OrderingScore and CompositeScore.
+ assertEquals(0, comp.compare(score_1, score_2));
+ assertEquals(0, comp.compare(score_2, score_1));
filter = Filter.filterFor(StorableTestBasic.class, "id = ? & stringProp = ?");
score_1 = FilteringScore.evaluate(ix_1, filter);
@@ -692,9 +695,10 @@ public class TestFilteringScore extends TestCase {
score_1 = FilteringScore.evaluate(ix_1, filter);
score_2 = FilteringScore.evaluate(ix_2, filter);
- // Second is better because it has fewer properties.
- assertEquals(1, comp.compare(score_1, score_2));
- assertEquals(-1, comp.compare(score_2, score_1));
+ // Same -- number of properties no longer considered except by
+ // OrderingScore and CompositeScore.
+ assertEquals(0, comp.compare(score_1, score_2));
+ assertEquals(0, comp.compare(score_2, score_1));
filter = Filter.filterFor(StorableTestBasic.class, "id >= ? & id < ?");
score_1 = FilteringScore.evaluate(ix_1.clustered(true), filter);
@@ -709,9 +713,10 @@ public class TestFilteringScore extends TestCase {
score_1 = FilteringScore.evaluate(ix_1.clustered(true), filter);
score_2 = FilteringScore.evaluate(ix_2.clustered(true), filter);
- // Second is better because it has fewer properties.
- assertEquals(1, comp.compare(score_1, score_2));
- assertEquals(-1, comp.compare(score_2, score_1));
+ // Same -- number of properties no longer considered except by
+ // OrderingScore and CompositeScore.
+ assertEquals(0, comp.compare(score_1, score_2));
+ assertEquals(0, comp.compare(score_2, score_1));
}
public void testArrangementFullComparator() throws Exception {