}
@Test
public void testOpenScope() throws SqlJetException {
SqlJetScope closedScope = new SqlJetScope(new Object[] {"ABC"}, new Object[] {"XYZ"});
SqlJetScope openScope = new SqlJetScope(new Object[] {"ABC"}, false, new Object[] {"XYZ"}, false);
SqlJetScope emptyOpenScope = new SqlJetScope(new Object[] {"ABCD"}, false, new Object[] {"ABCDEF"}, false);
SqlJetScope notMatchingOpenScope = new SqlJetScope(new Object[] {"AB"}, false, new Object[] {"XY"}, false);
SqlJetScope notMatchingClosedScope = new SqlJetScope(new Object[] {"AB"}, true, new Object[] {"XY"}, true);
SqlJetScope outOfBoundsClosedScope = new SqlJetScope(new Object[] {"XYZZZ"}, true, new Object[] {"XYZZZZZ"}, true);
SqlJetScope outOfBoundsOpenScope = new SqlJetScope(new Object[] {"XYZZ"}, false, new Object[] {"XYZZZZZ"}, true);
SqlJetScope unbounded = new SqlJetScope((SqlJetScopeBound) null, (SqlJetScopeBound) null);
SqlJetScope unbounded2 = new SqlJetScope((Object[]) null, (Object[]) null);
assertIndexScope(closedScope, "ABC", "ABCD", "ABCDEF", "XYZ");
assertIndexScope(closedScope.reverse(), "XYZ", "ABCDEF", "ABCD", "ABC");
assertIndexScope(openScope, "ABCD", "ABCDEF");
assertIndexScope(openScope.reverse(), "ABCDEF", "ABCD");
assertIndexScope(emptyOpenScope);
assertIndexScope(emptyOpenScope.reverse());
assertIndexScope(notMatchingClosedScope, "ABC", "ABCD", "ABCDEF");
assertIndexScope(notMatchingOpenScope, "ABC", "ABCD", "ABCDEF");
assertIndexScope(outOfBoundsClosedScope);
assertIndexScope(outOfBoundsOpenScope);
assertIndexScope(unbounded, "A", "ABC", "ABCD", "ABCDEF", "XYZ", "XYZZ" );
assertIndexScope(unbounded.reverse(), "A", "ABC", "ABCD", "ABCDEF", "XYZ", "XYZZ" );
assertIndexScope(unbounded2, "A", "ABC", "ABCD", "ABCDEF", "XYZ", "XYZZ" );
assertIndexScope(unbounded2.reverse(), "A", "ABC", "ABCD", "ABCDEF", "XYZ", "XYZZ" );
}