mirror of
https://github.com/v2fly/v2ray-core.git
synced 2024-12-30 05:56:54 -05:00
test cases for rand
This commit is contained in:
parent
a766c61dcc
commit
26c040537f
20
math/rand_test.go
Normal file
20
math/rand_test.go
Normal file
@ -0,0 +1,20 @@
|
||||
package math
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/v2ray/v2ray-core/testing/unit"
|
||||
)
|
||||
|
||||
func TestGenerateRandomInt64InRange(t *testing.T) {
|
||||
assert := unit.Assert(t)
|
||||
base := time.Now().Unix()
|
||||
delta := 100
|
||||
|
||||
for i := 0; i < 100; i++ {
|
||||
v := GenerateRandomInt64InRange(base, delta)
|
||||
assert.Int64(v).AtMost(base + int64(delta))
|
||||
assert.Int64(v).AtLeast(base - int64(delta))
|
||||
}
|
||||
}
|
@ -16,6 +16,10 @@ func Assert(t *testing.T) *Assertion {
|
||||
return assert
|
||||
}
|
||||
|
||||
func (a *Assertion) Int64(value int64) *Int64Subject {
|
||||
return NewInt64Subject(NewSubject(a), value)
|
||||
}
|
||||
|
||||
func (a *Assertion) Int(value int) *IntSubject {
|
||||
return NewIntSubject(NewSubject(a), value)
|
||||
}
|
||||
|
54
testing/unit/int64subject.go
Normal file
54
testing/unit/int64subject.go
Normal file
@ -0,0 +1,54 @@
|
||||
package unit
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type Int64Subject struct {
|
||||
*Subject
|
||||
value int64
|
||||
}
|
||||
|
||||
func NewInt64Subject(base *Subject, value int64) *Int64Subject {
|
||||
return &Int64Subject{
|
||||
Subject: base,
|
||||
value: value,
|
||||
}
|
||||
}
|
||||
|
||||
func (subject *Int64Subject) Named(name string) *Int64Subject {
|
||||
subject.Subject.Named(name)
|
||||
return subject
|
||||
}
|
||||
|
||||
func (subject *Int64Subject) Fail(verb string, other int64) {
|
||||
subject.FailWithMessage("Not true that " + subject.DisplayString() + " " + verb + " <" + strconv.FormatInt(other, 10) + ">.")
|
||||
}
|
||||
|
||||
func (subject *Int64Subject) DisplayString() string {
|
||||
return subject.Subject.DisplayString(strconv.FormatInt(subject.value, 10))
|
||||
}
|
||||
|
||||
func (subject *Int64Subject) Equals(expectation int64) {
|
||||
if subject.value != expectation {
|
||||
subject.Fail("is equal to", expectation)
|
||||
}
|
||||
}
|
||||
|
||||
func (subject *Int64Subject) GreaterThan(expectation int64) {
|
||||
if subject.value <= expectation {
|
||||
subject.Fail("is greater than", expectation)
|
||||
}
|
||||
}
|
||||
|
||||
func (subject *Int64Subject) AtMost(expectation int64) {
|
||||
if subject.value > expectation {
|
||||
subject.Fail("is at most", expectation)
|
||||
}
|
||||
}
|
||||
|
||||
func (subject *Int64Subject) AtLeast(expectation int64) {
|
||||
if subject.value < expectation {
|
||||
subject.Fail("is at least", expectation)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user