package engine

import (
	"testing"

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

func TestShannonAllSame(t *testing.T) {
	assert.InDelta(t, 0.0, Shannon("aaaaaaa"), 0.01)
}

func TestShannonDistinct(t *testing.T) {
	assert.InDelta(t, 3.0, Shannon("abcdefgh"), 0.1)
}

func TestShannonRealKey(t *testing.T) {
	assert.GreaterOrEqual(t, Shannon("sk-proj-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr"), 3.5)
}

func TestShannonEmpty(t *testing.T) {
	assert.Equal(t, 0.0, Shannon(""))
}

func TestMaskKeyNormal(t *testing.T) {
	assert.Equal(t, "sk-proj-...1234", MaskKey("sk-proj-abc1234"))
}

func TestMaskKeyShort(t *testing.T) {
	assert.Equal(t, "****", MaskKey("abc"))
}
