/** * Copyright 2005-2012 Akiban Technologies, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.persistit.unit; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.junit.Test; import com.persistit.Key; import com.persistit.KeyFilter; import com.persistit.KeyParser; import com.persistit.PersistitUnitTestCase; public class KeyParserTest2 extends PersistitUnitTestCase { @Test public void test1() { System.out.print("test1 "); final KeyFilter filter = new KeyFilter(new KeyFilter.Term[] { KeyFilter.rangeTerm("a", "b"), KeyFilter.rangeTerm(new Double(1.234), new Double(2.345)), KeyFilter.simpleTerm("{{{,,,}}}") }); final String string1 = filter.toString(); // System.out.println(); // System.out.println("filter1.toString()=" + string1); final KeyParser parser = new KeyParser(string1); final KeyFilter filter2 = parser.parseKeyFilter(); assertTrue(filter2 != null); final String string2 = filter2.toString(); // System.out.println("filter2.toString()=" + string2); assertEquals(string1, string2); System.out.println("- done"); } @Test public void test2() { System.out.print("test2 "); final KeyFilter filter = new KeyFilter(new KeyFilter.Term[] { KeyFilter.rangeTerm("a", "b"), KeyFilter.rangeTerm(new Double(1.234), new Double(2.345)), KeyFilter.simpleTerm("{{{,,,}}}"), KeyFilter.orTerm(new KeyFilter.Term[] { KeyFilter.rangeTerm(new Long(Long.MIN_VALUE), new Long(Long.MAX_VALUE)), KeyFilter.simpleTerm("1st"), KeyFilter.simpleTerm("2nd"), }) }, 3, 7); final String string1 = filter.toString(); // System.out.println(); // System.out.println("filter1.toString()=" + string1); final KeyParser parser = new KeyParser(string1); final KeyFilter filter2 = parser.parseKeyFilter(); assertTrue(filter2 != null); final String string2 = filter2.toString(); // System.out.println("filter2.toString()=" + string2); assertEquals(string1, string2); System.out.println("- done"); } @Test public void test3() { System.out.print("test3 "); final KeyFilter filter = new KeyFilter(new KeyFilter.Term[] { KeyFilter.rangeTerm("a", "b"), KeyFilter.rangeTerm(new Double(1.234), new Double(2.345)), KeyFilter.simpleTerm("{{{,,,}}}"), KeyFilter.orTerm(new KeyFilter.Term[] { KeyFilter.rangeTerm(new Long(Long.MIN_VALUE), new Long(Long.MAX_VALUE)), KeyFilter.simpleTerm("1st"), KeyFilter.simpleTerm("2nd"), }) }, 3, 7); final String string1 = filter.toString(); // System.out.println(); // System.out.println("filter1.toString()=" + string1); final KeyParser parser = new KeyParser(string1); final KeyFilter filter2 = parser.parseKeyFilter(); assertTrue(filter2 != null); final String string2 = filter2.toString(); // System.out.println("filter2.toString()=" + string2); assertEquals(string1, string2); System.out.println("- done"); } @Test public void test4() { System.out.println("test4 "); final KeyParser parser = new KeyParser("{*,>100:200,*<}"); final KeyFilter filter = parser.parseKeyFilter(); assertEquals(filter.getMinimumDepth(), 2); assertEquals(filter.getMaximumDepth(), 3); assertEquals(filter.size(), 3); assertEquals(filter.getTerm(0), KeyFilter.ALL); assertEquals(filter.getTerm(1), KeyFilter.rangeTerm(new Integer(100), new Integer(200))); assertEquals(filter.getTerm(2), KeyFilter.ALL); final Key key = new Key(_persistit); assertTrue(!filter.selected(key)); key.append("x"); assertTrue(!filter.selected(key)); key.append(150); assertTrue(filter.selected(key)); key.append("y"); assertTrue(filter.selected(key)); key.append("z"); assertTrue(!filter.selected(key)); key.append("zz"); assertTrue(!filter.selected(key)); key.setDepth(2); assertTrue(filter.selected(key)); key.to(50); assertTrue(filter.next(key, Key.GT)); key.to(120); assertTrue(filter.next(key, Key.GT)); System.out.println("- done"); } public static void main(final String[] args) throws Exception { new KeyParserTest2().initAndRunTest(); } @Override public void runAllTests() throws Exception { setUp(); test1(); test2(); test3(); test4(); } }