You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2017/05/05 20:55:58 UTC

[3/9] lucenenet git commit: Renamed Lucene.Net.Icu > Lucene.Net.ICU, Lucene.Net.Tests.Icu > Lucene.Net.Tests.ICU

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3c077fb1/src/Lucene.Net.Tests.ICU/Support/TestApiConsistency.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests.ICU/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.ICU/Support/TestApiConsistency.cs
new file mode 100644
index 0000000..3d28be6
--- /dev/null
+++ b/src/Lucene.Net.Tests.ICU/Support/TestApiConsistency.cs
@@ -0,0 +1,147 @@
+/*
+ *
+ * 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.Attributes;
+using NUnit.Framework;
+using System;
+
+namespace Lucene.Net.Support
+{
+    /// <summary>
+    /// LUCENENET specific tests for ensuring API conventions are followed
+    /// </summary>
+    public class TestApiConsistency : ApiScanTestBase
+    {
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestProtectedFieldNames(Type typeFromTargetAssembly)
+        {
+            base.TestProtectedFieldNames(typeFromTargetAssembly);
+        }
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestPrivateFieldNames(Type typeFromTargetAssembly)
+        {
+            base.TestPrivateFieldNames(typeFromTargetAssembly);
+        }
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestPublicFields(Type typeFromTargetAssembly)
+        {
+            base.TestPublicFields(typeFromTargetAssembly);
+        }
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestMethodParameterNames(Type typeFromTargetAssembly)
+        {
+            base.TestMethodParameterNames(typeFromTargetAssembly);
+        }
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestInterfaceNames(Type typeFromTargetAssembly)
+        {
+            base.TestInterfaceNames(typeFromTargetAssembly);
+        }
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestClassNames(Type typeFromTargetAssembly)
+        {
+            base.TestClassNames(typeFromTargetAssembly);
+        }
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestForPropertiesWithNoGetter(Type typeFromTargetAssembly)
+        {
+            base.TestForPropertiesWithNoGetter(typeFromTargetAssembly);
+        }
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestForPropertiesThatReturnArray(Type typeFromTargetAssembly)
+        {
+            base.TestForPropertiesThatReturnArray(typeFromTargetAssembly);
+        }
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestForMethodsThatReturnWritableArray(Type typeFromTargetAssembly)
+        {
+            base.TestForMethodsThatReturnWritableArray(typeFromTargetAssembly);
+        }
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestForPublicMembersContainingComparer(Type typeFromTargetAssembly)
+        {
+            base.TestForPublicMembersContainingComparer(typeFromTargetAssembly);
+        }
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestForPublicMembersNamedSize(Type typeFromTargetAssembly)
+        {
+            base.TestForPublicMembersNamedSize(typeFromTargetAssembly);
+        }
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestForPublicMembersContainingNonNetNumeric(Type typeFromTargetAssembly)
+        {
+            base.TestForPublicMembersContainingNonNetNumeric(typeFromTargetAssembly);
+        }
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestForTypesContainingNonNetNumeric(Type typeFromTargetAssembly)
+        {
+            base.TestForTypesContainingNonNetNumeric(typeFromTargetAssembly);
+        }
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestForPublicMembersWithNullableEnum(Type typeFromTargetAssembly)
+        {
+            base.TestForPublicMembersWithNullableEnum(typeFromTargetAssembly);
+        }
+
+        // LUCENENET NOTE: This test is only for identifying members who were changed from
+        // ICollection, IList or ISet to IEnumerable during the port (that should be changed back)
+        //[Test, LuceneNetSpecific]
+        //[TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        //public override void TestForMembersAcceptingOrReturningIEnumerable(Type typeFromTargetAssembly)
+        //{
+        //    base.TestForMembersAcceptingOrReturningIEnumerable(typeFromTargetAssembly);
+        //}
+
+        [Test, LuceneNetSpecific]
+        [TestCase(typeof(Lucene.Net.Support.BreakIterator))]
+        public override void TestForMembersAcceptingOrReturningListOrDictionary(Type typeFromTargetAssembly)
+        {
+            base.TestForMembersAcceptingOrReturningListOrDictionary(typeFromTargetAssembly);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3c077fb1/src/Lucene.Net.Tests.ICU/Support/TestExceptionSerialization.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests.ICU/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.ICU/Support/TestExceptionSerialization.cs
new file mode 100644
index 0000000..ad84905
--- /dev/null
+++ b/src/Lucene.Net.Tests.ICU/Support/TestExceptionSerialization.cs
@@ -0,0 +1,54 @@
+#if FEATURE_SERIALIZABLE
+using Lucene.Net.Attributes;
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace Lucene.Net.Support
+{
+    /*
+     * 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.
+     */
+
+    [TestFixture]
+    public class TestExceptionSerialization : ExceptionSerializationTestBase
+    {
+        public static IEnumerable<object> ExceptionTestData
+        {
+            get
+            {
+                var exceptionTypes = typeof(Lucene.Net.Search.Highlight.DefaultEncoder).Assembly.GetTypes().Where(t => typeof(Exception).IsAssignableFrom(t)).Cast<object>();
+
+                // If the assembly has no exceptions, just provide Exception so the test will pass
+                if (!exceptionTypes.Any())
+                {
+                    return new Type[] { typeof(Exception) };
+                }
+
+                return exceptionTypes;
+            }
+        }
+
+        [Test, LuceneNetSpecific]
+        public void AllExceptionsInLuceneNamespaceCanSerialize([ValueSource("ExceptionTestData")]Type luceneException)
+        {
+            var instance = TryInstantiate(luceneException);
+            Assert.That(TypeCanSerialize(instance), string.Format("Unable to serialize {0}", luceneException.FullName));
+        }
+    }
+}
+#endif
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3c077fb1/src/Lucene.Net.Tests.ICU/Support/TestIcuBreakIterator.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests.ICU/Support/TestIcuBreakIterator.cs b/src/Lucene.Net.Tests.ICU/Support/TestIcuBreakIterator.cs
new file mode 100644
index 0000000..8653725
--- /dev/null
+++ b/src/Lucene.Net.Tests.ICU/Support/TestIcuBreakIterator.cs
@@ -0,0 +1,420 @@
+#if FEATURE_BREAKITERATOR
+using Lucene.Net.Util;
+using NUnit.Framework;
+using System;
+using System.Globalization;
+
+namespace Lucene.Net.Support
+{
+    /*
+	 * 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.
+	 */
+
+    public class TestIcuBreakIterator : LuceneTestCase
+    {
+        static readonly String TEXT =
+            "Apache Lucene(TM) is a high-performance, full-featured text search engine library written entirely in Java.";
+
+        static readonly String SENTENCE_TEXT =
+            "Apache Lucene(TM) is a high-performance, full-featured text search engine library written entirely in Java. " +
+            "It is a technology suitable for nearly any application that requires" +
+            "full-text search, especially cross-platform. Apache Lucene is an open source project available for free download. " +
+            "Lucene makes finding things easy. Lucene is powerful. Lucene is exciting. Lucene is cool. Where be Lucene now?";
+
+        private BreakIterator GetWordInstance(CultureInfo locale)
+        {
+            //return new WordBreakIterator(locale);
+            return new IcuBreakIterator(Icu.BreakIterator.UBreakIteratorType.WORD, locale) { EnableHacks = true };
+        }
+
+        private BreakIterator GetSentenceInstance(CultureInfo locale)
+        {
+            return new IcuBreakIterator(Icu.BreakIterator.UBreakIteratorType.SENTENCE, locale);
+        }
+
+        [Test]
+        public void TestWordIteration()
+        {
+            BreakIterator bi = GetWordInstance(CultureInfo.InvariantCulture);
+            bi.SetText(TEXT);
+
+            int temp;
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(0, temp);
+
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(6, temp);
+
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(6, temp);
+
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(7, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(7, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(13, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(13, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(14, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(16, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(17, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(17, temp);
+
+            temp = bi.Previous();
+            Console.WriteLine(temp);
+            assertEquals(16, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(16, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(17, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(17, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(18, temp);
+
+            temp = bi.Last();
+            Console.WriteLine(temp);
+            assertEquals(107, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(107, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(-1, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(107, temp);
+            temp = bi.Previous();
+            Console.WriteLine(temp);
+            assertEquals(106, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(106, temp);
+            temp = bi.Previous();
+            Console.WriteLine(temp);
+            assertEquals(102, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(102, temp);
+            temp = bi.Previous();
+            Console.WriteLine(temp);
+            assertEquals(101, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(101, temp);
+        }
+
+        [Test]
+        public void TestWordFollowing()
+        {
+            BreakIterator bi = GetWordInstance(CultureInfo.InvariantCulture);
+            bi.SetText(TEXT);
+
+            int temp;
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(0, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(6, temp);
+
+
+            temp = bi.Following(70);
+            Console.WriteLine(temp);
+            assertEquals(73, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(73, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(74, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(74, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(81, temp);
+            temp = bi.Following(107); // Test the final boundary
+            Console.WriteLine(temp);
+            assertEquals(-1, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(-1, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(107, temp);
+
+            temp = bi.Following(66); // Test exactly on a boundary position
+            Console.WriteLine(temp);
+            assertEquals(67, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(73, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(73, temp);
+
+            temp = bi.Following(0); // Test the first boundary
+            Console.WriteLine(temp);
+            assertEquals(6, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(7, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(7, temp);
+
+        }
+
+        [Test]
+        public void TestWordPreceding()
+        {
+            BreakIterator bi = GetWordInstance(CultureInfo.InvariantCulture);
+            bi.SetText(TEXT);
+
+            int temp;
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(0, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(6, temp);
+
+
+            temp = bi.Preceding(70);
+            Console.WriteLine(temp);
+            assertEquals(67, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(67, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(73, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(73, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(74, temp);
+            temp = bi.Preceding(107); // Test the final boundary
+            Console.WriteLine(temp);
+            assertEquals(106, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(107, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(107, temp);
+
+            temp = bi.Preceding(66); // Test exactly on a boundary position
+            Console.WriteLine(temp);
+            assertEquals(60, temp);
+            temp = bi.Previous();
+            Console.WriteLine(temp);
+            assertEquals(59, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(59, temp);
+
+            temp = bi.Preceding(0); // Test the first boundary
+            Console.WriteLine(temp);
+            assertEquals(-1, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(0, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(6, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(6, temp);
+
+        }
+
+        [Test]
+        public void TestWordNextWithInt()
+        {
+            BreakIterator bi = GetWordInstance(CultureInfo.InvariantCulture);
+            bi.SetText(TEXT);
+
+            int temp;
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(0, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(6, temp);
+
+
+            temp = bi.Next(10);
+            Console.WriteLine(temp);
+            assertEquals(23, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(23, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(39, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(39, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(40, temp);
+            temp = bi.Next(-8); // Test going backward
+            Console.WriteLine(temp);
+            assertEquals(16, temp); // Magically, this is correct (from position 28 back 8 places) in Java, even though its start position is wrong
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(17, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(17, temp);
+
+
+            temp = bi.Next(107); // Go past the last boundary
+            Console.WriteLine(temp);
+            assertEquals(-1, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(107, temp);
+            temp = bi.Next(-107); // Go past the first boundary
+            Console.WriteLine(temp);
+            assertEquals(-1, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(0, temp);
+
+        }
+
+        [Test]
+        public void TestSentenceIteration()
+        {
+            BreakIterator bi = GetSentenceInstance(CultureInfo.InvariantCulture);
+            bi.SetText(SENTENCE_TEXT);
+
+            int temp;
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(0, temp);
+
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(108, temp);
+
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(108, temp);
+
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(221, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(221, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(290, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(290, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(324, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(344, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(364, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(364, temp);
+
+            temp = bi.Previous();
+            Console.WriteLine(temp);
+            assertEquals(344, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(344, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(364, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(364, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(380, temp);
+
+            temp = bi.First();
+            Console.WriteLine(temp);
+            assertEquals(0, temp);
+
+            temp = bi.Last();
+            Console.WriteLine(temp);
+            assertEquals(400, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(400, temp);
+            temp = bi.Next();
+            Console.WriteLine(temp);
+            assertEquals(-1, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(400, temp);
+            temp = bi.Previous();
+            Console.WriteLine(temp);
+            assertEquals(380, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(380, temp);
+            temp = bi.Previous();
+            Console.WriteLine(temp);
+            assertEquals(364, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(364, temp);
+            temp = bi.Previous();
+            Console.WriteLine(temp);
+            assertEquals(344, temp);
+            temp = bi.Current;
+            Console.WriteLine(temp);
+            assertEquals(344, temp);
+        }
+    }
+}
+#endif
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3c077fb1/src/Lucene.Net.Tests.ICU/project.json
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests.ICU/project.json b/src/Lucene.Net.Tests.ICU/project.json
new file mode 100644
index 0000000..17a2db6
--- /dev/null
+++ b/src/Lucene.Net.Tests.ICU/project.json
@@ -0,0 +1,83 @@
+{
+  "version": "4.8.0",
+  "title": "Lucene.Net.Tests.ICU",
+  "buildOptions": {
+    "define": [ "FEATURE_BREAKITERATOR" ],
+    "compile": {
+      "includeFiles": [
+        "../CommonAssemblyInfo.cs",
+        "../Lucene.Net.Tests.Analysis.Common/Analysis/Th/TestThaiAnalyzer.cs",
+        "../Lucene.Net.Tests.Analysis.Common/Analysis/Th/TestThaiTokenizerFactory.cs",
+        "../Lucene.Net.Tests.Analysis.Common/Analysis/Th/TestThaiWordFilterFactory.cs",
+        "../Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayIterator.cs",
+        "../Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestSegmentingTokenizerBase.cs",
+        "../Lucene.Net.Tests.Highlighter/PostingsHighlight/TestMultiTermHighlighting.cs",
+        "../Lucene.Net.Tests.Highlighter/PostingsHighlight/TestPostingsHighlighter.cs",
+        "../Lucene.Net.Tests.Highlighter/PostingsHighlight/TestPostingsHighlighterRanking.cs",
+        "../Lucene.Net.Tests.Highlighter/PostingsHighlight/TestWholeBreakIterator.cs",
+        "../Lucene.Net.Tests.Highlighter/VectorHighlight/BreakIteratorBoundaryScannerTest.cs"
+      ]
+    },
+    "embed": {
+      "includeFiles": [
+        "Search/PostingsHighlight/CambridgeMA.utf8"
+      ]
+    }
+  },
+  "dependencies": {
+    "dotnet-test-nunit-teamcity": "3.4.0-beta-3",
+    "Lucene.Net": "4.8.0",
+    "Lucene.Net.Analysis.Common": "4.8.0",
+    "Lucene.Net.Highlighter": "4.8.0",
+    "Lucene.Net.ICU": "4.8.0",
+    "Lucene.Net.TestFramework": "4.8.0",
+    "Lucene.Net.Tests.Analysis.Common": "4.8.0",
+    "NUnit": "3.5.0"
+  },
+  "testRunner": "nunit-teamcity",
+  "frameworks": {
+    "netcoreapp1.0": {
+      "imports": "dnxcore50",
+      "buildOptions": {
+        "debugType": "portable",
+        "define": [ "NETSTANDARD" ],
+        "compile": {
+          "includeFiles": [
+            "../CommonAssemblyInfo.cs",
+            "../Lucene.Net.Tests.Analysis.Common/Analysis/Th/TestThaiAnalyzer.cs",
+            "../Lucene.Net.Tests.Analysis.Common/Analysis/Th/TestThaiTokenizerFactory.cs",
+            "../Lucene.Net.Tests.Analysis.Common/Analysis/Th/TestThaiWordFilterFactory.cs",
+            "../Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayIterator.cs",
+            "../Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestSegmentingTokenizerBase.cs",
+            "../Lucene.Net.Tests.Highlighter/PostingsHighlight/TestMultiTermHighlighting.cs",
+            "../Lucene.Net.Tests.Highlighter/PostingsHighlight/TestPostingsHighlighter.cs",
+            "../Lucene.Net.Tests.Highlighter/PostingsHighlight/TestPostingsHighlighterRanking.cs",
+            "../Lucene.Net.Tests.Highlighter/PostingsHighlight/TestWholeBreakIterator.cs",
+            "../Lucene.Net.Tests.Highlighter/VectorHighlight/BreakIteratorBoundaryScannerTest.cs"
+          ],
+          "excludeFiles": [
+            "Support/TestApiConsistency.cs"
+          ]
+        }
+      },
+      "dependencies": {
+        "Microsoft.NETCore.App": {
+          "type": "platform",
+          "version": "1.0.1"
+        },
+        "System.Xml.XmlDocument": "4.0.1"
+      }
+    },
+    "net451": {
+      "buildOptions": {
+        "debugType": "full",
+        "define": [ "FEATURE_SERIALIZABLE" ]
+      }
+    }
+  },
+
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {}
+  }
+}

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3c077fb1/src/Lucene.Net.Tests.Icu/Lucene.Net.Tests.Icu.csproj
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests.Icu/Lucene.Net.Tests.Icu.csproj b/src/Lucene.Net.Tests.Icu/Lucene.Net.Tests.Icu.csproj
deleted file mode 100644
index dfc14f8..0000000
--- a/src/Lucene.Net.Tests.Icu/Lucene.Net.Tests.Icu.csproj
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
- 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.
-
--->
-
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{D5AA1A22-1B28-4DF6-BFDA-02519A189839}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Lucene.Net</RootNamespace>
-    <AssemblyName>Lucene.Net.Tests.Icu</AssemblyName>
-    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\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>
-  <PropertyGroup>
-    <DefineConstants>$(DefineConstants);FEATURE_BREAKITERATOR;FEATURE_SERIALIZABLE</DefineConstants>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="..\Lucene.Net.Tests.Analysis.Common\Analysis\Th\TestThaiAnalyzer.cs">
-      <Link>Analysis\Th\TestThaiAnalyzer.cs</Link>
-    </Compile>
-    <Compile Include="..\Lucene.Net.Tests.Analysis.Common\Analysis\Th\TestThaiTokenizerFactory.cs">
-      <Link>Analysis\Th\TestThaiTokenizerFactory.cs</Link>
-    </Compile>
-    <Compile Include="..\Lucene.Net.Tests.Analysis.Common\Analysis\Th\TestThaiWordFilterFactory.cs">
-      <Link>Analysis\Th\TestThaiWordFilterFactory.cs</Link>
-    </Compile>
-    <Compile Include="..\Lucene.Net.Tests.Analysis.Common\Analysis\Util\TestCharArrayIterator.cs">
-      <Link>Analysis\Util\TestCharArrayIterator.cs</Link>
-    </Compile>
-    <Compile Include="..\Lucene.Net.Tests.Analysis.Common\Analysis\Util\TestSegmentingTokenizerBase.cs">
-      <Link>Analysis\Util\TestSegmentingTokenizerBase.cs</Link>
-    </Compile>
-    <Compile Include="..\Lucene.Net.Tests.Highlighter\PostingsHighlight\TestMultiTermHighlighting.cs">
-      <Link>Search\PostingsHighlight\TestMultiTermHighlighting.cs</Link>
-    </Compile>
-    <Compile Include="..\Lucene.Net.Tests.Highlighter\PostingsHighlight\TestPostingsHighlighter.cs">
-      <Link>Search\PostingsHighlight\TestPostingsHighlighter.cs</Link>
-    </Compile>
-    <Compile Include="..\Lucene.Net.Tests.Highlighter\PostingsHighlight\TestPostingsHighlighterRanking.cs">
-      <Link>Search\PostingsHighlight\TestPostingsHighlighterRanking.cs</Link>
-    </Compile>
-    <Compile Include="..\Lucene.Net.Tests.Highlighter\PostingsHighlight\TestWholeBreakIterator.cs">
-      <Link>Search\PostingsHighlight\TestWholeBreakIterator.cs</Link>
-    </Compile>
-    <Compile Include="..\Lucene.Net.Tests.Highlighter\VectorHighlight\BreakIteratorBoundaryScannerTest.cs">
-      <Link>Search\VectorHighlight\BreakIteratorBoundaryScannerTest.cs</Link>
-    </Compile>
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Support\TestApiConsistency.cs" />
-    <Compile Include="Support\TestExceptionSerialization.cs" />
-    <Compile Include="Support\TestIcuBreakIterator.cs" />
-    <Compile Include="..\CommonAssemblyInfo.cs">
-      <Link>Properties\CommonAssemblyInfo.cs</Link>
-    </Compile>
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Lucene.Net.Analysis.Common\Lucene.Net.Analysis.Common.csproj">
-      <Project>{4add0bbc-b900-4715-9526-d871de8eea64}</Project>
-      <Name>Lucene.Net.Analysis.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Lucene.Net.Highlighter\Lucene.Net.Highlighter.csproj">
-      <Project>{e9e769ea-8504-44bc-8dc9-ccf958765f8f}</Project>
-      <Name>Lucene.Net.Highlighter</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Lucene.Net.Icu\Lucene.Net.Icu.csproj">
-      <Project>{349cb7c9-7534-4e1d-9b0a-5521441af0ae}</Project>
-      <Name>Lucene.Net.Icu</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Lucene.Net.TestFramework\Lucene.Net.TestFramework.csproj">
-      <Project>{b2c0d749-ce34-4f62-a15e-00cb2ff5ddb3}</Project>
-      <Name>Lucene.Net.TestFramework</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Lucene.Net.Tests.Analysis.Common\Lucene.Net.Tests.Analysis.Common.csproj">
-      <Project>{c54fe8fa-7986-4c94-b872-d5bff7c6c74e}</Project>
-      <Name>Lucene.Net.Tests.Analysis.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Lucene.Net\Lucene.Net.csproj">
-      <Project>{5d4ad9be-1ffb-41ab-9943-25737971bf57}</Project>
-      <Name>Lucene.Net</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Lucene.Net.Tests.Icu.project.json" />
-    <EmbeddedResource Include="Search\PostingsHighlight\CambridgeMA.utf8" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </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>

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3c077fb1/src/Lucene.Net.Tests.Icu/Lucene.Net.Tests.Icu.project.json
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests.Icu/Lucene.Net.Tests.Icu.project.json b/src/Lucene.Net.Tests.Icu/Lucene.Net.Tests.Icu.project.json
deleted file mode 100644
index 2a96d5b..0000000
--- a/src/Lucene.Net.Tests.Icu/Lucene.Net.Tests.Icu.project.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "runtimes": {
-    "win": {}
-  },
-  "dependencies": {
-    "NUnit": "3.5.0",
-    "icu.net": "54.1.1-alpha"
-  },
-  "frameworks": {
-    "net451": {}
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3c077fb1/src/Lucene.Net.Tests.Icu/Lucene.Net.Tests.Icu.xproj
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests.Icu/Lucene.Net.Tests.Icu.xproj b/src/Lucene.Net.Tests.Icu/Lucene.Net.Tests.Icu.xproj
deleted file mode 100644
index 7663a09..0000000
--- a/src/Lucene.Net.Tests.Icu/Lucene.Net.Tests.Icu.xproj
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
- 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.
-
--->
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-  </PropertyGroup>
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>32fd3471-e862-4055-b969-79c12a656366</ProjectGuid>
-    <RootNamespace>Lucene.Net</RootNamespace>
-    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath>
-    <OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
-    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
-  </PropertyGroup>
-  <PropertyGroup>
-    <SchemaVersion>2.0</SchemaVersion>
-  </PropertyGroup>
-  <ItemGroup>
-    <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
-  </ItemGroup>
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
-</Project>

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3c077fb1/src/Lucene.Net.Tests.Icu/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests.Icu/Properties/AssemblyInfo.cs b/src/Lucene.Net.Tests.Icu/Properties/AssemblyInfo.cs
deleted file mode 100644
index b36eee1..0000000
--- a/src/Lucene.Net.Tests.Icu/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *
- * 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.Tests.Icu")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[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("d5aa1a22-1b28-4df6-bfda-02519a189839")]
-
-// NOTE: Version information is in CommonAssemblyInfo.cs