CodeSampleX

示例

golang.org/x/exp v0.0.0-20260824195058-e88cd73687aa: rand.New

已验证示例 — golang golang.org/x/exp v0.0.0-20260824195058-e88cd73687aa: rand.New. contract 在 go 1.26 · linux debian/x64 · docker 上运行并通过.

sha256:1046b8afc3767c318260c7e8c7b6aa908028409ca1c74c29a7c83f3431ed9e0f

本网络只提供一件事:能构建的样本。它在沙箱中运行并保留签名回执。它不评级、不担保——同样的代码能否在你的环境构建,它没有测量过。 提交了通过的契约回执的不同签名密钥数量。为 1 表示只有作者;大于 1 表示还有其他人构建过。密钥是自行生成的,背后没有注册身份,因此计的是密钥而非人。 MIT-0

执行证据

声明的环境与签名的运行分开呈现,你可以看到这个样本究竟运行了什么、在哪里运行。

证据依据
签名契约通过
验证回执
1
构建过它的签名密钥
1
声明的环境 linux 24 · ubuntu · glibc 2.39 x64 go

验证运行环境

环境 契约 阶段 运行日期
go 1.26 · linux debian/x64 · docker ed25519:c1973797be207ac4 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · golang@1golang:1.26@sha256:e30143be198a…
2026-09-04

案例

HOW
目标
verify golang.org/x/exp/rand.New in pkg:golang/golang.org/x/exp@v0.0.0-20260824195058-e88cd73687aa
包
符号
  • golang.org/x/exp/rand.New
创建时间
2026-09-04T00:31:15Z

契约

  1. rand.New returns a non-nil *rand.Rand instance initialized with a rand.Source
  2. rand.New produces deterministic pseudo-random sequences for identical seeds across uint64, intn, and float64
  3. rand.New instances maintain independent state without cross-generator interference
  4. rand.New operates with custom implementations satisfying the rand.Source interface
  5. rand.New instances reseed deterministically via Seed method to reproduce sequences

文件

  • PROMPT.md
  • csx.json
  • go.mod
  • go.sum
  • rand_generator.go
  • spec.json
  • test/contract.go

下载源代码构件 (tar.gz)

源代码

PROMPT.md
Clean-room public code sample — generation instructions

Write a brand-new, minimal, self-contained code sample in this clean-room directory.
Do not copy, paraphrase, or reference any existing project source. Work only from this spec.

A csx.json manifest scaffold already exists. Do not recreate it from memory. Preserve its case.goal, packages and symbols; fill its empty case.contract with exact assertions and correct its environment, commands and verifierAdapter for the files you generate.

Goal: verify golang.org/x/exp/rand.New in pkg:golang/golang.org/x/exp@v0.0.0-20260824195058-e88cd73687aa
Kind: HOW

Use EXACTLY these public packages and versions:
  - pkg:golang/golang.org/x/exp@v0.0.0-20260824195058-e88cd73687aa
Demonstrate these symbols/APIs:
  - golang.org/x/exp/rand.New

Rules:
  - One focused purpose; the smallest project that proves the goal.
  - Include a contract test (test/contract.*) that runs OFFLINE and exits 0 exactly when the goal behavior works.
  - Pin every dependency with a lockfile so resolution is reproducible.
  - No secrets, credentials, or tokens. No real URLs (only example.com or localhost). No absolute paths.
  - No personal names, emails, company names, or project identifiers of any kind.
  - No binaries and no generated output (node_modules, dist, target, venv, .git, .env).
  - Keep it under 200 files and 256KB packed.
csx.json
{"case":{"caseId":"case:sha256:e9ca182fa3931666acfb9331a3354141939a5ed400549a07b802cdb1ecee60d8","contract":["rand.New returns a non-nil *rand.Rand instance initialized with a rand.Source","rand.New produces deterministic pseudo-random sequences for identical seeds across uint64, intn, and float64","rand.New instances maintain independent state without cross-generator interference","rand.New operates with custom implementations satisfying the rand.Source interface","rand.New instances reseed deterministically via Seed method to reproduce sequences"],"goal":"verify golang.org/x/exp/rand.New in pkg:golang/golang.org/x/exp@v0.0.0-20260824195058-e88cd73687aa","kind":"HOW","packages":["pkg:golang/golang.org/x/exp@v0.0.0-20260824195058-e88cd73687aa"],"schemaVersion":1,"symbols":["golang.org/x/exp/rand.New"]},"contractCommand":["go","run","./test"],"environment":{"arch":"x64","distro":"ubuntu","ecosystem":"golang","libc":"glibc","libcVersion":"2.39","os":"linux","osVersionBucket":"24","packageManager":"go","schemaVersion":1},"license":"MIT-0","packages":["pkg:golang/golang.org/x/exp@v0.0.0-20260824195058-e88cd73687aa"],"schemaVersion":1,"subject":"pkg:golang/golang.org/x/exp@v0.0.0-20260824195058-e88cd73687aa","symbols":["golang.org/x/exp/rand.New"],"verifierAdapter":"golang@1"}
go.mod
module sample

go 1.26.6

