Skip to content

Commit d7c95c2

Browse files
committed
Yay generics!
1 parent ba76683 commit d7c95c2

File tree

4 files changed

+31
-33
lines changed

4 files changed

+31
-33
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jobs:
66
name: CI
77
strategy:
88
matrix:
9-
go: ['1.15', '1.16']
9+
go: ['1.18', '1.19']
1010
os: ['ubuntu-latest', 'windows-latest', 'macOS-latest']
1111
runs-on: ${{ matrix.os }}
1212
steps:

digest_test.go

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ type uniformGen struct {
4747
}
4848

4949
func newUniformGen(t *rapid.T, min float64, max float64) generator {
50-
minR := rapid.Float64Range(min, max).Draw(t, "min param").(float64)
51-
maxR := rapid.Float64Range(minR, max).Draw(t, "max param").(float64)
50+
minR := rapid.Float64Range(min, max).Draw(t, "min param")
51+
maxR := rapid.Float64Range(minR, max).Draw(t, "max param")
5252

5353
return &uniformGen{
5454
Rand: rand.New(rand.NewSource(0)),
@@ -64,8 +64,8 @@ type normalGen struct {
6464
}
6565

6666
func newNormalGen(t *rapid.T, min float64, max float64) generator {
67-
mean := rapid.Float64Range(min, max).Draw(t, "mean param").(float64)
68-
stddev := rapid.Float64Range(0, (max-min)/2).Draw(t, "stddev param").(float64)
67+
mean := rapid.Float64Range(min, max).Draw(t, "mean param")
68+
stddev := rapid.Float64Range(0, (max-min)/2).Draw(t, "stddev param")
6969

7070
return &normalGen{
7171
Rand: rand.New(rand.NewSource(0)),
@@ -81,8 +81,8 @@ type logNormalGen struct {
8181
}
8282

8383
func newLogNormalGen(t *rapid.T, min float64, max float64) generator {
84-
mean := rapid.Float64Range(min, max).Draw(t, "mean param").(float64)
85-
stddev := rapid.Float64Range(0, (max-min)/2).Draw(t, "stddev param").(float64)
84+
mean := rapid.Float64Range(min, max).Draw(t, "mean param")
85+
stddev := rapid.Float64Range(0, (max-min)/2).Draw(t, "stddev param")
8686

8787
return &logNormalGen{
8888
Rand: rand.New(rand.NewSource(0)),
@@ -98,8 +98,8 @@ type paretoGen struct {
9898
}
9999

100100
func newParetoGen(t *rapid.T, min float64, max float64) generator {
101-
m := rapid.Float64Range(min, max).Draw(t, "min param").(float64)
102-
index := rapid.Float64Range(0.1, 10).Draw(t, "index param").(float64)
101+
m := rapid.Float64Range(min, max).Draw(t, "min param")
102+
index := rapid.Float64Range(0.1, 10).Draw(t, "index param")
103103

104104
return &paretoGen{
105105
Rand: rand.New(rand.NewSource(0)),
@@ -191,7 +191,7 @@ func (d *perfectDigest) Quantile(q float64) float64 {
191191
func TestDigest(t *testing.T) {
192192
t.Parallel()
193193

194-
rapid.Check(t, rapid.Run(&digestMachine{}))
194+
rapid.Check(t, rapid.Run[*digestMachine]())
195195
}
196196

197197
type digestPair struct {
@@ -216,9 +216,9 @@ func (m *digestMachine) Init(t *rapid.T) {
216216
minErr = 1e-2
217217
}
218218

219-
m.min = rapid.Float64Range(minVal, 1-1e-10).Draw(t, "digest min").(float64)
220-
m.max = rapid.Float64Range(1+1e-10, maxVal).Draw(t, "digest max").(float64)
221-
m.err = rapid.Float64Range(minErr, 1-1e-5).Draw(t, "relative error").(float64)
219+
m.min = rapid.Float64Range(minVal, 1-1e-10).Draw(t, "digest min")
220+
m.max = rapid.Float64Range(1+1e-10, maxVal).Draw(t, "digest max")
221+
m.err = rapid.Float64Range(minErr, 1-1e-5).Draw(t, "relative error")
222222
}
223223

224224
func (m *digestMachine) Check(*rapid.T) {}
@@ -229,9 +229,9 @@ func (m *digestMachine) AddDigest(t *rapid.T) {
229229
maxSize = 1000
230230
}
231231

232-
gen := rapid.SampledFrom(generatorNames).Draw(t, "generator").(string)
233-
seed := rapid.Int64().Draw(t, "seed").(int64)
234-
count := rapid.IntRange(0, maxSize).Draw(t, "count").(int)
232+
gen := rapid.SampledFrom(generatorNames).Draw(t, "generator")
233+
seed := rapid.Int64().Draw(t, "seed")
234+
count := rapid.IntRange(0, maxSize).Draw(t, "count")
235235

236236
d := &approxDigest{bdigest.NewDigest(m.err)}
237237
r := &perfectDigest{values: make([]float64, 0, count)}
@@ -254,7 +254,7 @@ func (m *digestMachine) AddDigest(t *rapid.T) {
254254
r.Add(f)
255255
}
256256

257-
q := rapid.Float64Range(0, 1).Draw(t, "quantile").(float64)
257+
q := rapid.Float64Range(0, 1).Draw(t, "quantile")
258258
checkDigest(t, d, r, q, m.err)
259259

260260
m.digests = append(m.digests, digestPair{d, r})
@@ -265,13 +265,13 @@ func (m *digestMachine) MergeDigests(t *rapid.T) {
265265
t.Skip("nothing to merge")
266266
}
267267

268-
to := rapid.SampledFrom(m.digests).Draw(t, "digest to").(digestPair)
269-
from := rapid.SampledFrom(m.digests).Draw(t, "digest from").(digestPair)
268+
to := rapid.SampledFrom(m.digests).Draw(t, "digest to")
269+
from := rapid.SampledFrom(m.digests).Draw(t, "digest from")
270270

271271
to.d.Merge(from.d)
272272
to.r.Merge(from.r)
273273

274-
q := rapid.Float64Range(0, 1).Draw(t, "quantile").(float64)
274+
q := rapid.Float64Range(0, 1).Draw(t, "quantile")
275275
checkDigest(t, to.d, to.r, q, m.err)
276276
}
277277

@@ -300,10 +300,10 @@ func TestDigestMarshalBinaryRoundtrip(t *testing.T) {
300300

301301
func testDigestMarshalBinaryRoundtrip(t *rapid.T) {
302302
var (
303-
relErr = rapid.Float64Range(1e-5, 1-1e-5).Draw(t, "relative error").(float64)
304-
seed = rapid.Int64().Draw(t, "seed").(int64)
305-
count = rapid.IntRange(0, 100000).Draw(t, "count").(int)
306-
ctor = rapid.Bool().Draw(t, "use constructor").(bool)
303+
relErr = rapid.Float64Range(1e-5, 1-1e-5).Draw(t, "relative error")
304+
seed = rapid.Int64().Draw(t, "seed")
305+
count = rapid.IntRange(0, 100000).Draw(t, "count")
306+
ctor = rapid.Bool().Draw(t, "use constructor")
307307
)
308308

309309
d1 := logNormalDigest(relErr, seed, count, int32(count)/10)
@@ -333,9 +333,9 @@ func TestDigest_Reset(t *testing.T) {
333333

334334
rapid.Check(t, func(t *rapid.T) {
335335
var (
336-
err = rapid.Float64Range(1e-5, 1-1e-5).Draw(t, "relative error").(float64)
337-
seed = rapid.Int64().Draw(t, "seed").(int64)
338-
count = rapid.IntRange(0, 100000).Draw(t, "count").(int)
336+
err = rapid.Float64Range(1e-5, 1-1e-5).Draw(t, "relative error")
337+
seed = rapid.Int64().Draw(t, "seed")
338+
count = rapid.IntRange(0, 100000).Draw(t, "count")
339339
)
340340

341341
d := logNormalDigest(err, seed, count, int32(count)/10)

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module pgregory.net/bdigest
22

3-
go 1.13
3+
go 1.18
44

5-
require pgregory.net/rapid v0.4.5
5+
require pgregory.net/rapid v0.5.3

go.sum

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
1-
pgregory.net/rapid v0.4.0 h1:/boyXNQlDs1pmk7g1b9u2KrYqXnqjj0ARUDsZj5kapg=
2-
pgregory.net/rapid v0.4.0/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU=
3-
pgregory.net/rapid v0.4.5 h1:Dej3+7kpi3p5/9dMouKspRs+K8EALKePW4/UYXKq8/4=
4-
pgregory.net/rapid v0.4.5/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU=
1+
pgregory.net/rapid v0.5.3 h1:163N50IHFqr1phZens4FQOdPgfJscR7a562mjQqeo4M=
2+
pgregory.net/rapid v0.5.3/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=

0 commit comments

Comments
 (0)