SIL.Cog.Application.Tests.ViewModels.MultipleWordAlignmentViewModelTests.Words C# (CSharp) Méthode

Words() private méthode

private Words ( ) : void
Résultat void
        public void Words()
        {
            DispatcherHelper.Initialize();
            var segmentPool = new SegmentPool();
            var projectService = Substitute.For<IProjectService>();
            var busyService = Substitute.For<IBusyService>();
            var exportService = Substitute.For<IExportService>();
            var dialogService = Substitute.For<IDialogService>();
            var analysisService = new AnalysisService(_spanFactory, segmentPool, projectService, dialogService, busyService);

            var alignment = new MultipleWordAlignmentViewModel(projectService, busyService, exportService, analysisService);

            var project = TestHelpers.GetTestProject(_spanFactory, segmentPool);
            project.Meanings.AddRange(new[] {new Meaning("gloss1", "cat1"), new Meaning("gloss2", "cat2"), new Meaning("gloss3", "cat3")});
            project.Varieties.AddRange(new[] {new Variety("variety1"), new Variety("variety2"), new Variety("variety3")});
            project.Varieties[0].Words.AddRange(new[] {new Word("hɛ.loʊ", project.Meanings[0]), new Word("gʊd", project.Meanings[1]), new Word("bæd", project.Meanings[2])});
            project.Varieties[1].Words.AddRange(new[] {new Word("hɛlp", project.Meanings[0]), new Word("gu.gəl", project.Meanings[1]), new Word("gu.fi", project.Meanings[2])});
            project.Varieties[2].Words.AddRange(new[] {new Word("wɜrd", project.Meanings[0]), new Word("kɑr", project.Meanings[1]), new Word("fʊt.bɔl", project.Meanings[2])});
            projectService.Project.Returns(project);
            analysisService.SegmentAll();

            var varietyPairGenerator = new VarietyPairGenerator();
            varietyPairGenerator.Process(project);
            var wordPairGenerator = new SimpleWordPairGenerator(segmentPool, project, 0.3, ComponentIdentifiers.PrimaryWordAligner);
            foreach (VarietyPair vp in project.VarietyPairs)
            {
                wordPairGenerator.Process(vp);
                foreach (WordPair wp in vp.WordPairs)
                {
                    wp.PredictedCognacy = true;
                    wp.PredictedCognacyScore = 1.0;
                }
                vp.CognateSoundCorrespondenceFrequencyDistribution = new ConditionalFrequencyDistribution<SoundContext, Ngram<Segment>>();
                vp.CognateSoundCorrespondenceProbabilityDistribution = new ConditionalProbabilityDistribution<SoundContext, Ngram<Segment>>(vp.CognateSoundCorrespondenceFrequencyDistribution, (sc, fd) => new MaxLikelihoodProbabilityDistribution<Ngram<Segment>>(fd));
            }
            projectService.AreAllVarietiesCompared.Returns(true);
            projectService.ProjectOpened += Raise.Event();

            Assert.That(alignment.SelectedMeaning, Is.Null);
            Assert.That(alignment.Words, Is.Empty);

            alignment.MeaningsView = new ListCollectionView(alignment.Meanings);
            alignment.WordsView = new ListCollectionView(alignment.Words);

            Assert.That(alignment.WordsView.Cast<MultipleWordAlignmentWordViewModel>().Select(w => w.StrRep), Is.EqualTo(new[] {"hɛ.loʊ", "hɛlp", "wɜrd"}));
            Assert.That(alignment.ColumnCount, Is.EqualTo(4));

            alignment.SelectedMeaning = alignment.Meanings[1];

            Assert.That(alignment.WordsView.Cast<MultipleWordAlignmentWordViewModel>().Select(w => w.StrRep), Is.EqualTo(new[] {"gu.gəl", "gʊd", "kɑr"}));
            Assert.That(alignment.ColumnCount, Is.EqualTo(5));

            project.Varieties.RemoveAt(project.Varieties.Count - 1);
            Messenger.Default.Send(new DomainModelChangedMessage(true));

            Messenger.Default.Send(new PerformingComparisonMessage());
            foreach (VarietyPair vp in project.VarietyPairs)
            {
                wordPairGenerator.Process(vp);
                foreach (WordPair wp in vp.WordPairs)
                {
                    wp.PredictedCognacy = true;
                    wp.PredictedCognacyScore = 1.0;
                }
                vp.CognateSoundCorrespondenceFrequencyDistribution = new ConditionalFrequencyDistribution<SoundContext, Ngram<Segment>>();
                vp.CognateSoundCorrespondenceProbabilityDistribution = new ConditionalProbabilityDistribution<SoundContext, Ngram<Segment>>(vp.CognateSoundCorrespondenceFrequencyDistribution, (sc, fd) => new MaxLikelihoodProbabilityDistribution<Ngram<Segment>>(fd));
            }
            Messenger.Default.Send(new ComparisonPerformedMessage());

            Assert.That(alignment.WordsView.Cast<MultipleWordAlignmentWordViewModel>().Select(w => w.StrRep), Is.EqualTo(new[] {"gu.gəl", "gʊd"}));
            Assert.That(alignment.ColumnCount, Is.EqualTo(5));

            project.Varieties.RemoveAt(project.Varieties.Count - 1);

            Messenger.Default.Send(new PerformingComparisonMessage());
            foreach (VarietyPair vp in project.VarietyPairs)
            {
                wordPairGenerator.Process(vp);
                foreach (WordPair wp in vp.WordPairs)
                    wp.PredictedCognacy = true;
                vp.CognateSoundCorrespondenceFrequencyDistribution = new ConditionalFrequencyDistribution<SoundContext, Ngram<Segment>>();
                vp.CognateSoundCorrespondenceProbabilityDistribution = new ConditionalProbabilityDistribution<SoundContext, Ngram<Segment>>(vp.CognateSoundCorrespondenceFrequencyDistribution, (sc, fd) => new MaxLikelihoodProbabilityDistribution<Ngram<Segment>>(fd));
            }
            Messenger.Default.Send(new ComparisonPerformedMessage());

            Assert.That(alignment.WordsView, Is.Empty);
        }
MultipleWordAlignmentViewModelTests