From 98f5b56a29357b6735a0c3bb28424e8e52166d3e Mon Sep 17 00:00:00 2001 From: Stefan Tudose Date: Wed, 26 Jan 2022 21:07:05 +0100 Subject: [PATCH] improve tests for road_network and search_unknown_length_array --- epi/road_network/solution.go | 4 ++-- epi/road_network/solution_test.go | 2 +- .../array_unknown_length.go | 8 ++++++++ epi/search_unknown_length_array/solution.go | 2 +- epi/search_unknown_length_array/solution_test.go | 13 +++++++++++-- 5 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 epi/search_unknown_length_array/array_unknown_length.go diff --git a/epi/road_network/solution.go b/epi/road_network/solution.go index cd9e842c..29d72e3c 100644 --- a/epi/road_network/solution.go +++ b/epi/road_network/solution.go @@ -1,6 +1,6 @@ package road_network -func FindBestProposals(h []HighwaySection, p []HighwaySection, n int) *HighwaySection { +func FindBestProposals(h []HighwaySection, p []HighwaySection, n int) HighwaySection { // TODO - Add your code here - return nil + return HighwaySection{} } diff --git a/epi/road_network/solution_test.go b/epi/road_network/solution_test.go index e5707696..024ef2b1 100644 --- a/epi/road_network/solution_test.go +++ b/epi/road_network/solution_test.go @@ -15,7 +15,7 @@ import ( utils "github.com/stefantds/go-epi-judge/test_utils" ) -type solutionFunc = func([]HighwaySection, []HighwaySection, int) *HighwaySection +type solutionFunc = func([]HighwaySection, []HighwaySection, int) HighwaySection var solutions = []solutionFunc{ FindBestProposals, diff --git a/epi/search_unknown_length_array/array_unknown_length.go b/epi/search_unknown_length_array/array_unknown_length.go new file mode 100644 index 00000000..87e16fa4 --- /dev/null +++ b/epi/search_unknown_length_array/array_unknown_length.go @@ -0,0 +1,8 @@ +package search_unknown_length_array + +type ArrayUnknownLength interface { + // Get returns the value at the given index in the array, if the index is valid. + // In this case the valid flag will be true. + // In case the index is out of bounds, it returns valid = false and an unspecified value. + Get(index int) (value int, valid bool) +} diff --git a/epi/search_unknown_length_array/solution.go b/epi/search_unknown_length_array/solution.go index bfb33f23..8ae5fa93 100644 --- a/epi/search_unknown_length_array/solution.go +++ b/epi/search_unknown_length_array/solution.go @@ -1,6 +1,6 @@ package search_unknown_length_array -func BinarySearchUnknownLength(a []int, k int) int { +func BinarySearchUnknownLength(a ArrayUnknownLength, k int) int { // TODO - Add your code here return 0 } diff --git a/epi/search_unknown_length_array/solution_test.go b/epi/search_unknown_length_array/solution_test.go index fe7686cd..029aeca5 100644 --- a/epi/search_unknown_length_array/solution_test.go +++ b/epi/search_unknown_length_array/solution_test.go @@ -13,7 +13,7 @@ import ( utils "github.com/stefantds/go-epi-judge/test_utils" ) -type solutionFunc = func([]int, int) int +type solutionFunc = func(ArrayUnknownLength, int) int var solutions = []solutionFunc{ BinarySearchUnknownLength, @@ -55,7 +55,7 @@ func TestBinarySearchUnknownLength(t *testing.T) { if cfg.RunParallelTests { t.Parallel() } - result := s(tc.A, tc.K) + result := s(arrayUnknownLength(tc.A), tc.K) if !reflect.DeepEqual(result, tc.ExpectedResult) { t.Errorf("\ngot:\n%v\nwant:\n%v\ntest case:\n%+v\n", result, tc.ExpectedResult, tc) } @@ -66,3 +66,12 @@ func TestBinarySearchUnknownLength(t *testing.T) { t.Fatalf("parsing error: %s", err) } } + +type arrayUnknownLength []int + +func (a arrayUnknownLength) Get(index int) (value int, valid bool) { + if index < 0 || index >= len(a) { + return -1, false + } + return a[index], true +}