// --------------------------------------------------------------------------------------------------------------------------
        public static EZList <T> ReadEZList <T>(Stream s, Func <Stream, T> readFunc)
        {
            EZList <T> res   = new EZList <T>();
            uint       count = EZReader.ReadUInt32(s);

            for (int i = 0; i < count; i++)
            {
                T next = readFunc(s);
                res.Add(next);
            }
            return(res);
        }
        public void CanReadAndWriteUint()
        {
            // const uint test = 0xF00010FF;

            for (int i = 0; i < MAX_TEST; i++)
            {
                // WOW!  The C# preference for int over everything sure is annoying!
                uint test = (uint)RandomTools.RNG.Next((int)uint.MinValue, int.MaxValue);

                using (var ms = new MemoryStream())
                {
                    EZWriter.Write(ms, test);
                    ms.Seek(0, SeekOrigin.Begin);

                    uint comp = EZReader.ReadUInt32(ms);

                    Assert.AreEqual(test, comp, "The uints should be the same!");
                }
            }
        }