public Aline(SegmentPool segmentPool, IEnumerable<SymbolicFeature> relevantVowelFeatures, IEnumerable<SymbolicFeature> relevantConsFeatures, IDictionary<SymbolicFeature, int> featureWeights, IDictionary<FeatureSymbol, int> valueMetrics, AlineSettings settings) : base(settings) { _settings = settings; _scorer = new AlineScorer(segmentPool, relevantVowelFeatures, relevantConsFeatures, featureWeights, valueMetrics, settings.ContextualSoundClasses, settings.SoundChangeScoringEnabled, settings.SyllablePositionCostEnabled); }
public void Delta_VowelAndConsonant_ReturnsCorrectDelta() { AlineScorer scorer = CreateScorer(false, false); var fs1 = FeatureStruct.New(_featSys).Symbol(CogFeatureSystem.VowelType).Symbol("close").Symbol("front").Symbol("round+").Symbol("voice+").Symbol("velar").Symbol("close-vowel").Value; var fs2 = FeatureStruct.New(_featSys).Symbol(CogFeatureSystem.ConsonantType).Symbol("velar").Symbol("stop").Symbol("voice+").Value; Assert.That(scorer.Delta(fs1, fs2), Is.EqualTo(3500)); }
public void Delta_SameVowels_ReturnsZero() { AlineScorer scorer = CreateScorer(false, false); var fs1 = FeatureStruct.New(_featSys).Symbol(CogFeatureSystem.VowelType).Symbol("close").Symbol("front").Symbol("round+").Symbol("voice+").Symbol("velar").Symbol("close-vowel").Value; var fs2 = FeatureStruct.New(_featSys).Symbol(CogFeatureSystem.VowelType).Symbol("close").Symbol("front").Symbol("round+").Symbol("voice+").Symbol("velar").Symbol("close-vowel").Value; Assert.That(scorer.Delta(fs1, fs2), Is.EqualTo(0)); }
public void Delta_ConsonantClustersDifferByOneFeature_ReturnsCorrectDelta() { AlineScorer scorer = CreateScorer(false, false); var fs1 = FeatureStruct.New(_featSys).Symbol(CogFeatureSystem.ConsonantType).Symbol("bilabial", "alveolar").Symbol("stop", "trill").Symbol("voice-").Value; var fs2 = FeatureStruct.New(_featSys).Symbol(CogFeatureSystem.ConsonantType).Symbol("bilabial", "palatal").Symbol("stop", "trill").Symbol("voice-").Value; Assert.That(scorer.Delta(fs1, fs2), Is.EqualTo(600)); }
public void Delta_SameConsonantClusters_ReturnsZero() { AlineScorer scorer = CreateScorer(false, false); var fs1 = FeatureStruct.New(_featSys).Symbol(CogFeatureSystem.ConsonantType).Symbol("bilabial", "alveolar").Symbol("stop", "trill").Symbol("voice+").Value; var fs2 = FeatureStruct.New(_featSys).Symbol(CogFeatureSystem.ConsonantType).Symbol("bilabial", "alveolar").Symbol("stop", "trill").Symbol("voice+").Value; Assert.That(scorer.Delta(fs1, fs2), Is.EqualTo(0)); }
public void Delta_ConsonantsDifferByTwoFeatures_ReturnsCorrectDelta() { AlineScorer scorer = CreateScorer(false, false); var fs1 = FeatureStruct.New(_featSys).Symbol(CogFeatureSystem.ConsonantType).Symbol("bilabial").Symbol("stop").Symbol("voice+").Value; var fs2 = FeatureStruct.New(_featSys).Symbol(CogFeatureSystem.ConsonantType).Symbol("labiodental").Symbol("fricative").Symbol("voice+").Value; Assert.That(scorer.Delta(fs1, fs2), Is.EqualTo(900)); }
public void GetMaxScore2_SoundChangeScoringDisabled_ReturnsCorrectScore() { AlineScorer scorer = CreateScorer(false, false); Assert.That(scorer.GetMaxScore2(_word1, _word2, _word2.Shape.First), Is.EqualTo(3500)); }
public void GetMaxScore1_SoundChangeScoringEnabled_ReturnsCorrectScore() { AlineScorer scorer = CreateScorer(true, false); Assert.That(scorer.GetMaxScore1(_word1, _word1.Shape.First, _word2), Is.EqualTo(4300)); }
public void GetSubstitutionScore_SyllablePositionCostDisabled_ReturnsCorrectScore() { AlineScorer scorer = CreateScorer(false, false); Assert.That(scorer.GetSubstitutionScore(_word1, _word1.Shape.First, _word2, _word2.Shape.Last), Is.EqualTo(-200)); }
public void GetSubstitutionScore_SoundChangeScoringDisabled_ReturnsCorrectScore() { AlineScorer scorer = CreateScorer(false, false); Assert.That(scorer.GetSubstitutionScore(_word1, _word1.Shape.First, _word2, _word2.Shape.First), Is.EqualTo(600)); }