package comsoc import ( "errors" ) func TieBreakFactory(tieBreakAlts []Alternative) func([]Alternative) (Alternative, error) { return func(alts []Alternative) (Alternative, error) { if len(alts) == 0 || alts == nil { return -1, errors.New("002: NullAlternatives") } for _, alt := range alts { for _, tieBreakAlt := range tieBreakAlts { if alt == tieBreakAlt { return alt, nil } } } return -1, errors.New("002: NoTieBreakAlternativeFound") } } //func SWFFactory(swf1 func (Profile) (Count, error), tieBreak func ([]Alternative) (Alternative, error)) (swf2 func(Profile) (alts []Alternative, err error)) { // return func(p Profile) (alts Alternative, err error) { // alts, _ := maxCount(swf1(p)) // alt, _ := tieBreak(alts) // return alt, nil // il faut trifouiller le count // } //} func SCFFactory(scf1 func(Profile) ([]Alternative, error), tieBreak func([]Alternative) (Alternative, error)) (scf2 func(Profile) (alt Alternative, err error)) { return func(p Profile) (Alternative, error) { alts, _ := scf1(p) alt, _ := tieBreak(alts) return alt, nil } } // func TieBreak(a []Alternative) (Alternative, err error) { // // if len(a) == 0 || a == nil { // // return _, errors.New("002: NullAlternatives") // // } // // for _,alt := range a { // // // // } // 0-votes alternatives are not included // // return nil, nil // }