slices — validation proof
Go’s own slices test suite, converted to C# by go2cs, built against the converted standard
library, run under the Go-semantics test host, and compared verdict for verdict against a clean
go test -json baseline of the same sources. This page is generated by the converter from that
comparison — it is the evidence behind the slices row in
Validated Test Packages.
Validated 2026-08-28 · converter 177e9eb4e
119 matched · 3 disclosed — Go 1.23.12, windows/amd64, converted package
src/core/slices.
Verdicts
| Test | go test |
go2cs |
|---|---|---|
TestAll |
pass | pass |
TestAppendSeq |
pass | pass |
TestBackward |
pass | pass |
TestBinarySearch |
pass | pass |
TestBinarySearch/#00 |
pass | pass |
TestBinarySearch/aa |
pass | pass |
TestBinarySearch/aa#01 |
pass | pass |
TestBinarySearch/ab |
pass | pass |
TestBinarySearch/ab#01 |
pass | pass |
TestBinarySearch/ab#02 |
pass | pass |
TestBinarySearch/ac |
pass | pass |
TestBinarySearch/ad |
pass | pass |
TestBinarySearch/ad#01 |
pass | pass |
TestBinarySearch/ax |
pass | pass |
TestBinarySearch/bar |
pass | pass |
TestBinarySearch/bb |
pass | pass |
TestBinarySearch/ca |
pass | pass |
TestBinarySearch/ca#01 |
pass | pass |
TestBinarySearch/cc |
pass | pass |
TestBinarySearch/da |
pass | pass |
TestBinarySearch/db |
pass | pass |
TestBinarySearch/dd |
pass | pass |
TestBinarySearch/foo |
pass | pass |
TestBinarySearch/foo#01 |
pass | pass |
TestBinarySearch/ma |
pass | pass |
TestBinarySearch/mb |
pass | pass |
TestBinarySearch/mo |
pass | pass |
TestBinarySearch/nb |
pass | pass |
TestBinarySearch/qo |
pass | pass |
TestBinarySearch/ra |
pass | pass |
TestBinarySearch/tr |
pass | pass |
TestBinarySearch/vo |
pass | pass |
TestBinarySearch/xr |
pass | pass |
TestBinarySearch/xx |
pass | pass |
TestBinarySearch/xy |
pass | pass |
TestBinarySearch/zx |
pass | pass |
TestBinarySearch/zz |
pass | pass |
TestBinarySearch/zz#01 |
pass | pass |
TestBinarySearchFloats |
pass | pass |
TestBinarySearchFloats/-0.25 |
pass | pass |
TestBinarySearchFloats/-Inf |
pass | pass |
TestBinarySearchFloats/0 |
pass | pass |
TestBinarySearchFloats/1.4 |
pass | pass |
TestBinarySearchFloats/1.5 |
pass | pass |
TestBinarySearchFloats/NaN |
pass | pass |
TestBinarySearchFunc |
pass | pass |
TestBinarySearchInts |
pass | pass |
TestBinarySearchInts/20 |
pass | pass |
TestBinarySearchInts/23 |
pass | pass |
TestBinarySearchInts/43 |
pass | pass |
TestBinarySearchInts/80 |
pass | pass |
TestChunk |
pass | pass |
TestChunk/empty |
pass | pass |
TestChunk/even |
pass | pass |
TestChunk/nil |
pass | pass |
TestChunk/odd |
pass | pass |
TestChunk/one |
pass | pass |
TestChunk/short |
pass | pass |
TestChunkPanics |
pass | pass |
TestChunkRange |
pass | pass |
TestClip |
pass | pass |
TestClone |
pass | pass |
TestCollect |
pass | pass |
TestCompact |
pass | pass |
TestCompactClearTail |
pass | pass |
TestCompactFunc |
pass | pass |
TestCompactFuncClearTail |
pass | pass |
TestCompare |
pass | pass |
TestCompareFunc |
pass | pass |
TestConcat |
pass | fail (disclosed) |
TestConcat_too_large |
pass | pass |
TestContains |
pass | pass |
TestContainsFunc |
pass | pass |
TestDelete |
pass | pass |
TestDeleteClearTail |
pass | pass |
TestDeleteFunc |
pass | pass |
TestDeleteFuncClearTail |
pass | pass |
TestDeletePanics |
pass | pass |
TestEqual |
pass | pass |
TestEqualFunc |
pass | pass |
TestGrow |
pass | fail (disclosed) |
TestIndex |
pass | pass |
TestIndexFunc |
pass | pass |
TestInference |
pass | pass |
TestInsert |
pass | fail (disclosed) |
TestInsertGrowthRate |
pass | pass |
TestInsertOverlap |
pass | pass |
TestInsertPanics |
pass | pass |
TestMinMax |
pass | pass |
TestMinMax/[0_2_-9] |
pass | pass |
TestMinMax/[1_2] |
pass | pass |
TestMinMax/[1_2_3] |
pass | pass |
TestMinMax/[2_1] |
pass | pass |
TestMinMax/[2_1_3] |
pass | pass |
TestMinMax/[2_2_3] |
pass | pass |
TestMinMax/[3_2_1] |
pass | pass |
TestMinMax/[3_2_3] |
pass | pass |
TestMinMax/[7] |
pass | pass |
TestMinMaxNaNs |
pass | pass |
TestMinMaxPanics |
pass | pass |
TestRepeat |
pass | pass |
TestRepeatPanics |
pass | pass |
TestReplace |
pass | pass |
TestReplaceClearTail |
pass | pass |
TestReplaceEndClearTail |
pass | pass |
TestReplaceGrow |
pass | pass |
TestReplaceGrowthRate |
pass | pass |
TestReplaceOverlap |
pass | pass |
TestReplacePanics |
pass | pass |
TestReverse |
pass | pass |
TestSortFloat64Slice |
pass | pass |
TestSortFuncIntSlice |
pass | pass |
TestSortIntSlice |
pass | pass |
TestSortLarge_Random |
pass | pass |
TestSortStringSlice |
pass | pass |
TestSorted |
pass | pass |
TestSortedFunc |
pass | pass |
TestSortedStableFunc |
pass | pass |
TestStability |
pass | pass |
TestValues |
pass | pass |
TestValuesAppendSeq |
pass | pass |
TestValuesCollect |
pass | pass |
Disclosed divergences
A disclosed divergence is a specific Go assertion the managed CLR provably cannot satisfy — not
a skipped test and not a tolerance. Each one is pinned by exact failure signature in the package’s
hand-owned go2cs_test_disclosures.json;
a disclosed test that fails any other way is still a hard mismatch.
| Test | Class | Pinned reason |
|---|---|---|
TestConcat |
alloc-count-semantics |
exact-count allocBytes/AllocsPerRun asserts (want 1 allocation per Concat): the managed measurement mixes golib’s object counter with byte-derived readings the CLR regime cannot denominate in Go mallocs (measured: want 1, reading 2 for the value cases and 280 for the empty case at the B2 kind-split emission with the slice-shaped spread landed), so no allocation behavior can satisfy the count assert |
TestGrow |
alloc-count-semantics |
want-zero-then-exactly-one allocation asserts around Grow: the managed regime reads 112 where Go wants 0 (sufficient capacity) and 2 where Go wants 1 (insufficient) — the byte-derived shim and golib’s object counter cannot denominate the CLR’s behavior in Go malloc units, the established alloc-count-semantics shape |
TestInsert |
alloc-profile |
an allocation BUDGET assert (want < 25 inserting 50 elements): Go’s Insert rotates through two in-place appends whose temporaries escape analysis keeps on the stack, while the managed model heap-boxes each rotation temporary — 242 golib objects at the B2 kind-split emission with the slice-shaped spread landed, a structural stack-vs-heap profile no slimming brings under the budget |
Excluded declarations
Declarations filtered from both sides of the comparison, and therefore not claimed above:
Benchmark, Fuzz and Example declarations the converted host does not execute, plus any
test requiring a capability the managed runtime does not provide — a testing member the host
has not implemented, or a platform behavior it provably cannot reproduce. Each is named with
the capability it needs.
- BenchmarkBinarySearchFloats (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkBinarySearchFuncStruct (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkCompact (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkCompactFunc (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkCompactFunc_Large (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkCompact_Large (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkEqualFunc_Large (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkIndexFunc_Large (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkIndex_Large (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkReplace (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkSortFuncStruct (benchmark): benchmark execution is deferred to Phase 4D
- ExampleBinarySearch (example): example execution is deferred to Phase 4D
- ExampleBinarySearchFunc (example): example execution is deferred to Phase 4D
- ExampleChunk (example): example execution is deferred to Phase 4D
- ExampleClip (example): example execution is deferred to Phase 4D
- ExampleClone (example): example execution is deferred to Phase 4D
- ExampleCompact (example): example execution is deferred to Phase 4D
- ExampleCompactFunc (example): example execution is deferred to Phase 4D
- ExampleCompare (example): example execution is deferred to Phase 4D
- ExampleCompareFunc (example): example execution is deferred to Phase 4D
- ExampleConcat (example): example execution is deferred to Phase 4D
- ExampleContains (example): example execution is deferred to Phase 4D
- ExampleContainsFunc (example): example execution is deferred to Phase 4D
- ExampleDelete (example): example execution is deferred to Phase 4D
- ExampleDeleteFunc (example): example execution is deferred to Phase 4D
- ExampleEqual (example): example execution is deferred to Phase 4D
- ExampleEqualFunc (example): example execution is deferred to Phase 4D
- ExampleGrow (example): example execution is deferred to Phase 4D
- ExampleIndex (example): example execution is deferred to Phase 4D
- ExampleIndexFunc (example): example execution is deferred to Phase 4D
- ExampleInsert (example): example execution is deferred to Phase 4D
- ExampleIsSorted (example): example execution is deferred to Phase 4D
- ExampleIsSortedFunc (example): example execution is deferred to Phase 4D
- ExampleMax (example): example execution is deferred to Phase 4D
- ExampleMaxFunc (example): example execution is deferred to Phase 4D
- ExampleMin (example): example execution is deferred to Phase 4D
- ExampleMinFunc (example): example execution is deferred to Phase 4D
- ExampleRepeat (example): example execution is deferred to Phase 4D
- ExampleReplace (example): example execution is deferred to Phase 4D
- ExampleReverse (example): example execution is deferred to Phase 4D
- ExampleSort (example): example execution is deferred to Phase 4D
- ExampleSortFunc_caseInsensitive (example): example execution is deferred to Phase 4D
- ExampleSortFunc_multiField (example): example execution is deferred to Phase 4D
- ExampleSortStableFunc (example): example execution is deferred to Phase 4D