|
- package normalization
-
- import (
- "code.gitea.io/gitea/modules/setting"
- )
-
- const MAX_LINES_RECORD = 100
-
- func Normalization(value float64, minValue float64, maxValue float64) float64 {
-
- min := int64(minValue * 100)
- max := int64(maxValue * 100)
-
- if min == max {
- return 100.0
- } else {
- return 100 * (value - minValue) / (maxValue - minValue)
- }
-
- }
-
- func GetRadarValue(impactValue float64, completeValue float64, livenessValue float64, projectHealthValue float64, teamHealthValue float64, growthValue float64) float64 {
- return setting.RadarMap.Impact*impactValue +
- setting.RadarMap.Completeness*completeValue +
- setting.RadarMap.Liveness*livenessValue +
- setting.RadarMap.ProjectHealth*projectHealthValue +
- setting.RadarMap.TeamHealth*teamHealthValue +
- setting.RadarMap.Growth*growthValue
-
- }
-
- func GetImpactInitValue(watch int64, star int64, fork int64, download int64, comments int64, browser int64) float64 {
-
- return setting.RadarMap.ImpactWatch*float64(watch) +
- setting.RadarMap.ImpactStar*float64(star) +
- setting.RadarMap.ImpactFork*float64(fork) +
- setting.RadarMap.ImpactCodeDownload*float64(download)*0.001 +
- setting.RadarMap.ImpactComments*float64(comments) +
- setting.RadarMap.ImpactBrowser*float64(browser)*0.001
-
- }
-
- func GetCompleteInitValue(issuesClosed int64, releases int64, developAge int64, dataset int64, model int64, wiki int64) float64 {
-
- return setting.RadarMap.CompletenessIssuesClosed*float64(issuesClosed) +
- setting.RadarMap.CompletenessReleases*float64(releases) +
- setting.RadarMap.CompletenessDevelopAge*float64(developAge) +
- setting.RadarMap.CompletenessDataset*(float64(dataset)/(1024*1024)) +
- setting.RadarMap.CompletenessModel*float64(model) +
- setting.RadarMap.CompletenessWiki*float64(wiki)
-
- }
-
- func GetLivenessInitValue(commits int64, issues int64, pr int64, release int64) float64 {
-
- return setting.RadarMap.LivenessCommit*float64(commits) +
- setting.RadarMap.LivenessIssue*float64(issues) +
- setting.RadarMap.LivenessPR*float64(pr) +
- setting.RadarMap.LivenessRelease*float64(release)
-
- }
-
- func GetProjectHealthInitValue(issueClosedRatio float32) float64 {
-
- return setting.RadarMap.ProjectHealthIssueCompleteRatio * float64(issueClosedRatio)
-
- }
-
- func GetTeamHealthInitValue(contributors int64, keyContributors int64, newContributors int64) float64 {
-
- return setting.RadarMap.TeamHealthContributors*float64(contributors) +
- setting.RadarMap.TeamHealthKeyContributors*float64(keyContributors) +
- setting.RadarMap.TeamHealthContributorsAdded*float64(newContributors)
-
- }
-
- func GetRepoGrowthInitValue(codeLinesGrowth int64, issueGrowth int64, commitsGrowth int64, newContributors int64, commentsGrowth int64) float64 {
- codeLinesKB := codeLinesGrowth / 1000
- if codeLinesKB > MAX_LINES_RECORD {
- codeLinesKB = MAX_LINES_RECORD
- }
- return setting.RadarMap.GrowthCodeLines*float64(codeLinesKB) +
- setting.RadarMap.GrowthIssue*float64(issueGrowth) +
- setting.RadarMap.GrowthCommit*float64(commitsGrowth) +
- setting.RadarMap.GrowthContributors*float64(newContributors) +
- setting.RadarMap.GrowthComments*float64(commentsGrowth)
-
- }
|