/****************************************************************************** * Copyright (C) 2015 Fabio Zadrozny and others * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Fabio Zadrozny <fabiofz@gmail.com> - initial API and implementation ******************************************************************************/ package com.python.pydev.analysis.search_index; import org.python.pydev.shared_core.string.StringMatcher; import org.python.pydev.shared_ui.search.StringMatcherWithIndexSemantics; import org.python.pydev.shared_ui.search.StringMatcherWithIndexSemantics.Position; import junit.framework.TestCase; public class StringMatcherWithIndexSemanticsTest extends TestCase { public void testStringMatcherWithIndexSemantics() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("a", true, true); Position find = matcher.find("a", 0); assertEquals(find.start, 0); assertEquals(find.end, 1); } public void testStringMatcher() throws Exception { StringMatcher matcher = new StringMatcher("a", true, false); StringMatcher.Position find = matcher.find("a", 0, 1); assertEquals(find.getStart(), 0); assertEquals(find.getEnd(), 1); } public void testStringMatcherWithIndexSemantics2() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("ab", true, true); Position find = matcher.find("ab", 0); assertEquals(find.start, 0); assertEquals(find.end, 2); } public void testStringMatcher2() throws Exception { StringMatcher matcher = new StringMatcher("ab", true, false); StringMatcher.Position find = matcher.find("ab", 0, 2); assertEquals(find.getStart(), 0); assertEquals(find.getEnd(), 2); } public void testStringMatcherWithIndexSemantics3() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("*ab*", true, true); Position find = matcher.find("ab", 0); assertEquals(find.start, 0); assertEquals(find.end, 2); } public void testStringMatcherWithIndexSemantics3a() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("ab", true, true); Position find = matcher.find("aab", 0); assertNull(find); } public void testStringMatcher3() throws Exception { StringMatcher matcher = new StringMatcher("*ab*", true, false); StringMatcher.Position find = matcher.find("ab", 0, 2); assertEquals(find.getStart(), 0); assertEquals(find.getEnd(), 2); } public void testStringMatcher4() throws Exception { StringMatcher matcher = new StringMatcher("\\*ab*", true, false); StringMatcher.Position find = matcher.find("*ab", 0, 3); assertEquals(find.getStart(), 0); assertEquals(find.getEnd(), 3); } public void testStringMatcher4a() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("\\*ab*", true, true); StringMatcherWithIndexSemantics.Position find = matcher.find("*ab", 0); assertEquals(find.getStart(), 0); assertEquals(find.getEnd(), 3); } public void testStringMatcher4ab() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("\\?ab*", true, true); StringMatcherWithIndexSemantics.Position find = matcher.find("?ab", 0); assertEquals(find.getStart(), 0); assertEquals(find.getEnd(), 3); } public void testStringMatcher5a() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("\\*ab\\*", true, true); StringMatcherWithIndexSemantics.Position find = matcher.find("*ab*", 0); assertEquals(find.getStart(), 0); assertEquals(find.getEnd(), 4); } public void testStringMatcher5b() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("*ab.", true, true); StringMatcherWithIndexSemantics.Position find = matcher.find("ab.", 0); assertEquals(find.getStart(), 0); assertEquals(find.getEnd(), 3); } public void testStringMatcherMatch() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("*ab.", true, true); assertTrue(matcher.match("ab.")); assertTrue(matcher.match("cab.")); assertFalse(matcher.match("cab.x")); } public void testStringMatcherMatch2() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("*ab.*", true, true); assertTrue(matcher.match("ab.")); assertTrue(matcher.match("cab.")); assertTrue(matcher.match("cab.x")); } public void testStringMatcherMatch3() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("ab.*", true, true); assertTrue(matcher.match("ab.")); assertFalse(matcher.match("cab.")); assertFalse(matcher.match("cab.x")); assertTrue(matcher.match("ab.x")); } public void testStringMatcherMatch4() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("ab.", true, true); assertTrue(matcher.match("ab.")); assertFalse(matcher.match("cab.")); assertFalse(matcher.match("cab.x")); assertFalse(matcher.match("ab.x")); } public void testStringMatcherNotWholeWord() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("ab", true, false); assertTrue(matcher.match("cabx")); } public void testStringMatcherNotWholeWord2() throws Exception { StringMatcherWithIndexSemantics matcher = new StringMatcherWithIndexSemantics("**ab**", true, false); assertTrue(matcher.match("cabx")); } }