From df96e2e9e6ab1bca66b712631debcdbf71579aff Mon Sep 17 00:00:00 2001 From: Marvin Wendt Date: Fri, 3 Feb 2023 08:54:58 +0100 Subject: [PATCH] refactor: merge `FuzzUtilLimit` into `FuzzUtilLimitSet` --- fuzz-utils.go | 23 +--- fuzz_test.go | 20 ---- output/fail_assertions_test.go | 199 --------------------------------- 3 files changed, 3 insertions(+), 239 deletions(-) delete mode 100644 output/fail_assertions_test.go diff --git a/fuzz-utils.go b/fuzz-utils.go index c5321ff..3ae8fef 100644 --- a/fuzz-utils.go +++ b/fuzz-utils.go @@ -69,7 +69,7 @@ func FuzzUtilModifySet[setType any](inputSet []setType, modifier func(index int, return } -// FuzzUtilLimitSet limits a test set in size. +// FuzzUtilLimitSet returns a random sample of a test set with a maximal size. // // Example: // @@ -83,6 +83,8 @@ func FuzzUtilLimitSet[setType any](testSet []setType, max int) []setType { return []setType{} } + rand.Shuffle(len(testSet), func(i, j int) { testSet[i], testSet[j] = testSet[j], testSet[i] }) + return testSet[:max] } @@ -105,22 +107,3 @@ func FuzzUtilDistinctSet[setType comparable](testSet []setType) []setType { return result } - -// FuzzUtilLimit returns a random piece of input set. -// -// Example: -// -// limited := testza.FuzzUtilLimit(testza.FuzzStringFull(), 10) -func FuzzUtilLimit[setType any](testSet []setType, limit int) []setType { - if len(testSet) <= limit { - return testSet - } - - if limit <= 0 { - return []setType{} - } - - rand.Shuffle(len(testSet), func(i, j int) { testSet[i], testSet[j] = testSet[j], testSet[i] }) - - return testSet[:limit] -} diff --git a/fuzz_test.go b/fuzz_test.go index 9eaff8d..2ace4a7 100644 --- a/fuzz_test.go +++ b/fuzz_test.go @@ -81,26 +81,6 @@ func TestFuzzUtilDistinctSet(t *testing.T) { AssertEqual(t, FuzzUtilDistinctSet([]int{1, 2, 2, 1, 3}), []int{1, 2, 3}) } -func TestFuzzUtilLimit(t *testing.T) { - for i := 0; i < 10; i++ { - t.Run(fmt.Sprintf("String (Limit=%d)", i), func(t *testing.T) { - AssertLen(t, FuzzUtilLimit(FuzzStringFull(), i), i) - }) - - t.Run(fmt.Sprintf("Int (Limit=%d)", i), func(t *testing.T) { - AssertLen(t, FuzzUtilLimit(FuzzIntFull(), i), i) - }) - - t.Run(fmt.Sprintf("Float64 (Limit=%d)", i), func(t *testing.T) { - AssertLen(t, FuzzUtilLimit(FuzzFloat64Full(), i), i) - }) - } - - t.Run(fmt.Sprintf("Limit bigger than length (Limit=%d)", 10), func(t *testing.T) { - AssertLen(t, FuzzUtilLimit([]string{"a", "b", "c"}, 10), 3) - }) -} - // endregion // region FuzzString diff --git a/output/fail_assertions_test.go b/output/fail_assertions_test.go deleted file mode 100644 index 5375787..0000000 --- a/output/fail_assertions_test.go +++ /dev/null @@ -1,199 +0,0 @@ -package output - -import ( - "errors" - "fmt" - "go/types" - "reflect" - "testing" - "time" - - "github.com/MarvinJWendt/testza" -) - -// This file contains all assertions and lets them fail. -// By running this test suite, you can see the output of every failed assertion. - -func TestOutput(t *testing.T) { - t.Run("AssertCompletesIn", func(t *testing.T) { - testza.AssertCompletesIn(t, time.Millisecond, func() { - time.Sleep(time.Millisecond * 100) - }) - }) - - t.Run("AssertContains", func(t *testing.T) { - testza.AssertContains(t, "Hello World", "Earth") - }) - - t.Run("AssertDecreasing", func(t *testing.T) { - testza.AssertDecreasing(t, []int{1, 2, 3, 4, 5}) - }) - - t.Run("AssertDirEmpty", func(t *testing.T) { - testza.AssertDirEmpty(t, ".") - }) - - t.Run("AssertDirExists", func(t *testing.T) { - testza.AssertDirExists(t, ".") - }) - - t.Run("AssertDirNotEmpty", func(t *testing.T) { - testza.AssertDirNotEmpty(t, "./empty-dir") - }) - - t.Run("AssertEqual", func(t *testing.T) { - testza.AssertEqual(t, "Hello, World!", "Hello World") - }) - - t.Run("AssertEqualValues", func(t *testing.T) { - testza.AssertEqualValues(t, []int{1, 2, 3, 4, 5}, []int{1, 2, 3, 4, 5, 9}) - }) - - t.Run("AssertErrorIs", func(t *testing.T) { - err1 := errors.New("error 1") - err2 := errors.New("error 2") - testza.AssertErrorIs(t, err2, err1) - }) - - t.Run("AssertFalse", func(t *testing.T) { - testza.AssertFalse(t, true) - }) - - t.Run("AssertFileExists", func(t *testing.T) { - testza.AssertFileExists(t, "./non-existent-file") - }) - - t.Run("AssertGreater", func(t *testing.T) { - testza.AssertGreater(t, 1, 2) - }) - - t.Run("AssertImplements", func(t *testing.T) { - testza.AssertImplements(t, (*fmt.Scanner)(nil), new(types.Const)) - }) - - t.Run("AssertIncreasing", func(t *testing.T) { - testza.AssertIncreasing(t, []int{5, 4, 3, 2, 1}) - }) - - t.Run("AssertKindOf", func(t *testing.T) { - testza.AssertKindOf(t, reflect.Int, false) - }) - - t.Run("AssertLen", func(t *testing.T) { - testza.AssertLen(t, []int{1, 2, 3, 4, 5}, 100) - }) - - t.Run("AssertLess", func(t *testing.T) { - testza.AssertLess(t, 100, 10) - }) - - t.Run("AssertNil", func(t *testing.T) { - testza.AssertNil(t, true) - }) - - t.Run("AssertNoDirExists", func(t *testing.T) { - testza.AssertNoDirExists(t, ".") - }) - - t.Run("AssertNoError", func(t *testing.T) { - testza.AssertNoError(t, errors.New("err")) - }) - - t.Run("AssertNoFileExists", func(t *testing.T) { - testza.AssertNoFileExists(t, "./fail_assertions_test.go") - }) - - t.Run("AssertNoSubset", func(t *testing.T) { - testza.AssertNoSubset(t, []string{"Hello", "World", "Test"}, []string{"Test"}) - }) - - t.Run("AssertNotCompletesIn", func(t *testing.T) { - testza.AssertNotCompletesIn(t, time.Second, func() {}) - }) - - t.Run("AssertNotContains", func(t *testing.T) { - testza.AssertNotContains(t, "Hello World", "World") - }) - - t.Run("AssertNotEqual", func(t *testing.T) { - testza.AssertNotEqual(t, "Hello, World!", "Hello, World!") - }) - - t.Run("AssertNotEqualValues", func(t *testing.T) { - testza.AssertNotEqualValues(t, []int{1, 2, 3, 4, 5}, []int{1, 2, 3, 4, 5}) - }) - - t.Run("AssertNotErrorIs", func(t *testing.T) { - err1 := errors.New("error 1") - err2 := fmt.Errorf("error 2: %w", err1) - testza.AssertNotErrorIs(t, err2, err1) - }) - - t.Run("AssertNotImplements", func(t *testing.T) { - testza.AssertNotImplements(t, (*fmt.Stringer)(nil), new(types.Const)) - }) - - t.Run("AssertNotKindOf", func(t *testing.T) { - testza.AssertNotKindOf(t, reflect.Int, 1337) - }) - - t.Run("AssertNotNil", func(t *testing.T) { - testza.AssertNotNil(t, nil) - }) - - t.Run("AssertNotNumeric", func(t *testing.T) { - testza.AssertNotNumeric(t, 1337) - }) - - t.Run("AssertNotPanics", func(t *testing.T) { - testza.AssertNotPanics(t, func() { - panic("panic") - }) - }) - - t.Run("AssertNotRegexp", func(t *testing.T) { - testza.AssertNotRegexp(t, "He.*", "Hello, World!") - }) - - t.Run("AssertNotSameElements", func(t *testing.T) { - testza.AssertNotSameElements(t, []int{1, 2}, []int{1, 2}) - }) - - t.Run("AssertNotZero", func(t *testing.T) { - testza.AssertNotZero(t, 0) - }) - - t.Run("AssertNumeric", func(t *testing.T) { - testza.AssertNumeric(t, false) - }) - - t.Run("AssertPanics", func(t *testing.T) { - testza.AssertPanics(t, func() {}) - }) - - t.Run("AssertRegexp", func(t *testing.T) { - testza.AssertRegexp(t, "asd.*", "Hello, World!") - }) - - t.Run("AssertSameElements", func(t *testing.T) { - testza.AssertSameElements(t, []int{1, 2, 3}, []int{4, 5, 6}) - }) - - t.Run("AssertSubset", func(t *testing.T) { - testza.AssertSubset(t, []int{1, 2, 3}, []int{4}) - }) - - t.Run("AssertTestFails", func(t *testing.T) { - testza.AssertTestFails(t, func(t testza.TestingPackageWithFailFunctions) { - testza.AssertTrue(t, true) - }) - }) - - t.Run("AssertTrue", func(t *testing.T) { - testza.AssertTrue(t, false) - }) - - t.Run("AssertZero", func(t *testing.T) { - testza.AssertZero(t, "asd") - }) -}