1package entity
 2
 3import (
 4	"testing"
 5
 6	"github.com/stretchr/testify/require"
 7)
 8
 9func TestInterleaved(t *testing.T) {
10	primary := Id("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX______________")
11	secondary := Id("YZ0123456789+/________________________________________________")
12	expectedId := CombinedId("aYbZc0def1ghij2klmn3opqr4stuv5wxyz6ABCD7EFGH8IJKL9MNOP+QRST/UVWX")
13
14	interleaved := CombineIds(primary, secondary)
15	require.Equal(t, expectedId, interleaved)
16
17	// full length
18	splitPrimary, splitSecondary := SeparateIds(interleaved.String())
19	require.Equal(t, string(primary[:50]), splitPrimary)
20	require.Equal(t, string(secondary[:14]), splitSecondary)
21
22	// partial
23	splitPrimary, splitSecondary = SeparateIds(string(expectedId[:7]))
24	require.Equal(t, string(primary[:4]), splitPrimary)
25	require.Equal(t, string(secondary[:3]), splitSecondary)
26
27	// partial
28	splitPrimary, splitSecondary = SeparateIds(string(expectedId[:10]))
29	require.Equal(t, string(primary[:6]), splitPrimary)
30	require.Equal(t, string(secondary[:4]), splitSecondary)
31
32	// partial
33	splitPrimary, splitSecondary = SeparateIds(string(expectedId[:16]))
34	require.Equal(t, string(primary[:11]), splitPrimary)
35	require.Equal(t, string(secondary[:5]), splitSecondary)
36}