diff --git a/comsoc/Copeland.go b/comsoc/Copeland.go index 4387e0f172e498260e2d333a0988d8d07d7f078a..b99c415fc71cc8b77a72829f580366024ce58b9d 100644 --- a/comsoc/Copeland.go +++ b/comsoc/Copeland.go @@ -10,8 +10,8 @@ func CopelandSWF(p Profile) (count Count, err error) { if err != nil { return nil, err } - for alt1 := 0; alt1 < len(p); alt1++ { - for alt2 := alt1 + 1; alt2 < len(p); alt2++ { + for alt1 := 1; alt1 <= len(alts); alt1++ { + for alt2 := alt1 + 1; alt2 <= len(alts); alt2++ { score1, score2 := 0, 0 for _, pref := range p { if isPref(Alternative(alt1), Alternative(alt2), pref) { @@ -22,7 +22,9 @@ func CopelandSWF(p Profile) (count Count, err error) { } if score1 > score2 { count[Alternative(alt1)]++ + count[Alternative(alt2)]-- } else if score2 > score1 { + count[Alternative(alt1)]-- count[Alternative(alt2)]++ } }