private static short[] checkValues(short[] values, short[] lengths)
        {
            if (values == null || values.Length > 256)
            {
                throw new ArgumentException("Values array is null or too long.");
            }

            //if (values.Any(x => x < 0))
            if (IEnum.Any(values, x => x < 0))
            {
                throw new ArgumentException("Negative values cannot appear in the values array.");
            }

            //if (values.Length != lengths.Sum(x => (int)x))
            if (IEnum.Sum(lengths) != values.Length)
            {
                throw new ArgumentException("Number of values does not match code length sum.");
            }

            return(values);
        }