Comments (4)
Hey @MarvinJWendt , I ran some benchmarks and rand.Shuffle
is faster. Look at the benchmark tests and tell me what you think? benchmarks
I also included a PR with the proposal.
from testza.
Hi @MarvinJWendt I was thinking of trying this one what do you think of something like that.
func FuzzUtilLimit[setType any](testSet []setType, limit int) []setType {
seen := map[int]bool{}
if len(testSet) <= limit {
return testSet
}
if limit <= 0 {
return []setType{}
}
var result []setType
counter := 0
for counter < limit {
index := rand.Intn(len(testSet) - 1)
if !seen[index] {
seen[index] = true
result = append(result, testSet[index])
counter++
}
}
return result
}
from testza.
Hi @KarolosLykos, this would definitely work, but I am not sure if the performance might be better with rand.Shuffle
. We could then return a sub-slice of the shuffled slice (shuffledTestSet[:limit]
). If you want to benchmark both approaches, feel free to do so, otherwise I'll do it in the next weeks and get back to you with the result :)
from testza.
Fixed in #200 and released with v0.5.2
. Thanks!
from testza.
Related Issues (20)
- Improve output of `AssertNotSameElements`
- Color object of `AssertNotZero`
- Color object of `AssertNumeric`
- Recolor object of `AssertRegexp`
- Color objects of `AssertSubset` HOT 1
- Color object name of `AssertZero` magenta
- Make settings configurable with environment variables
- Refactor to 1.18 generics
- Make functions in `assertion_helper.go` to `testing.Helper` functions
- Show which test failed in `AssertTestFails`
- Add `FuzzUtilMergeSets` HOT 1
- Add `AssertInRange`
- Add `AssertGreaterOrEqual` and `AssertLessOrEqual`
- Add `FuzzUtilRemoveDuplicates`
- Add `AssertUnique`
- Startup message cannot be disabled HOT 1
- Update CI to use go 1.19
- Snapshot saves slice capacities, failing when executing on different machines HOT 1
- Switch to `atomicgo/assert`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from testza.