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.