require golang.org/x/exp v0.0.0-20260824195058-e88cd73687aa
go.sum
golang.org/x/exp v0.0.0-20260824195058-e88cd73687aa h1:QSyA8ishJCyT21kER9KwNt0b7BM3iRK4x9QXhjN5Fdk=
golang.org/x/exp v0.0.0-20260824195058-e88cd73687aa/go.mod h1:zeBbvyFKDaLwa7CH/zI8KXt7gTl14SF7sO08Pl5jBCM=
rand_generator.go
package sample

import (
	"golang.org/x/exp/rand"
)

// NewGenerator creates a new *rand.Rand instance initialized with rand.New and rand.NewSource.
func NewGenerator(seed uint64) *rand.Rand {
	src := rand.NewSource(seed)
	return rand.New(src)
}

// NewGeneratorWithSource creates a new *rand.Rand instance using any provided rand.Source.
func NewGeneratorWithSource(src rand.Source) *rand.Rand {
	return rand.New(src)
}

// SequenceSource implements rand.Source providing a predictable sequence of values.
type SequenceSource struct {
	values []uint64
	pos    int
}

// NewSequenceSource constructs a SequenceSource wrapping a sequence of uint64 values.
func NewSequenceSource(values []uint64) *SequenceSource {
	vals := make([]uint64, len(values))
	copy(vals, values)
	return &SequenceSource{
		values: vals,
		pos:    0,
	}
}

// Uint64 returns the next uint64 from the fixed sequence, cycling when exhausted.
func (s *SequenceSource) Uint64() uint64 {
	if len(s.values) == 0 {
		return 0
	}
	val := s.values[s.pos%len(s.values)]
	s.pos++
	return val
}

// Seed resets the source position and replaces the first element with seed.
func (s *SequenceSource) Seed(seed uint64) {
	s.pos = 0
	if len(s.values) > 0 {
		s.values[0] = seed
	}
}
spec.json
{
  "schemaVersion": 1,
  "goal": "verify golang.org/x/exp/rand.New in pkg:golang/golang.org/x/exp@v0.0.0-20260824195058-e88cd73687aa",
  "kind": "HOW",
  "packages": [
    "pkg:golang/golang.org/x/exp@v0.0.0-20260824195058-e88cd73687aa"
  ],
  "symbols": [
    "golang.org/x/exp/rand.New"
  ]
}
test/contract.go
package main

import (
	"fmt"
	"os"

	"golang.org/x/exp/rand"
	"sample"
)

func main() {
	// Assertion 1: rand.New returns a non-nil *rand.Rand instance from a rand.Source
	src := rand.NewSource(12345)
	r := rand.New(src)
	if r == nil {
		fmt.Fprintf(os.Stderr, "FAIL: rand.New returned nil\n")
		os.Exit(1)
	}

	// Assertion 2: rand.New produces deterministic sequences for identical seeds across uint64, intn, and float64
	r1 := sample.NewGenerator(42)
	r2 := sample.NewGenerator(42)
	for i := 0; i < 100; i++ {
		u1, u2 := r1.Uint64(), r2.Uint64()
		if u1 != u2 {
			fmt.Fprintf(os.Stderr, "FAIL: Uint64 mismatch at step %d: %d != %d\n", i, u1, u2)
			os.Exit(1)
		}
		in1, in2 := r1.Intn(100), r2.Intn(100)
		if in1 != in2 {
			fmt.Fprintf(os.Stderr, "FAIL: Intn mismatch at step %d: %d != %d\n", i, in1, in2)
			os.Exit(1)
		}
		f1, f2 := r1.Float64(), r2.Float64()
		if f1 != f2 {
			fmt.Fprintf(os.Stderr, "FAIL: Float64 mismatch at step %d: %f != %f\n", i, f1, f2)
			os.Exit(1)
		}
	}

	// Assertion 3: rand.New instances maintain independent state without cross-generator interference
	genA := sample.NewGenerator(100)
	genB := sample.NewGenerator(100)
	genC := sample.NewGenerator(100)

	for i := 0; i < 50; i++ {
		_ = genA.Uint64()
	}
	valB := genB.Uint64()
	valC := genC.Uint64()
	if valB != valC {
		fmt.Fprintf(os.Stderr, "FAIL: independent generators genB and genC diverged: %d != %d\n", valB, valC)
		os.Exit(1)
	}

	// Assertion 4: rand.New operates with custom rand.Source implementations fulfilling the interface
	seq := []uint64{10, 20, 30, 40, 50}
	customSrc := sample.NewSequenceSource(seq)
	customRand := sample.NewGeneratorWithSource(customSrc)
	for i := 0; i < len(seq)*2; i++ {
		expected := seq[i%len(seq)]
		got := customRand.Uint64()
		if got != expected {
			fmt.Fprintf(os.Stderr, "FAIL: custom source returned %d, expected %d\n", got, expected)
			os.Exit(1)
		}
	}

	// Assertion 5: rand.New instances reseed deterministically via Seed method
	rRe := sample.NewGenerator(777)
	firstBatch := make([]uint64, 20)
	for i := 0; i < 20; i++ {
		firstBatch[i] = rRe.Uint64()
	}
	rRe.Seed(777)
	for i := 0; i < 20; i++ {
		val := rRe.Uint64()
		if val != firstBatch[i] {
			fmt.Fprintf(os.Stderr, "FAIL: value after re-seed mismatch at step %d: %d != %d\n", i, val, firstBatch[i])
			os.Exit(1)
		}
	}

	fmt.Println("PASS: golang.org/x/exp/rand.New contract verified")
}

原始种子者

匿名