You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

normalization.go 3.0 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package normalization
  2. import (
  3. "code.gitea.io/gitea/modules/setting"
  4. )
  5. func Normalization(value float64, minValue float64, maxValue float64) float64 {
  6. min := int64(minValue * 100)
  7. max := int64(maxValue * 100)
  8. if min == max {
  9. return 100.0
  10. } else {
  11. return 100 * (value - minValue) / (maxValue - minValue)
  12. }
  13. }
  14. func GetRadarValue(impactValue float64, completeValue float64, livenessValue float64, projectHealthValue float64, teamHealthValue float64, growthValue float64) float64 {
  15. return setting.RadarMap.Impact*impactValue +
  16. setting.RadarMap.Completeness*completeValue +
  17. setting.RadarMap.Liveness*livenessValue +
  18. setting.RadarMap.ProjectHealth*projectHealthValue +
  19. setting.RadarMap.TeamHealth*teamHealthValue +
  20. setting.RadarMap.Growth*growthValue
  21. }
  22. func GetImpactInitValue(watch int64, star int64, fork int64, download int64, comments int64, browser int64) float64 {
  23. return setting.RadarMap.ImpactWatch*float64(watch) +
  24. setting.RadarMap.ImpactStar*float64(star) +
  25. setting.RadarMap.ImpactFork*float64(fork) +
  26. setting.RadarMap.ImpactCodeDownload*float64(download)*0.001 +
  27. setting.RadarMap.ImpactComments*float64(comments) +
  28. setting.RadarMap.ImpactBrowser*float64(browser)*0.001
  29. }
  30. func GetCompleteInitValue(issuesClosed int64, releases int64, developAge int64, dataset int64, model int64, wiki int64) float64 {
  31. return setting.RadarMap.CompletenessIssuesClosed*float64(issuesClosed) +
  32. setting.RadarMap.CompletenessReleases*float64(releases) +
  33. setting.RadarMap.CompletenessDevelopAge*float64(developAge) +
  34. setting.RadarMap.CompletenessDataset*(float64(dataset)/(1024*1024)) +
  35. setting.RadarMap.CompletenessModel*float64(model) +
  36. setting.RadarMap.CompletenessWiki*float64(wiki)
  37. }
  38. func GetLivenessInitValue(commits int64, issues int64, pr int64, release int64) float64 {
  39. return setting.RadarMap.LivenessCommit*float64(commits) +
  40. setting.RadarMap.LivenessIssue*float64(issues) +
  41. setting.RadarMap.LivenessPR*float64(pr) +
  42. setting.RadarMap.LivenessRelease*float64(release)
  43. }
  44. func GetProjectHealthInitValue(issueClosedRatio float32) float64 {
  45. return setting.RadarMap.ProjectHealthIssueCompleteRatio * float64(issueClosedRatio)
  46. }
  47. func GetTeamHealthInitValue(contributors int64, keyContributors int64, newContributors int64) float64 {
  48. return setting.RadarMap.TeamHealthContributors*float64(contributors) +
  49. setting.RadarMap.TeamHealthKeyContributors*float64(keyContributors) +
  50. setting.RadarMap.TeamHealthContributorsAdded*float64(newContributors)
  51. }
  52. func GetRepoGrowthInitValue(codelinesGrowth int64, issueGrowth int64, commitsGrowth int64, newContributors int64, commentsGrowth int64) float64 {
  53. return setting.RadarMap.GrowthCodeLines*float64(codelinesGrowth) +
  54. setting.RadarMap.GrowthIssue*float64(issueGrowth) +
  55. setting.RadarMap.GrowthCommit*float64(commitsGrowth) +
  56. setting.RadarMap.GrowthContributors*float64(newContributors) +
  57. setting.RadarMap.GrowthComments*float64(commentsGrowth)
  58. }