Add Best() to solver for package selection based on version

This commit is contained in:
Ettore Di Giacinto
2019-11-16 14:40:58 +01:00
parent 602f5c68d5
commit 32dea6f7fd
4 changed files with 62 additions and 1 deletions

View File

@@ -17,6 +17,7 @@ package solver_test
import (
pkg "github.com/mudler/luet/pkg/package"
"github.com/mudler/luet/pkg/solver"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
@@ -371,4 +372,29 @@ var _ = Describe("Solver", func() {
})
})
Context("Selection", func() {
a := pkg.NewPackage("A", ">=2.0", []*pkg.DefaultPackage{}, []*pkg.DefaultPackage{})
a1 := pkg.NewPackage("A", "2.0", []*pkg.DefaultPackage{}, []*pkg.DefaultPackage{})
a11 := pkg.NewPackage("A", "2.1", []*pkg.DefaultPackage{}, []*pkg.DefaultPackage{})
a01 := pkg.NewPackage("A", "2.2", []*pkg.DefaultPackage{}, []*pkg.DefaultPackage{})
a02 := pkg.NewPackage("A", "2.3", []*pkg.DefaultPackage{}, []*pkg.DefaultPackage{})
a03 := pkg.NewPackage("A", "2.3.4", []*pkg.DefaultPackage{}, []*pkg.DefaultPackage{})
old := pkg.NewPackage("A", "1.3.1", []*pkg.DefaultPackage{}, []*pkg.DefaultPackage{})
It("Expands correctly", func() {
lst, err := a.Expand(&[]pkg.Package{a1, a11, a01, a02, a03, old})
Expect(err).ToNot(HaveOccurred())
Expect(lst).To(ContainElement(a11))
Expect(lst).To(ContainElement(a1))
Expect(lst).To(ContainElement(a01))
Expect(lst).To(ContainElement(a02))
Expect(lst).To(ContainElement(a03))
Expect(lst).ToNot(ContainElement(old))
Expect(len(lst)).To(Equal(5))
s := solver.NewSolver([]pkg.Package{}, []pkg.Package{}, pkg.NewInMemoryDatabase(false))
p := s.Best(lst)
Expect(p).To(Equal(a03))
})
})
})