diff --git a/comsoc/tieBreak.go b/comsoc/tieBreak.go deleted file mode 100644 index eb0e525dc9835638b7ab6f17e926a03df65863e3..0000000000000000000000000000000000000000 --- a/comsoc/tieBreak.go +++ /dev/null @@ -1,5 +0,0 @@ -package comsoc - -func TieBreakFactory([]Alternative) func([]Alternative) (Alternative, err error) { - -} diff --git a/comsoc/approval.go b/ia04/comsoc/approval.go similarity index 100% rename from comsoc/approval.go rename to ia04/comsoc/approval.go diff --git a/comsoc/borda.go b/ia04/comsoc/borda.go similarity index 100% rename from comsoc/borda.go rename to ia04/comsoc/borda.go diff --git a/comsoc/majority.go b/ia04/comsoc/majority.go similarity index 100% rename from comsoc/majority.go rename to ia04/comsoc/majority.go diff --git a/ia04/comsoc/tieBreak.go b/ia04/comsoc/tieBreak.go new file mode 100644 index 0000000000000000000000000000000000000000..5fbe9eabe9be60abccd49c976248082a1967768b --- /dev/null +++ b/ia04/comsoc/tieBreak.go @@ -0,0 +1,51 @@ +package comsoc + +import("errors") + +func TieBreakFactory(tieBreakAlts []Alternative) (func ([]Alternative) (Alternative, err error)) { + return func(alts []Alternative) (Alternative, err 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) (alt Alternative, err 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 +// } diff --git a/comsoc/utils.go b/ia04/comsoc/utils.go similarity index 100% rename from comsoc/utils.go rename to ia04/comsoc/utils.go