mukan-consensus/libs/math/fraction_test.go
Mukan Erkin Törük ef24c0b67e
Some checks are pending
docker-build-cometbft / vars (push) Waiting to run
docker-build-cometbft / build-images (amd64, ubuntu-24.04) (push) Blocked by required conditions
docker-build-cometbft / build-images (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
docker-build-cometbft / merge-images (push) Blocked by required conditions
docker-build-e2e-node / vars (push) Waiting to run
docker-build-e2e-node / build-images (amd64, ubuntu-24.04) (push) Blocked by required conditions
docker-build-e2e-node / build-images (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
docker-build-e2e-node / merge-images (push) Blocked by required conditions
initial: sovereign Mukan Network fork
2026-05-11 03:18:27 +03:00

86 lines
1.1 KiB
Go

package math
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestParseFraction(t *testing.T) {
testCases := []struct {
f string
exp Fraction
err bool
}{
{
f: "2/3",
exp: Fraction{2, 3},
err: false,
},
{
f: "15/5",
exp: Fraction{15, 5},
err: false,
},
// test divide by zero error
{
f: "2/0",
exp: Fraction{},
err: true,
},
// test negative
{
f: "-1/2",
exp: Fraction{},
err: true,
},
{
f: "1/-2",
exp: Fraction{},
err: true,
},
// test overflow
{
f: "9223372036854775808/2",
exp: Fraction{},
err: true,
},
{
f: "2/9223372036854775808",
exp: Fraction{},
err: true,
},
{
f: "2/3/4",
exp: Fraction{},
err: true,
},
{
f: "123",
exp: Fraction{},
err: true,
},
{
f: "1a2/4",
exp: Fraction{},
err: true,
},
{
f: "1/3bc4",
exp: Fraction{},
err: true,
},
}
for idx, tc := range testCases {
output, err := ParseFraction(tc.f)
if tc.err {
assert.Error(t, err, idx)
} else {
assert.NoError(t, err, idx)
}
assert.Equal(t, tc.exp, output, idx)
}
}