You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by pn...@apache.org on 2011/05/12 09:21:24 UTC
[Lucene.Net] svn commit: r1102186 - in /incubator/lucene.net/trunk: build/vs2010/test/
test/contrib/Regex/ test/contrib/Regex/Properties/
Author: pnasser
Date: Thu May 12 07:21:23 2011
New Revision: 1102186
URL: http://svn.apache.org/viewvc?rev=1102186&view=rev
Log:
LUCENENET-371 Unit test for Search.Regex port (trunk)
Added:
incubator/lucene.net/trunk/test/contrib/Regex/
incubator/lucene.net/trunk/test/contrib/Regex/Contrib.Regex.Test.csproj
incubator/lucene.net/trunk/test/contrib/Regex/Properties/
incubator/lucene.net/trunk/test/contrib/Regex/Properties/AssemblyInfo.cs
incubator/lucene.net/trunk/test/contrib/Regex/TestRegexpQuery.cs
Modified:
incubator/lucene.net/trunk/build/vs2010/test/Contrib.All.Test.sln
Modified: incubator/lucene.net/trunk/build/vs2010/test/Contrib.All.Test.sln
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/build/vs2010/test/Contrib.All.Test.sln?rev=1102186&r1=1102185&r2=1102186&view=diff
==============================================================================
--- incubator/lucene.net/trunk/build/vs2010/test/Contrib.All.Test.sln (original)
+++ incubator/lucene.net/trunk/build/vs2010/test/Contrib.All.Test.sln Thu May 12 07:21:23 2011
@@ -1,6 +1,6 @@

Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C# Express 2010
+# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net", "..\..\..\src\core\Lucene.Net.csproj", "{5D4AD9BE-1FFB-41AB-9943-25737971BF57}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Core", "..\..\..\src\contrib\Core\Contrib.Core.csproj", "{FEF899EB-610C-4D3C-A556-A01F56F4AFE0}"
@@ -39,6 +39,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.Common", "..\..\..\src\demo\Demo.Common\Demo.Common.csproj", "{F04CA2F4-E182-46A8-B914-F46AF5319E83}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex.Test", "..\..\..\test\contrib\Regex\Contrib.Regex.Test.csproj", "{F1875552-0E59-46AA-976E-6183733FD2AB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contrib.Regex", "..\..\..\src\contrib\Regex\Contrib.Regex.csproj", "{A26BD3B7-DF90-43B4-99E2-6A617CDE1579}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -121,6 +125,14 @@ Global
{F04CA2F4-E182-46A8-B914-F46AF5319E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F04CA2F4-E182-46A8-B914-F46AF5319E83}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F1875552-0E59-46AA-976E-6183733FD2AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F1875552-0E59-46AA-976E-6183733FD2AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F1875552-0E59-46AA-976E-6183733FD2AB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A26BD3B7-DF90-43B4-99E2-6A617CDE1579}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Added: incubator/lucene.net/trunk/test/contrib/Regex/Contrib.Regex.Test.csproj
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/contrib/Regex/Contrib.Regex.Test.csproj?rev=1102186&view=auto
==============================================================================
--- incubator/lucene.net/trunk/test/contrib/Regex/Contrib.Regex.Test.csproj (added)
+++ incubator/lucene.net/trunk/test/contrib/Regex/Contrib.Regex.Test.csproj Thu May 12 07:21:23 2011
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.30703</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{F1875552-0E59-46AA-976E-6183733FD2AB}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Contrib.Regex.Test</RootNamespace>
+ <AssemblyName>Contrib.Regex.Test</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\..\..\bin\contrib\Regex\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="TestRegexpQuery.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\src\contrib\Regex\Contrib.Regex.csproj">
+ <Project>{A26BD3B7-DF90-43B4-99E2-6A617CDE1579}</Project>
+ <Name>Contrib.Regex</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\src\core\Lucene.Net.csproj">
+ <Project>{5D4AD9BE-1FFB-41AB-9943-25737971BF57}</Project>
+ <Name>Lucene.Net</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
Added: incubator/lucene.net/trunk/test/contrib/Regex/Properties/AssemblyInfo.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/contrib/Regex/Properties/AssemblyInfo.cs?rev=1102186&view=auto
==============================================================================
--- incubator/lucene.net/trunk/test/contrib/Regex/Properties/AssemblyInfo.cs (added)
+++ incubator/lucene.net/trunk/test/contrib/Regex/Properties/AssemblyInfo.cs Thu May 12 07:21:23 2011
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Lucene.Net.Contrib.Spatial")]
+[assembly: AssemblyDescription("The Apache Software Foundation Lucene.Net a full-text search engine library")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("The Apache Software Foundation")]
+[assembly: AssemblyProduct("Lucene.Net.Contrib.Regex.Text")]
+[assembly: AssemblyCopyright("Copyright 2009 - 2011 The Apache Software Foundation")]
+[assembly: AssemblyTrademark("Copyright 2009 - 2011 The Apache Software Foundation")]
+[assembly: AssemblyDefaultAlias("Lucene.Net.Regex")]
+[assembly: AssemblyCulture("")]
+
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("aec606a7-af40-4946-9448-f048fae90fa2")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("2.9.4")]
+[assembly: AssemblyFileVersion("2.9.4")]
Added: incubator/lucene.net/trunk/test/contrib/Regex/TestRegexpQuery.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/contrib/Regex/TestRegexpQuery.cs?rev=1102186&view=auto
==============================================================================
--- incubator/lucene.net/trunk/test/contrib/Regex/TestRegexpQuery.cs (added)
+++ incubator/lucene.net/trunk/test/contrib/Regex/TestRegexpQuery.cs Thu May 12 07:21:23 2011
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+using Lucene.Net.Analysis;
+using Lucene.Net.Documents;
+using Lucene.Net.Index;
+using Lucene.Net.Search;
+using Lucene.Net.Search.Regex;
+using Lucene.Net.Store;
+using Lucene.Net.Util;
+using NUnit.Framework;
+
+
+namespace Lucene.Net.Search.Regex
+{
+ /// <summary>
+ /// See http://svn.eu.apache.org/repos/asf/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpQuery.java
+ /// </summary>
+ [TestFixture]
+ public class TestRegexpQuery : LuceneTestCase
+ {
+ private IndexSearcher _searcher;
+ private const string FIELDNAME = "field";
+
+ public override void SetUp()
+ {
+ base.SetUp();
+
+ RAMDirectory directory = new RAMDirectory();
+ IndexWriter writer = new IndexWriter(directory, new SimpleAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED);
+
+ Document doc = new Document();
+ doc.Add(new Field(FIELDNAME, "the quick brown fox jumps over the lazy crazy pretty dog",
+ Field.Store.NO, Field.Index.ANALYZED));
+ writer.AddDocument(doc);
+ writer.Optimize();
+ writer.Close();
+ _searcher = new IndexSearcher(directory, true);
+ }
+
+ public override void TearDown()
+ {
+ _searcher.Close();
+ base.TearDown();
+ }
+
+ private static Term NewTerm(string sValue)
+ {
+ return new Term(FIELDNAME, sValue);
+ }
+
+ private int GetRegexQueryHitsCount(string sRegex)
+ {
+ RegexQuery query = new RegexQuery(NewTerm(sRegex));
+ return _searcher.Search(query, 5).totalHits;
+ }
+
+ [Test]
+ public void TestLiterals()
+ {
+ Assert.AreEqual(0, GetRegexQueryHitsCount(@"nothing"));
+
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"brown"));
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"ver"));
+
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"the"));
+ }
+
+ [Test]
+ public void TestExpressions()
+ {
+ // wildcards
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"j.mps"));
+
+ // repetitions
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"dogs?"));
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"pret+y"));
+
+ // classes
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"q.[aeiou]c.*"));
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"br?own?"));
+ Assert.AreEqual(0, GetRegexQueryHitsCount(@"z.[aeiou]c.*"));
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"c?[rl]azy"));
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"\bc?[rl]azy\b"));
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"c[^lmn]azy"));
+ Assert.AreEqual(0, GetRegexQueryHitsCount(@"c[^r]azy"));
+
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"\p{L}+"));
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"\p{L}{6,}"));
+ Assert.AreEqual(0, GetRegexQueryHitsCount(@"\p{L}{7,}"));
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"\p{L}{6,7}"));
+ Assert.AreEqual(0, GetRegexQueryHitsCount(@"\p{L}{7,9}"));
+
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"\D+"));
+ Assert.AreEqual(0, GetRegexQueryHitsCount(@"\d+"));
+
+ // position
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"^q"));
+ Assert.AreEqual(0, GetRegexQueryHitsCount(@"q$"));
+
+ // alternatives
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"brown|red"));
+ Assert.AreEqual(0, GetRegexQueryHitsCount(@"yellow|red"));
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"(l|cr)azy"));
+
+ // lookaround
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"\b\w+(?=zy)"));
+ Assert.AreEqual(0, GetRegexQueryHitsCount(@"\b\w+(?=zu)"));
+
+ Assert.AreEqual(0, GetRegexQueryHitsCount(@"\b\w*q[^u]\w*\b"));
+ Assert.AreEqual(1, GetRegexQueryHitsCount(@"\b\w*qu\w*\b"));
+ }
+ }
+
+}