package calc_test

import (
	"testing"

	source "galaxy/calc"
	bridge "galaxy/core/calc"

	"github.com/stretchr/testify/assert"
)

func TestCeil3Parity(t *testing.T) {
	t.Parallel()
	cases := []float64{0, 5, 5.0003, 4.2761, 139.29503, 0.0001, 1.9999999998}
	for _, c := range cases {
		assert.Equal(t, source.Ceil3(c), bridge.Ceil3(c))
	}
}

func TestCeil3Values(t *testing.T) {
	t.Parallel()
	assert.Equal(t, 5.0, source.Ceil3(5.0))
	assert.Equal(t, 5.001, source.Ceil3(5.0003))
	assert.Equal(t, 4.277, source.Ceil3(4.2761))
	// Float noise just above an exact step stays put.
	assert.Equal(t, 5.0, source.Ceil3(5.0000000002))
}
