本文整理汇总了Golang中github.com/jddixon/rnglib_go.PRNG.NextBoolean方法的典型用法代码示例。如果您正苦于以下问题:Golang PRNG.NextBoolean方法的具体用法?Golang PRNG.NextBoolean怎么用?Golang PRNG.NextBoolean使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/jddixon/rnglib_go.PRNG
的用法示例。
在下文中一共展示了PRNG.NextBoolean方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: makeNodeID
func makeNodeID(rng *xr.PRNG) (*xi.NodeID, error) {
var buffer []byte
// quasi-random choice, whether to use an SHA1 or SHA3 nodeID
if rng.NextBoolean() {
buffer = make([]byte, xu.SHA1_BIN_LEN)
} else {
buffer = make([]byte, xu.SHA3_BIN_LEN)
}
rng.NextBytes(buffer)
return xi.NewNodeID(buffer)
}
示例2: makeANodeID
func (s *XLSuite) makeANodeID(c *C, rng *xr.PRNG) (id *NodeID) {
var length int
if rng.NextBoolean() {
length = xu.SHA1_BIN_LEN
} else {
length = xu.SHA2_BIN_LEN
}
data := make([]byte, length)
rng.NextBytes(data)
id, err := New(data)
c.Assert(err, IsNil)
return id
}
示例3: doTestParser
// PARSER TESTS =====================================================
func (s *XLSuite) doTestParser(c *C, rng *xr.PRNG, whichSHA int) {
var tHash []byte
switch whichSHA {
case xu.USING_SHA1:
tHash = make([]byte, xu.SHA1_BIN_LEN)
case xu.USING_SHA2:
tHash = make([]byte, xu.SHA2_BIN_LEN)
case xu.USING_SHA3:
tHash = make([]byte, xu.SHA3_BIN_LEN)
// XXX DEFAULT = ERROR
}
rng.NextBytes(tHash) // not really a hash, of course
sHash := hex.EncodeToString(tHash) // string form of tHash
dirName := rng.NextFileName(8) + "/"
nameWithoutSlash := dirName[0 : len(dirName)-1]
indent := rng.Intn(4)
var lSpaces, rSpaces string
for i := 0; i < indent; i++ {
lSpaces += " " // on the left
rSpaces += " " // on the right
}
// TEST FIRST LINE PARSER -----------------------------
line := lSpaces + sHash + " " + dirName + rSpaces
indent2, treeHash2, dirName2, err := ParseFirstLine(line, " ")
c.Assert(err, IsNil)
c.Assert(indent2, Equals, indent)
c.Assert(bytes.Equal(treeHash2, tHash), Equals, true)
c.Assert(dirName2, Equals, nameWithoutSlash)
// TEST OTHER LINE PARSER -----------------------------
yesIsDir := rng.NextBoolean()
if yesIsDir {
line = lSpaces + sHash + " " + dirName + rSpaces
} else {
line = lSpaces + sHash + " " + nameWithoutSlash + rSpaces
}
nodeDepth, nodeHash, nodeName, isDir, err := ParseOtherLine(line, " ")
c.Assert(err, IsNil)
c.Assert(nodeDepth, Equals, indent)
c.Assert(bytes.Equal(nodeHash, tHash), Equals, true)
c.Assert(nodeName, Equals, nameWithoutSlash)
c.Assert(isDir, Equals, yesIsDir)
}