1 /*
2  *  Make.org Core API
3  *  Copyright (C) 2018 Make.org
4  *
5  * This program is free software: you can redistribute it and/or modify
6  *  it under the terms of the GNU Affero General Public License as
7  *  published by the Free Software Foundation, either version 3 of the
8  *  License, or (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU Affero General Public License for more details.
14  *
15  *  You should have received a copy of the GNU Affero General Public License
16  *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
17  *
18  */
19 
20 package org.make.api.proposal
21 
22 import enumeratum.{Enum, EnumEntry}
23 import grizzled.slf4j.Logging
24 import org.apache.commons.math3.distribution.BetaDistribution
25 import org.apache.commons.math3.random.{MersenneTwister, RandomGenerator}
26 import org.make.api.proposal.ProposalScorer.VotesCounter.{
27   SegmentVotesCounter,
28   SequenceVotesCounter,
29   VerifiedVotesVotesCounter
30 }
31 import org.make.api.proposal.ProposalScorer.Score
32 import org.make.core.proposal._
33 import org.make.core.proposal.VoteKey.{Agree, Disagree, Neutral}
34 import org.make.core.proposal.QualificationKey._
35 import org.make.core.proposal.Key._
36 import org.make.core.proposal.indexed.{SequencePool, Zone}
37 import org.make.core.sequence.SequenceConfiguration
38 import org.make.core.sequence.ExplorationSequenceConfiguration.SequenceThresholds
39 
40 final class ProposalScorer(val counts: VoteCounts, val verifiedCounts: VoteCounts, nonSequenceVotesWeight: Double) {
41 
42   private def tradeOff(generalScore: Double, specificScore: Double): Double =
43     nonSequenceVotesWeight * generalScore + (1 - nonSequenceVotesWeight) * specificScore
44 
45   private def individualScore(keyCount: Int, smoothing: Double, totalVotes: Int): Double =
46     Math.min((keyCount + smoothing) / (1 + totalVotes), 1)
47 
48   def score(keyCount: Int, keyVerifiedCount: Int, smoothing: Double): Double = {
49     tradeOff(
50       individualScore(keyVerifiedCount, smoothing, verifiedCounts.totalVotes),
51       individualScore(keyCount, smoothing, counts.totalVotes)
52     )
53   }
54 
55   private def confidence(keyCount: Int, smoothing: Double): Double = {
56     val specificVotesCount = counts.totalVotes
57     val specificVotes = individualScore(keyCount, smoothing, specificVotesCount)
58     ProposalScorer.confidenceInterval(specificVotes, specificVotesCount)
59   }
60 
61   private def keyScore[T <: Key: HasCount: HasSmoothing](key: T): Score = Score.forKey(this, key)
62 
63   lazy val agree: Score = keyScore(Agree)
64   lazy val disagree: Score = keyScore(Disagree)
65   lazy val neutral: Score = keyScore(Neutral)
66 
67   lazy val likeIt: Score = keyScore(LikeIt)
68   lazy val doable: Score = keyScore(Doable)
69   lazy val platitudeAgree: Score = keyScore(PlatitudeAgree)
70 
71   lazy val impossible: Score = keyScore(Impossible)
72   lazy val noWay: Score = keyScore(NoWay)
73   lazy val platitudeDisagree: Score = keyScore(PlatitudeDisagree)
74 
75   lazy val noOpinion: Score = keyScore(NoOpinion)
76   lazy val doNotCare: Score = keyScore(DoNotCare)
77   lazy val doNotUnderstand: Score = keyScore(DoNotUnderstand)
78 
79   lazy val platitude: Score = platitudeAgree + platitudeDisagree
80   lazy val topScore: Score = agree + likeIt + doable - noWay - impossible - platitude
81   lazy val controversy: Score = Score.min(agree, disagree) + Score.min(likeIt, noWay)
82   lazy val rejection: Score = disagree + noWay + impossible - likeIt - doable - platitude
83 
84   lazy val adhesion: Score = agree
85   lazy val greatness: Score = likeIt - noWay
86   lazy val realistic: Score = doable - impossible
87 
88   lazy val engagement: Score = greatness + realistic - platitude
89 
90   def zone(seqThreshold: SequenceThresholds): Zone =
91     zone(agree.score, disagree.score, neutral.score, seqThreshold)
92   def sampledZone(seqThreshold: SequenceThresholds): Zone =
93     zone(agree.sample, disagree.sample, neutral.sample, seqThreshold)
94 
95   /* Taken from the dial:
96   if (proposition['score_v2_adhesion'] >= .6) or \
97           (proposition['score_v2_neutral'] < .4 and proposition['score_v2_disagree'] < .15):
98       return 'consensus'
99   if (proposition['score_v2_disagree'] >= .6) or \
100           (proposition['score_v2_neutral'] < .4 and proposition['score_v2_adhesion'] < .15):
101       return 'rejection'
102   if proposition['score_v2_neutral'] >= .4:
103       return 'limbo'
104   return 'controversy'
105    */
106   private def zone(agree: Double, disagree: Double, neutral: Double, seqThreshold: SequenceThresholds): Zone = {
107     if (agree >= seqThreshold.strongOpinion.value || neutral < seqThreshold.neutralOpinion.value && disagree < seqThreshold.weakOpinion.value) {
108       Zone.Consensus
109     } else if (disagree >= seqThreshold.strongOpinion.value || (neutral < seqThreshold.neutralOpinion.value && agree < seqThreshold.weakOpinion.value)) {
110       Zone.Rejection
111     } else if (neutral >= seqThreshold.neutralOpinion.value) {
112       Zone.Limbo
113     } else {
114       Zone.Controversy
115     }
116   }
117 
118   def pool(configuration: SequenceConfiguration, status: ProposalStatus): SequencePool = {
119     val votesCount: Int = counts.totalVotes
120     val engagementRate: Double = engagement.lowerBound
121     val scoreRate: Double = topScore.lowerBound
122     val controversyRate: Double = controversy.lowerBound
123 
124     def isTestedFromScoreAndControversy: Boolean =
125       (configuration.testedProposalsScoreThreshold, configuration.testedProposalsControversyThreshold) match {
126         case (Some(scoreBase), Some(controversyBase)) => scoreRate >= scoreBase || controversyRate >= controversyBase
127         case (Some(scoreBase), _)                     => scoreRate >= scoreBase
128         case (_, Some(controversyBase))               => controversyRate >= controversyBase
129         case _                                        => true
130       }
131 
132     if (status == ProposalStatus.Accepted && votesCount < configuration.newProposalsVoteThreshold) {
133       SequencePool.New
134     } else if (status == ProposalStatus.Accepted &&
135                configuration.testedProposalsMaxVotesThreshold.forall(votesCount < _) &&
136                configuration.testedProposalsEngagementThreshold.forall(engagementRate > _) &&
137                isTestedFromScoreAndControversy) {
138       SequencePool.Tested
139     } else {
140       SequencePool.Excluded
141     }
142   }
143 }
144 
145 /**
146   * Define scores and the way to compute it.
147   *
148   * See https://gitlab.com/makeorg/data-science/make-data/-/blob/preproduction/make_data/score_v2.py
149   * it defines the computations from the dial.
150   */
151 object ProposalScorer extends Logging {
152 
153   def apply(votingOptions: VotingOptions, counter: VotesCounter, nonSequenceVotesWeight: Double): ProposalScorer = {
154     val counts = counter match {
155       case SequenceVotesCounter      => votingOptions.sequenceCounts
156       case SegmentVotesCounter       => votingOptions.segmentCounts
157       case VerifiedVotesVotesCounter => votingOptions.verifiedCounts
158     }
159     new ProposalScorer(counts, votingOptions.verifiedCounts, nonSequenceVotesWeight)
160   }
161 
162   private val random: RandomGenerator = new MersenneTwister()
163 
164   def setSeed(seed: Int): Unit = {
165     random.setSeed(seed)
166   }
167 
168   val votesSmoothing: Double = 0.33
169   val qualificationsSmoothing: Double = 0.01
170 
171   def confidenceInterval(probability: Double, observations: Double): Double = {
172     val smoothedObservations: Double = observations + 4
173     val smoothedProbability: Double = (observations * probability + 2) / smoothedObservations
174     val standardDeviation: Double = Math.sqrt(smoothedProbability * (1 - smoothedProbability) / smoothedObservations)
175     2 * standardDeviation
176   }
177 
178   final case class Score(score: Double, confidence: Double, sample: Double) {
179     val upperBound: Double = score + confidence
180     val lowerBound: Double = score - confidence
181 
182     def +(other: Score): Score = {
183       Score(
184         score = this.score + other.score,
185         confidence = sumConfidenceIntervals(this.confidence, other.confidence),
186         sample = this.sample + other.sample
187       )
188     }
189 
190     def -(other: Score): Score = {
191       Score(
192         score = this.score - other.score,
193         confidence = sumConfidenceIntervals(this.confidence, other.confidence),
194         sample = this.sample - other.sample
195       )
196     }
197   }
198 
199   object Score {
200     def min(first: Score, second: Score): Score = {
201       Score(
202         score = Math.min(first.score, second.score),
203         confidence = Math.max(first.confidence, second.confidence),
204         sample = Math.min(first.sample, second.sample)
205       )
206     }
207 
208     def forKey[T <: Key: HasCount: HasSmoothing](votes: ProposalScorer, key: T): Score = {
209       val successes = key.count(votes.counts)
210       val verifiedSuccesses = key.count(votes.verifiedCounts)
211       val trials = votes.counts.totalVotes
212       val smoothing = key.smoothing
213 
214       val sample = new BetaDistribution(random, successes + smoothing, trials - successes + 1).sample()
215       Score(
216         score = votes.score(successes, verifiedSuccesses, smoothing),
217         confidence = votes.confidence(successes, smoothing),
218         sample = sample
219       )
220     }
221   }
222 
223   private def sumConfidenceIntervals(firstConfidence: Double, secondConfidence: Double): Double =
224     Math.sqrt(Math.pow(firstConfidence, 2) + Math.pow(secondConfidence, 2))
225 
226   sealed abstract class VotesCounter extends EnumEntry
227 
228   object VotesCounter extends Enum[VotesCounter] {
229 
230     case object SequenceVotesCounter extends VotesCounter
231     case object SegmentVotesCounter extends VotesCounter
232     case object VerifiedVotesVotesCounter extends VotesCounter
233 
234     override val values: IndexedSeq[VotesCounter] = findValues
235   }
236 }
Line Stmt Id Pos Tree Symbol Tests Code
43 3534 1780 - 1824 Apply scala.Double.* org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest 1.-(ProposalScorer.this.nonSequenceVotesWeight).*(specificScore)
43 1569 1740 - 1824 Apply scala.Double.+ org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.nonSequenceVotesWeight.*(generalScore).+(1.-(ProposalScorer.this.nonSequenceVotesWeight).*(specificScore))
46 4730 1956 - 1970 Apply scala.Int.+ org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest 1.+(totalVotes)
46 1718 1973 - 1974 Literal <nosymbol> org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest 1.0
46 5150 1921 - 1975 Apply java.lang.Math.min org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest java.lang.Math.min(keyCount.+(smoothing)./(1.+(totalVotes)), 1.0)
46 2835 1930 - 1971 Apply scala.Double./ org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest keyCount.+(smoothing)./(1.+(totalVotes))
49 1398 2062 - 2218 Apply org.make.api.proposal.ProposalScorer.tradeOff org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.tradeOff(ProposalScorer.this.individualScore(keyVerifiedCount, smoothing, ProposalScorer.this.verifiedCounts.totalVotes), ProposalScorer.this.individualScore(keyCount, smoothing, ProposalScorer.this.counts.totalVotes))
50 1110 2078 - 2149 Apply org.make.api.proposal.ProposalScorer.individualScore org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.individualScore(keyVerifiedCount, smoothing, ProposalScorer.this.verifiedCounts.totalVotes)
50 3104 2123 - 2148 Select org.make.core.proposal.VoteCounts.totalVotes org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.verifiedCounts.totalVotes
51 3370 2157 - 2212 Apply org.make.api.proposal.ProposalScorer.individualScore org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.individualScore(keyCount, smoothing, ProposalScorer.this.counts.totalVotes)
51 4663 2194 - 2211 Select org.make.core.proposal.VoteCounts.totalVotes org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.counts.totalVotes
56 4738 2324 - 2341 Select org.make.core.proposal.VoteCounts.totalVotes org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.counts.totalVotes
57 2844 2366 - 2422 Apply org.make.api.proposal.ProposalScorer.individualScore org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.individualScore(keyCount, smoothing, specificVotesCount)
58 5004 2427 - 2495 Apply org.make.api.proposal.ProposalScorer.confidenceInterval org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.confidenceInterval(specificVotes, specificVotesCount.toDouble)
58 1989 2476 - 2494 Select scala.Int.toDouble org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest specificVotesCount.toDouble
61 3051 2575 - 2598 ApplyToImplicitArgs org.make.api.proposal.ProposalScorer.Score.forKey org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest org.make.api.proposal.ProposalScorer.Score.forKey[T](this, key)(evidence$1, evidence$2)
91 3629 3826 - 3839 Select org.make.api.proposal.ProposalScorer.Score.score org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.neutral.score
91 1121 3797 - 3808 Select org.make.api.proposal.ProposalScorer.Score.score org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.agree.score
91 1561 3792 - 3854 Apply org.make.api.proposal.ProposalScorer.zone org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.zone(ProposalScorer.this.agree.score, ProposalScorer.this.disagree.score, ProposalScorer.this.neutral.score, seqThreshold)
91 4674 3810 - 3824 Select org.make.api.proposal.ProposalScorer.Score.score org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.disagree.score
93 2984 3938 - 3953 Select org.make.api.proposal.ProposalScorer.Score.sample org.make.api.sequence.sequencesimulationtest,org.make.api.proposal.proposalscorertest ProposalScorer.this.disagree.sample
93 5137 3919 - 3984 Apply org.make.api.proposal.ProposalScorer.zone org.make.api.sequence.sequencesimulationtest,org.make.api.proposal.proposalscorertest ProposalScorer.this.zone(ProposalScorer.this.agree.sample, ProposalScorer.this.disagree.sample, ProposalScorer.this.neutral.sample, seqThreshold)
93 4688 3924 - 3936 Select org.make.api.proposal.ProposalScorer.Score.sample org.make.api.sequence.sequencesimulationtest,org.make.api.proposal.proposalscorertest ProposalScorer.this.agree.sample
93 719 3955 - 3969 Select org.make.api.proposal.ProposalScorer.Score.sample org.make.api.sequence.sequencesimulationtest,org.make.api.proposal.proposalscorertest ProposalScorer.this.neutral.sample
107 4614 4668 - 4698 Select eu.timepit.refined.api.Refined.value org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest seqThreshold.weakOpinion.value
107 3211 4574 - 4606 Select eu.timepit.refined.api.Refined.value org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest seqThreshold.strongOpinion.value
107 4864 4565 - 4698 Apply scala.Boolean.|| org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest agree.>=(seqThreshold.strongOpinion.value).||(neutral.<(seqThreshold.neutralOpinion.value).&&(disagree.<(seqThreshold.weakOpinion.value)))
107 3638 4657 - 4698 Apply scala.Double.< org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest disagree.<(seqThreshold.weakOpinion.value)
107 1508 4610 - 4698 Apply scala.Boolean.&& org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest neutral.<(seqThreshold.neutralOpinion.value).&&(disagree.<(seqThreshold.weakOpinion.value))
107 1128 4620 - 4653 Select eu.timepit.refined.api.Refined.value org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest seqThreshold.neutralOpinion.value
108 991 4708 - 4722 Block org.make.core.proposal.indexed.Zone.Consensus org.make.api.sequence.sequencesimulationtest,org.make.api.sequence.selectionalgorithmtest,org.make.api.proposal.proposalscorertest org.make.core.proposal.indexed.Zone.Consensus
108 2994 4708 - 4722 Select org.make.core.proposal.indexed.Zone.Consensus org.make.api.sequence.sequencesimulationtest,org.make.api.sequence.selectionalgorithmtest,org.make.api.proposal.proposalscorertest org.make.core.proposal.indexed.Zone.Consensus
109 4685 4734 - 5019 If <nosymbol> org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest if (disagree.>=(seqThreshold.strongOpinion.value).||(neutral.<(seqThreshold.neutralOpinion.value).&&(agree.<(seqThreshold.weakOpinion.value)))) org.make.core.proposal.indexed.Zone.Rejection else if (neutral.>=(seqThreshold.neutralOpinion.value)) org.make.core.proposal.indexed.Zone.Limbo else org.make.core.proposal.indexed.Zone.Controversy
109 1105 4842 - 4872 Select eu.timepit.refined.api.Refined.value org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest seqThreshold.weakOpinion.value
109 5145 4750 - 4782 Select eu.timepit.refined.api.Refined.value org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest seqThreshold.strongOpinion.value
109 3219 4797 - 4830 Select eu.timepit.refined.api.Refined.value org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest seqThreshold.neutralOpinion.value
109 4624 4834 - 4872 Apply scala.Double.< org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest agree.<(seqThreshold.weakOpinion.value)
109 3472 4787 - 4872 Apply scala.Boolean.&& org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest neutral.<(seqThreshold.neutralOpinion.value).&&(agree.<(seqThreshold.weakOpinion.value))
109 1516 4738 - 4873 Apply scala.Boolean.|| org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest disagree.>=(seqThreshold.strongOpinion.value).||(neutral.<(seqThreshold.neutralOpinion.value).&&(agree.<(seqThreshold.weakOpinion.value)))
110 2759 4883 - 4897 Block org.make.core.proposal.indexed.Zone.Rejection org.make.api.sequence.sequencesimulationtest,org.make.api.proposal.proposalscorertest org.make.core.proposal.indexed.Zone.Rejection
110 4872 4883 - 4897 Select org.make.core.proposal.indexed.Zone.Rejection org.make.api.sequence.sequencesimulationtest,org.make.api.proposal.proposalscorertest org.make.core.proposal.indexed.Zone.Rejection
111 1003 4924 - 4957 Select eu.timepit.refined.api.Refined.value org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest seqThreshold.neutralOpinion.value
111 1522 4909 - 5019 If <nosymbol> org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest if (neutral.>=(seqThreshold.neutralOpinion.value)) org.make.core.proposal.indexed.Zone.Limbo else org.make.core.proposal.indexed.Zone.Controversy
111 5096 4913 - 4957 Apply scala.Double.>= org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest neutral.>=(seqThreshold.neutralOpinion.value)
112 3159 4967 - 4977 Select org.make.core.proposal.indexed.Zone.Limbo org.make.api.sequence.sequencesimulationtest,org.make.api.proposal.proposalscorertest org.make.core.proposal.indexed.Zone.Limbo
112 1116 4967 - 4977 Block org.make.core.proposal.indexed.Zone.Limbo org.make.api.sequence.sequencesimulationtest,org.make.api.proposal.proposalscorertest org.make.core.proposal.indexed.Zone.Limbo
114 2510 4997 - 5013 Block org.make.core.proposal.indexed.Zone.Controversy org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest org.make.core.proposal.indexed.Zone.Controversy
114 4415 4997 - 5013 Select org.make.core.proposal.indexed.Zone.Controversy org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest org.make.core.proposal.indexed.Zone.Controversy
119 2771 5142 - 5159 Select org.make.core.proposal.VoteCounts.totalVotes org.make.api.proposal.proposalscorertest ProposalScorer.this.counts.totalVotes
120 976 5193 - 5214 Select org.make.api.proposal.ProposalScorer.Score.lowerBound org.make.api.proposal.proposalscorertest ProposalScorer.this.engagement.lowerBound
121 5104 5243 - 5262 Select org.make.api.proposal.ProposalScorer.Score.lowerBound org.make.api.proposal.proposalscorertest ProposalScorer.this.topScore.lowerBound
122 3163 5297 - 5319 Select org.make.api.proposal.ProposalScorer.Score.lowerBound org.make.api.proposal.proposalscorertest ProposalScorer.this.controversy.lowerBound
126 1061 5566 - 5600 Apply scala.Double.>= controversyRate.>=(controversyBase)
126 4425 5540 - 5600 Apply scala.Boolean.|| scoreRate.>=(scoreBase).||(controversyRate.>=(controversyBase))
127 2616 5658 - 5680 Apply scala.Double.>= scoreRate.>=(scoreBase)
128 1476 5738 - 5772 Apply scala.Double.>= controversyRate.>=(controversyBase)
129 4695 5830 - 5834 Literal <nosymbol> true
132 4021 5889 - 5941 Apply scala.Int.< org.make.api.proposal.proposalscorertest votesCount.<(configuration.newProposalsVoteThreshold)
132 988 5902 - 5941 Select org.make.core.sequence.SequenceConfiguration.newProposalsVoteThreshold org.make.api.proposal.proposalscorertest configuration.newProposalsVoteThreshold
132 3323 5852 - 5941 Apply scala.Boolean.&& org.make.api.proposal.proposalscorertest status.==(org.make.core.proposal.ProposalStatus.Accepted).&&(votesCount.<(configuration.newProposalsVoteThreshold))
132 2710 5862 - 5885 Select org.make.core.proposal.ProposalStatus.Accepted org.make.api.proposal.proposalscorertest org.make.core.proposal.ProposalStatus.Accepted
133 4356 5951 - 5967 Block org.make.core.proposal.indexed.SequencePool.New org.make.api.proposal.proposalscorertest org.make.core.proposal.indexed.SequencePool.New
133 1069 5951 - 5967 Select org.make.core.proposal.indexed.SequencePool.New org.make.api.proposal.proposalscorertest org.make.core.proposal.indexed.SequencePool.New
134 4276 5979 - 6324 If <nosymbol> if (status.==(org.make.core.proposal.ProposalStatus.Accepted).&&(configuration.testedProposalsMaxVotesThreshold.forall(((x$1: Int) => votesCount.<(x$1)))).&&(configuration.testedProposalsEngagementThreshold.forall(((x$2: Double) => engagementRate.>(x$2)))).&&(isTestedFromScoreAndControversy)) org.make.core.proposal.indexed.SequencePool.Tested else org.make.core.proposal.indexed.SequencePool.Excluded
136 2627 5983 - 6248 Apply scala.Boolean.&& status.==(org.make.core.proposal.ProposalStatus.Accepted).&&(configuration.testedProposalsMaxVotesThreshold.forall(((x$1: Int) => votesCount.<(x$1)))).&&(configuration.testedProposalsEngagementThreshold.forall(((x$2: Double) => engagementRate.>(x$2)))).&&(isTestedFromScoreAndControversy)
138 4968 6258 - 6277 Block org.make.core.proposal.indexed.SequencePool.Tested org.make.core.proposal.indexed.SequencePool.Tested
138 1654 6258 - 6277 Select org.make.core.proposal.indexed.SequencePool.Tested org.make.core.proposal.indexed.SequencePool.Tested
140 2717 6297 - 6318 Select org.make.core.proposal.indexed.SequencePool.Excluded org.make.core.proposal.indexed.SequencePool.Excluded
140 1000 6297 - 6318 Block org.make.core.proposal.indexed.SequencePool.Excluded org.make.core.proposal.indexed.SequencePool.Excluded
155 3155 6769 - 6797 Select org.make.core.proposal.VotingOptions.sequenceCounts org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest votingOptions.sequenceCounts
156 1358 6838 - 6865 Select org.make.core.proposal.VotingOptions.segmentCounts org.make.api.sequence.sequencecacheactortest,org.make.core.proposal.indexed.proposaltest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.technical.crm.crmservicecomponenttest votingOptions.segmentCounts
157 4573 6906 - 6934 Select org.make.core.proposal.VotingOptions.verifiedCounts votingOptions.verifiedCounts
159 2639 6972 - 7000 Select org.make.core.proposal.VotingOptions.verifiedCounts org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest votingOptions.verifiedCounts
159 1469 6945 - 7025 Apply org.make.api.proposal.ProposalScorer.<init> org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest new ProposalScorer(counts, votingOptions.verifiedCounts, nonSequenceVotesWeight)
162 4802 7071 - 7092 Apply org.apache.commons.math3.random.MersenneTwister.<init> org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest new org.apache.commons.math3.random.MersenneTwister()
165 3005 7133 - 7153 Apply org.apache.commons.math3.random.RandomGenerator.setSeed org.make.api.sequence.sequencesimulationtest,org.make.api.sequence.selectionalgorithmtest ProposalScorer.this.random.setSeed(seed)
168 939 7190 - 7194 Literal <nosymbol> org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest 0.33
169 4287 7235 - 7239 Literal <nosymbol> org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest 0.01
172 3108 7360 - 7376 Apply scala.Double.+ org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest observations.+(4)
173 1195 7415 - 7470 Apply scala.Double./ org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest observations.*(probability).+(2)./(smoothedObservations)
174 2576 7507 - 7588 Apply java.lang.Math.sqrt org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest java.lang.Math.sqrt(smoothedProbability.*(1.-(smoothedProbability))./(smoothedObservations))
174 4582 7517 - 7587 Apply scala.Double./ org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest smoothedProbability.*(1.-(smoothedProbability))./(smoothedObservations)
175 511 7593 - 7614 Apply scala.Int.* org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest 2.*(standardDeviation)
179 2707 7727 - 7745 Apply scala.Double.+ org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest Score.this.score.+(Score.this.confidence)
179 4746 7735 - 7745 Select org.make.api.proposal.ProposalScorer.Score.confidence org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest Score.this.confidence
180 950 7783 - 7793 Select org.make.api.proposal.ProposalScorer.Score.confidence org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest Score.this.confidence
180 4091 7775 - 7793 Apply scala.Double.- org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest Score.this.score.-(Score.this.confidence)
183 730 7836 - 8016 Apply org.make.api.proposal.ProposalScorer.Score.apply org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.Score.apply(this.score.+(other.score), ProposalScorer.this.sumConfidenceIntervals(this.confidence, other.confidence), this.sample.+(other.sample))
184 1205 7859 - 7883 Apply scala.Double.+ org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest this.score.+(other.score)
184 3114 7872 - 7883 Select org.make.api.proposal.ProposalScorer.Score.score org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest other.score
185 450 7906 - 7963 Apply org.make.api.proposal.ProposalScorer.sumConfidenceIntervals org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.sumConfidenceIntervals(this.confidence, other.confidence)
185 4352 7929 - 7944 Select org.make.api.proposal.ProposalScorer.Score.confidence org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest this.confidence
185 2584 7946 - 7962 Select org.make.api.proposal.ProposalScorer.Score.confidence org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest other.confidence
186 2714 7982 - 8008 Apply scala.Double.+ org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest this.sample.+(other.sample)
186 4750 7996 - 8008 Select org.make.api.proposal.ProposalScorer.Score.sample org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest other.sample
191 3001 8065 - 8245 Apply org.make.api.proposal.ProposalScorer.Score.apply org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.Score.apply(this.score.-(other.score), ProposalScorer.this.sumConfidenceIntervals(this.confidence, other.confidence), this.sample.-(other.sample))
192 3069 8088 - 8112 Apply scala.Double.- org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest this.score.-(other.score)
192 4101 8101 - 8112 Select org.make.api.proposal.ProposalScorer.Score.score org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest other.score
193 2561 8135 - 8192 Apply org.make.api.proposal.ProposalScorer.sumConfidenceIntervals org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.sumConfidenceIntervals(this.confidence, other.confidence)
193 1355 8158 - 8173 Select org.make.api.proposal.ProposalScorer.Score.confidence org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest this.confidence
193 4360 8175 - 8191 Select org.make.api.proposal.ProposalScorer.Score.confidence org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest other.confidence
194 460 8225 - 8237 Select org.make.api.proposal.ProposalScorer.Score.sample org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest other.sample
194 4758 8211 - 8237 Apply scala.Double.- org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest this.sample.-(other.sample)
201 1011 8332 - 8522 Apply org.make.api.proposal.ProposalScorer.Score.apply org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.Score.apply(java.lang.Math.min(first.score, second.score), java.lang.Math.max(first.confidence, second.confidence), java.lang.Math.min(first.sample, second.sample))
202 4204 8377 - 8389 Select org.make.api.proposal.ProposalScorer.Score.score org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest second.score
202 2116 8355 - 8390 Apply java.lang.Math.min org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest java.lang.Math.min(first.score, second.score)
202 739 8364 - 8375 Select org.make.api.proposal.ProposalScorer.Score.score org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest first.score
203 2574 8413 - 8458 Apply java.lang.Math.max org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest java.lang.Math.max(first.confidence, second.confidence)
203 4634 8440 - 8457 Select org.make.api.proposal.ProposalScorer.Score.confidence org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest second.confidence
203 1361 8422 - 8438 Select org.make.api.proposal.ProposalScorer.Score.confidence org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest first.confidence
204 579 8486 - 8498 Select org.make.api.proposal.ProposalScorer.Score.sample org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest first.sample
204 3009 8477 - 8514 Apply java.lang.Math.min org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest java.lang.Math.min(first.sample, second.sample)
204 4908 8500 - 8513 Select org.make.api.proposal.ProposalScorer.Score.sample org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest second.sample
209 4215 8643 - 8666 ApplyToImplicitArgs org.make.core.proposal.Key.CountOps.count org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest org.make.core.proposal.Key.CountOps[T](key).count(votes.counts)(evidence$3)
210 2323 8697 - 8728 ApplyToImplicitArgs org.make.core.proposal.Key.CountOps.count org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest org.make.core.proposal.Key.CountOps[T](key).count(votes.verifiedCounts)(evidence$3)
211 1308 8748 - 8771 Select org.make.core.proposal.VoteCounts.totalVotes org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest votes.counts.totalVotes
212 4640 8794 - 8807 ApplyToImplicitArgs org.make.core.proposal.Key.SmoothingOps.smoothing org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest org.make.core.proposal.Key.SmoothingOps[T](key).smoothing(evidence$4)
214 2519 8828 - 8912 Apply org.apache.commons.math3.distribution.BetaDistribution.sample org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest new org.apache.commons.math3.distribution.BetaDistribution(ProposalScorer.this.random, successes.+(smoothing), trials.-(successes).+(1.0)).sample()
215 2956 8919 - 9088 Apply org.make.api.proposal.ProposalScorer.Score.apply org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest ProposalScorer.this.Score.apply(votes.score(successes, verifiedSuccesses, smoothing), votes.confidence(successes, smoothing), sample)
216 591 8942 - 8994 Apply org.make.api.proposal.ProposalScorer.score org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest votes.score(successes, verifiedSuccesses, smoothing)
217 3839 9017 - 9055 Apply org.make.api.proposal.ProposalScorer.confidence org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest votes.confidence(successes, smoothing)
224 1135 9202 - 9273 Apply java.lang.Math.sqrt org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest java.lang.Math.sqrt(java.lang.Math.pow(firstConfidence, 2.0).+(java.lang.Math.pow(secondConfidence, 2.0)))
224 4227 9243 - 9272 Apply java.lang.Math.pow org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest java.lang.Math.pow(secondConfidence, 2.0)
224 898 9238 - 9239 Literal <nosymbol> org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest 2.0
224 2103 9212 - 9272 Apply scala.Double.+ org.make.api.sequence.sequencecacheactortest,org.make.api.sequence.sequenceapitest,org.make.api.technical.crm.sendmailpublisherservicetest,org.make.api.proposal.proposalscorertest,org.make.api.technical.crm.crmservicecomponenttest java.lang.Math.pow(firstConfidence, 2.0).+(java.lang.Math.pow(secondConfidence, 2.0))