瀏覽代碼

Add RenameAnalysis tests

Vadim Markovtsev 7 年之前
父節點
當前提交
6c8700eefa
共有 5 個文件被更改,包括 41 次插入11 次删除
  1. 1 1
      couples_test.go
  2. 2 2
      identity.go
  3. 1 1
      identity_test.go
  4. 8 5
      renames.go
  5. 29 2
      renames_test.go

+ 1 - 1
couples_test.go

@@ -5,10 +5,10 @@ import (
 	"strings"
 	"testing"
 
+	"github.com/gogo/protobuf/proto"
 	"github.com/stretchr/testify/assert"
 	"gopkg.in/src-d/go-git.v4/plumbing/object"
 	"gopkg.in/src-d/hercules.v3/pb"
-	"github.com/gogo/protobuf/proto"
 )
 
 func fixtureCouples() *CouplesAnalysis {

+ 2 - 2
identity.go

@@ -18,8 +18,8 @@ type IdentityDetector struct {
 }
 
 const (
-	MISSING_AUTHOR = (1 << 18) - 1
-	SELF_AUTHOR    = (1 << 18) - 2
+	MISSING_AUTHOR   = (1 << 18) - 1
+	SELF_AUTHOR      = (1 << 18) - 2
 	UNMATCHED_AUTHOR = "<unmatched>"
 
 	FactIdentityDetectorPeopleDict         = "IdentityDetector.PeopleDict"

+ 1 - 1
identity_test.go

@@ -224,7 +224,7 @@ func TestGeneratePeopleDict(t *testing.T) {
 	assert.Equal(t, id.ReversedPeopleDict[0], "vadim markovtsev|gmarkhor@gmail.com|vadim@sourced.tech")
 	assert.Equal(t, id.ReversedPeopleDict[1], "alexander bezzubov|bzz@apache.org")
 	assert.Equal(t, id.ReversedPeopleDict[2], "máximo cuadros|mcuadros@gmail.com")
-	assert.NotEqual(t, id.ReversedPeopleDict[len(id.ReversedPeopleDict) - 1], UNMATCHED_AUTHOR)
+	assert.NotEqual(t, id.ReversedPeopleDict[len(id.ReversedPeopleDict)-1], UNMATCHED_AUTHOR)
 }
 
 func TestLoadPeopleDictInvalidPath(t *testing.T) {

+ 8 - 5
renames.go

@@ -23,6 +23,8 @@ type RenameAnalysis struct {
 }
 
 const (
+	RENAME_ANALYSIS_DEFAULT_THRESHOLD = 90
+
 	ConfigRenameAnalysisSimilarityThreshold = "RenameAnalysis.SimilarityThreshold"
 )
 
@@ -42,11 +44,11 @@ func (ra *RenameAnalysis) Requires() []string {
 
 func (ra *RenameAnalysis) ListConfigurationOptions() []ConfigurationOption {
 	options := [...]ConfigurationOption{{
-		Name:        ConfigBurndownGranularity,
-		Description: "How many days there are in a single band.",
+		Name:        ConfigRenameAnalysisSimilarityThreshold,
+		Description: "The threshold on the similarity index used to detect renames.",
 		Flag:        "M",
 		Type:        IntConfigurationOption,
-		Default:     90},
+		Default:     RENAME_ANALYSIS_DEFAULT_THRESHOLD},
 	}
 	return options[:]
 }
@@ -59,8 +61,9 @@ func (ra *RenameAnalysis) Configure(facts map[string]interface{}) {
 
 func (ra *RenameAnalysis) Initialize(repository *git.Repository) {
 	if ra.SimilarityThreshold < 0 || ra.SimilarityThreshold > 100 {
-		fmt.Fprintln(os.Stderr, "Warning: adjusted the similarity threshold to 90")
-		ra.SimilarityThreshold = 90
+		fmt.Fprintf(os.Stderr, "Warning: adjusted the similarity threshold to %d\n",
+			RENAME_ANALYSIS_DEFAULT_THRESHOLD)
+		ra.SimilarityThreshold = RENAME_ANALYSIS_DEFAULT_THRESHOLD
 	}
 	ra.repository = repository
 }

+ 29 - 2
renames_test.go

@@ -21,13 +21,40 @@ func TestRenameAnalysisMeta(t *testing.T) {
 	assert.Equal(t, len(ra.Requires()), 2)
 	assert.Equal(t, ra.Requires()[0], "blob_cache")
 	assert.Equal(t, ra.Requires()[1], "changes")
+	opts := ra.ListConfigurationOptions()
+	assert.Len(t, opts, 1)
+	assert.Equal(t, opts[0].Name, ConfigRenameAnalysisSimilarityThreshold)
+	ra.SimilarityThreshold = 0
+	facts := map[string]interface{}{}
+	facts[ConfigRenameAnalysisSimilarityThreshold] = 70
+	ra.Configure(facts)
+	assert.Equal(t, ra.SimilarityThreshold, 70)
+	delete(facts, ConfigRenameAnalysisSimilarityThreshold)
+	ra.Configure(facts)
+	assert.Equal(t, ra.SimilarityThreshold, 70)
+}
+
+func TestRenameAnalysisRegistration(t *testing.T) {
+	tp, exists := Registry.registered[(&RenameAnalysis{}).Name()]
+	assert.True(t, exists)
+	assert.Equal(t, tp.Elem().Name(), "RenameAnalysis")
+	tps, exists := Registry.provided[(&RenameAnalysis{}).Provides()[0]]
+	assert.True(t, exists)
+	assert.True(t, len(tps) >= 1)
+	matched := false
+	for _, tp := range tps {
+		matched = matched || tp.Elem().Name() == "RenameAnalysis"
+	}
+	assert.True(t, matched)
 }
 
 func TestRenameAnalysisInitializeInvalidThreshold(t *testing.T) {
 	ra := RenameAnalysis{SimilarityThreshold: -10}
-	assert.Panics(t, func() { ra.Initialize(testRepository) })
+	ra.Initialize(testRepository)
+	assert.Equal(t, ra.SimilarityThreshold, RENAME_ANALYSIS_DEFAULT_THRESHOLD)
 	ra = RenameAnalysis{SimilarityThreshold: 110}
-	assert.Panics(t, func() { ra.Initialize(testRepository) })
+	ra.Initialize(testRepository)
+	assert.Equal(t, ra.SimilarityThreshold, RENAME_ANALYSIS_DEFAULT_THRESHOLD)
 	ra = RenameAnalysis{SimilarityThreshold: 0}
 	ra.Initialize(testRepository)
 	ra = RenameAnalysis{SimilarityThreshold: 100}