diff --git a/src/SIL.Machine/Corpora/CorporaUtils.cs b/src/SIL.Machine/Corpora/CorporaUtils.cs index a8a48473..928b3e2b 100644 --- a/src/SIL.Machine/Corpora/CorporaUtils.cs +++ b/src/SIL.Machine/Corpora/CorporaUtils.cs @@ -84,8 +84,15 @@ public static string MergeVerseRanges(string verse1, string verse2) } else { - foreach (string filePattern in filePatternArray) + for (int i = 0; i < filePatternArray.Length; i++) { + string filePattern = filePatternArray[i]; + if (File.Exists(filePattern)) + { + yield return (i.ToString(CultureInfo.InvariantCulture), filePattern); + continue; + } + if ( !filePattern.Contains("*") && !filePattern.Contains("?") @@ -126,14 +133,14 @@ public static string MergeVerseRanges(string verse1, string verse2) if (match.Success) { var sb = new StringBuilder(); - for (int i = 1; i < match.Groups.Count; i++) + for (int j = 1; j < match.Groups.Count; j++) { - if (!match.Groups[i].Success) + if (!match.Groups[j].Success) continue; if (sb.Length > 0) sb.Append("-"); - sb.Append(match.Groups[i].Value); + sb.Append(match.Groups[j].Value); } if (sb.Length > 0) id = sb.ToString(); diff --git a/tests/SIL.Machine.Tests/Corpora/TextFileTextCorpusTests.cs b/tests/SIL.Machine.Tests/Corpora/TextFileTextCorpusTests.cs index 8ab19051..a019ee95 100644 --- a/tests/SIL.Machine.Tests/Corpora/TextFileTextCorpusTests.cs +++ b/tests/SIL.Machine.Tests/Corpora/TextFileTextCorpusTests.cs @@ -19,6 +19,18 @@ public void Folder() Assert.That(corpus.Texts.Select(t => t.Id), Is.EquivalentTo(new[] { "Test1", "Test2", "Test3" })); } + [Test] + public void MultipleFiles() + { + var corpus = new TextFileTextCorpus( + Path.Combine(CorporaTestHelpers.TextTestProjectPath, "Test1.txt"), + Path.Combine(CorporaTestHelpers.TextTestProjectPath, "Test2.txt"), + Path.Combine(CorporaTestHelpers.TextTestProjectPath, "Test3.txt") + ); + + Assert.That(corpus.Texts.Select(t => t.Id), Is.EquivalentTo(new[] { "0", "1", "2" })); + } + [Test] public void SingleFile() {