Exemplo n.º 1
0
func testRandBytes(tt testing2.TB, f func(int) ([]byte, error), charset string) {
	s, e := f(32)
	tt.
		Eq(e, nil).
		Eq(32, len(s)).
		True(strings2.IsAllCharsIn(unsafe2.String(s), charset))
}
Exemplo n.º 2
0
func testRandString(tt testing2.TB, f func(int) (string, error), charset string) {
	s, e := f(32)
	tt.
		Eq(e, nil).
		Eq(32, len(s)).
		True(strings2.IsAllCharsIn(s, charset))
}
Exemplo n.º 3
0
func testBits(tt testing2.TB, s *Bits, list []uint, empty bool) {
	for _, l := range list {
		s.Set(l)
		tt.True(s.IsSet(l))

		s.Unset(l)
		tt.False(s.IsSet(l))

		s.SetTo(l, true)
		tt.True(s.IsSet(l))

		if empty {
			tt.True(s.Uint() == 1<<l)
			tt.True(s.Uint64() == 1<<l)
		}

		s.SetTo(l, false)
		tt.False(s.IsSet(l))

		s.Flip(l)
		tt.True(s.IsSet(l))

		s.FlipAll()
		tt.False(s.IsSet(l))

		s.SetAll()
		tt.True(s.IsSet(l))

		s.UnsetAll()
		tt.False(s.IsSet(l))

		s.SetBefore(l)
		for i := uint(0); i < l; i++ {
			tt.True(s.IsSet(i))
		}

		s.SetSince(l)
		for i := l; i < 64; i++ {
			tt.True(s.IsSet(uint(i)))
		}

		s.Unset(l)
		tt.True(s.BitCount() == 63)

		s.UnsetBefore(l)
		for i := uint(0); i < l; i++ {
			tt.False(s.IsSet(i))
		}

		s.UnsetSince(l)
		for i := l; i < 64; i++ {
			tt.False(s.IsSet(i))
		}
	}
}
Exemplo n.º 4
0
func testBitset(tt testing2.TB, s *Bitset, list []uint) {
	s.UnsetAll()

	for _, l := range list {
		s.Set(l)
		tt.True(s.IsSet(l))

		s.Unset(l)
		tt.False(s.IsSet(l))

		s.SetTo(l, true)
		tt.True(s.IsSet(l))

		s.SetTo(l, false)
		tt.False(s.IsSet(l))

		s.Flip(l)
		tt.True(s.IsSet(l))

		s.FlipAll()
		tt.False(s.IsSet(l))

		s.SetAll()
		tt.True(s.IsSet(l))

		s.Unset(l)
		tt.Eq(s.BitCount(), int(s.Length(0)-1))

		s.UnsetAll()
		tt.False(s.IsSet(l))
	}
	tt.Eq(uint(64), s.UnitLen())
	tt.Eq(uint(1), s.UnitCount())

	s.UnsetAll()
	for _, l := range list {
		s.Set(l)
	}
	tt.DeepEq(s.Bits(), list)
	s.Flip(127)
	tt.Eq(uint(128), s.Length(0))

	tt.True(s.Length(64) == 64)
	s.UnsetAll()

	s.Except(list...)
	for _, l := range list {
		tt.False(s.IsSet(l))
	}

	cl := s.Clone()
	cl.Length(256)
	tt.True(cl.UnitCount() == 4)
	cl.Except(list...).Except(cl.Bits()...)
	s.Intersection(cl)
	tt.True(s.BitCount() == 0)

	s.Union(cl)
	tt.True(s.BitCount() == len(list))

	s.Diff(cl)
	tt.True(s.BitCount() == 0)

	s.UnsetAll()
	cl.UnsetAll()
	cl.Intersection(s)
	tt.True(cl.BitCount() == 0)
}