From f6c978f26932597eef637aeffa95468c1ed1b587 Mon Sep 17 00:00:00 2001 From: Gabrielle van de Vijver <gabrielle.van-de-vijver@etu.utc.fr> Date: Mon, 2 Oct 2023 22:43:13 +0200 Subject: [PATCH] TieBreakFactory fonctionnelle sans gestion d'erreur --- comsoc/TieBreak.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 comsoc/TieBreak.go diff --git a/comsoc/TieBreak.go b/comsoc/TieBreak.go new file mode 100644 index 0000000..341f73b --- /dev/null +++ b/comsoc/TieBreak.go @@ -0,0 +1,34 @@ + +package comsoc +import("fmt") + +func TieBreakFactory(orderedAlts []Alternative) (func ([]Alternative) (Alternative, error)){ + return func (bestAlts []Alternative) (Alternative, error) { + bestAlt := bestAlts[0] + for _,alt:= range bestAlts[1:]{ + if isPref(alt,bestAlt,orderedAlts){ + bestAlt = alt + } + } + return bestAlt, nil + } +} + +func Test_tieBreakFactory(){ + orderedAlts := []Alternative{8,9,6,1,3,2} + fmt.Println("Ordre strict :", orderedAlts) + lambda:=TieBreakFactory(orderedAlts) + bestAlts := []Alternative{3,6} + fmt.Println("Premières alternatives à départager :", bestAlts) + bestAlt,_ := lambda(bestAlts) + fmt.Println("Première alternative :", bestAlt) +} + +// func SWFFactory(func swf(p Profile) (Count, error), func ([]Alternative) (Alternative, error)) (func(Profile) ([]Alternative, error)){ + + +// return func ([]Alternative) (Alternative, error) { +// return orderedAlts[0],nil +// } +// } +//func SCFFactory(func scf(p Profile) ([]Alternative, error), func ([]Alternative) (Alternative, error)) (func(Profile) (Alternative, error)) -- GitLab