Lucene.Net.Tests.Analysis.Common.Analysis.Core.TestRandomChains: Added reusable AnonymousProducer class and made new registration for WordDelimiterFlags
Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/07ab6691 Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/07ab6691 Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/07ab6691 Branch: refs/heads/api-work Commit: 07ab669176ce58d6a4f29e91db5446ac6762f473 Parents: 7c29325 Author: Shad Storhaug <[email protected]> Authored: Fri Mar 3 15:39:54 2017 +0700 Committer: Shad Storhaug <[email protected]> Committed: Sun Mar 5 17:08:34 2017 +0700 ---------------------------------------------------------------------- .../Analysis/Core/TestRandomChains.cs | 21 ++++++++++++++++++++ 1 file changed, 21 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucenenet/blob/07ab6691/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestRandomChains.cs ---------------------------------------------------------------------- diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestRandomChains.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestRandomChains.cs index 2607c19..3e6bc48 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestRandomChains.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestRandomChains.cs @@ -306,6 +306,10 @@ namespace Lucene.Net.Analysis.Core { typeof(CharArrayMap<string>), new StringCharArrayMapArgProducer() }, { typeof(StemmerOverrideFilter.StemmerOverrideMap), new StemmerOverrideMapArgProducer() }, { typeof(SynonymMap), new SynonymMapArgProducer() }, + { typeof(WordDelimiterFlags), new AnonymousProducer((random) => { + int max = Enum.GetValues(typeof(WordDelimiterFlags)).Cast<int>().Sum(); + return (WordDelimiterFlags)random.Next(0, max + 1); + }) }, // WordDelimiterFilter }; private class IntArgProducer : IArgProducer @@ -319,6 +323,23 @@ namespace Lucene.Net.Analysis.Core } } + private class AnonymousProducer : IArgProducer + { + private readonly Func<Random, object> create; + + public AnonymousProducer(Func<Random, object> create) + { + if (create == null) + throw new ArgumentNullException("create"); + this.create = create; + } + + public object Create(Random random) + { + return create(random); + } + } + private class CharArgProducer : IArgProducer { public object Create(Random random)
