math/big — validation proof

Go’s own math/big 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 math/big row in Validated Test Packages.

Validated 2026-08-29 · converter 773afa2c2

224 matched · 2 disclosed — Go 1.23.12, windows/amd64, converted package src/core/math/big.

Verdicts

Test go test go2cs
TestAbsZ pass pass
TestAliasing pass pass
TestAliasing/Abs pass pass
TestAliasing/Add pass pass
TestAliasing/And pass pass
TestAliasing/AndNot pass pass
TestAliasing/Div pass pass
TestAliasing/Exp-XY pass pass
TestAliasing/Exp-XZ pass pass
TestAliasing/Exp-YZ pass pass
TestAliasing/GCD pass pass
TestAliasing/GCD-X pass pass
TestAliasing/GCD-Y pass pass
TestAliasing/Lsh pass pass
TestAliasing/Mod pass pass
TestAliasing/ModInverse pass pass
TestAliasing/ModSqrt pass pass
TestAliasing/Mul pass pass
TestAliasing/Neg pass pass
TestAliasing/Not pass pass
TestAliasing/Or pass pass
TestAliasing/Quo pass pass
TestAliasing/Rand pass pass
TestAliasing/Rem pass pass
TestAliasing/Rsh pass pass
TestAliasing/Set pass pass
TestAliasing/SetBit pass pass
TestAliasing/Sqrt pass pass
TestAliasing/Sub pass pass
TestAliasing/Xor pass pass
TestAppendText pass pass
TestBinomial pass pass
TestBit pass pass
TestBitLen pass pass
TestBitSet pass pass
TestBits pass pass
TestBitwise pass pass
TestBytes pass pass
TestCmp pass pass
TestCmpAbs pass pass
TestDecimalInit pass pass
TestDecimalRounding pass pass
TestDecimalString pass pass
TestDenomRace pass pass
TestDivWW pass pass
TestDivisionSigns pass pass
TestExp pass pass
TestExpNN pass pass
TestFibo pass pass
TestFillBytes pass pass
TestFillBytes/-0xffffffff pass pass
TestFillBytes/0 pass pass
TestFillBytes/0x10000000000000000 pass pass
TestFillBytes/0xabababababababababababababababababababababababababa pass pass
TestFillBytes/0xffffffff pass pass
TestFillBytes/0xffffffffffffffff pass pass
TestFillBytes/0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff pass pass
TestFillBytes/1000 pass pass
TestFloat32Distribution pass pass
TestFloat32SpecialCases pass pass
TestFloat64 pass pass
TestFloat64Distribution pass pass
TestFloat64SpecialCases pass pass
TestFloat64Text pass pass
TestFloatAbs pass pass
TestFloatAdd pass pass
TestFloatAdd32 pass pass
TestFloatAdd64 pass pass
TestFloatAddRoundZero pass pass
TestFloatArithmeticOverflow pass pass
TestFloatArithmeticRounding pass pass
TestFloatArithmeticSpecialValues pass pass
TestFloatCmpSpecialValues pass pass
TestFloatCorruptGob pass pass
TestFloatFloat32 pass pass
TestFloatFloat64 pass pass
TestFloatFormat pass pass
TestFloatGobDecodeInvalid pass pass
TestFloatGobDecodeShortBuffer pass pass
TestFloatGobEncoding pass pass
TestFloatInc pass pass
TestFloatInt pass pass
TestFloatInt64 pass pass
TestFloatIsInt pass pass
TestFloatJSONEncoding pass pass
TestFloatMantExp pass pass
TestFloatMantExpAliasing pass pass
TestFloatMinPrec pass pass
TestFloatMul pass pass
TestFloatMul64 pass pass
TestFloatNeg pass pass
TestFloatPrec pass pass
TestFloatPredicates pass pass
TestFloatQuo pass pass
TestFloatQuoSmoke pass pass
TestFloatRat pass pass
TestFloatRound pass pass
TestFloatRound24 pass pass
TestFloatScan pass pass
TestFloatSetFloat64 pass pass
TestFloatSetFloat64String pass pass
TestFloatSetInf pass pass
TestFloatSetInt pass pass
TestFloatSetInt64 pass pass
TestFloatSetMantExp pass pass
TestFloatSetPrec pass pass
TestFloatSetRat pass pass
TestFloatSetUint64 pass pass
TestFloatSign pass pass
TestFloatSqrt pass pass
TestFloatSqrt64 pass pass
TestFloatSqrtSpecial pass pass
TestFloatString pass pass
TestFloatText pass pass
TestFloatUint64 pass pass
TestFloatZeroValue pass pass
TestFormat pass pass
TestFromBits pass pass
TestFunNN pass pass
TestFunVV pass pass
TestFunVW pass pass
TestFunVWExt pass pass
TestFunVWW pass pass
TestGcd pass pass
TestGetString pass pass
TestGobEncodingNilIntInSlice pass pass
TestGobEncodingNilRatInSlice pass pass
TestHilbert pass pass
TestInt64 pass pass
TestIntCmpSelf pass pass
TestIntGobEncoding pass pass
TestIntJSONEncoding pass pass
TestIntJSONEncodingNil pass pass
TestIntText pass pass
TestIntXMLEncoding pass pass
TestIsFinite pass pass
TestIsInt pass pass
TestIssue20490 pass pass
TestIssue22830 pass pass
TestIssue2379 pass pass
TestIssue2607 pass pass
TestIssue31084 pass pass
TestIssue31184 pass pass
TestIssue34919 pass pass
TestIssue3521 pass pass
TestIssue37499 pass pass
TestIssue42552 pass pass
TestIssue42838 pass pass
TestIssue45910 pass pass
TestIssue6866 pass pass
TestIssue820 pass pass
TestJacobi pass pass
TestJacobiPanic pass pass
TestLinkerGC pass pass
TestLsh pass pass
TestLshRsh pass pass
TestLshSelf pass pass
TestLucasPseudoprimes pass pass
TestMaxBase pass pass
TestMillerRabinPseudoprimes pass pass
TestModInverse pass pass
TestModSqrt pass pass
TestModW pass pass
TestMontgomery pass pass
TestMul pass pass
TestMulAddWWW pass pass
TestMulBits pass pass
TestMulRangeN pass pass
TestMulRangeZ pass pass
TestMulUnbalanced pass fail (disclosed)
TestMulWW pass pass
TestNLZ pass pass
TestNatDiv pass pass
TestNatSubMod2N pass pass
TestNatSubMod2N/aliasX pass pass
TestNatSubMod2N/aliasY pass pass
TestNatSubMod2N/noalias pass pass
TestNewIntAllocs pass fail (disclosed)
TestNewIntMinInt64 pass pass
TestNormBits pass pass
TestNot pass pass
TestProbablyPrime pass pass
TestProdZZ pass pass
TestQuo pass pass
TestQuoStepD6 pass pass
TestRatAbs pass pass
TestRatBin pass pass
TestRatCmp pass pass
TestRatGobDecodeShortBuffer pass pass
TestRatGobEncoding pass pass
TestRatInv pass pass
TestRatJSONEncoding pass pass
TestRatNeg pass pass
TestRatScan pass pass
TestRatSetFrac64Rat pass pass
TestRatSetInt64 pass pass
TestRatSetString pass pass
TestRatSetStringZero pass pass
TestRatSetUint64 pass pass
TestRatSign pass pass
TestRatXMLEncoding pass pass
TestRsh pass pass
TestRshSelf pass pass
TestScan pass pass
TestScanBase pass pass
TestScanExponent pass pass
TestScanPi pass pass
TestScanPiParallel pass pass
TestSet pass pass
TestSetBytes pass pass
TestSetFloat64NonFinite pass pass
TestSetString pass pass
TestSetZ pass pass
TestShiftLeft pass pass
TestShiftOverlap pass pass
TestShiftRight pass pass
TestSignZ pass pass
TestSqr pass pass
TestSqrt pass pass
TestSticky pass pass
TestString pass pass
TestStringPowers pass pass
TestSumZZ pass pass
TestTrailingZeroBits pass pass
TestUint64 pass pass
TestZeroRat 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
TestMulUnbalanced alloc-profile allocation-byte BUDGET assert on a different meter than the AllocsPerRun rows — runtime.ReadMemStats TotalAlloc delta, which the converted runtime maps to the CLR’s own GC.GetTotalAllocatedBytes (a true byte total over every managed allocation, not golib’s object-count lower bound): nat(nil).mul of a 50,000-word by 40-word unbalanced multiply must stay within 10x the input size (~400 KB), and the converted path allocates 23,482,832 bytes (58x) — the managed temp-nat slice workspaces the recursive unbalanced multiply mints per block, which Go's escape analysis and nat pooling keep out of its own heap total. Same managed-runtime grounding as the AllocsPerRun rows, measured in bytes instead of objects. Reduction of exactly these sites is the zh-box reduction arc's math/big harvest; this entry retires with it. Measured 23,482,832 bytes = 58x input, 2026-08-29, go1.23.12/windows-amd64.
TestNewIntAllocs alloc-profile want-zero AllocsPerRun assert: every leg is x.Add(x, NewInt(k)), and Go’s escape analysis proves the NewInt(k) argument non-escaping so it lives on the stack; the managed model mints exactly ONE golib box per run for it (measured 1.0 at the B2 kind-split emission) — the one structural object the assert forbids

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.

Gated by a host capability

A gate names a declaration the converted test host provably cannot run at all — not an assertion it fails. It is filtered from both sides of the comparison, and because the gate keys on the DECLARATION, every verdict row go test reports underneath it is withdrawn with it. None of the rows below is claimed by the matched count above; they are named here so this page states exactly what the row leaves out.

TestCalibrate — B.ResetTimer

1 verdict row go test reports and this comparison does not claim:

TestCalibrate