Ejemplo n.º 1
0
        public void LocStringTable_IndexRangesTest()
        {
            var ranges = LocStringTable.IndexRanges;

            ranges = null;

            var st    = new LocStringTable();
            var stats = st.RangeStats;

            foreach (var stat in stats)
            {
                Console.WriteLine(stat.Value);
            }
        }
Ejemplo n.º 2
0
        public void LocStringTable_NextFreeIdTest()
        {
            var ranges = LocStringTable.IndexRanges;

            Assert.AreEqual("code", ranges.ReservedFor);
            var range = ranges.SubRanges[0];

            Assert.AreEqual("unused1", range.ReservedFor);

            var       st = new LocStringTable();
            const int kExpectedFreeId = 5;

            // populate everything but the 5th and last ID
            for (int x = 0; x <= (range.EndIndex - 1); x++)
            {
                if (x == kExpectedFreeId)
                {
                    continue;
                }

                var str = new Phx.LocString(x);
                st.Add(str);
            }

            // add the 5th ID
            {
                int actual_free_id = st.NextFreeId(range);
                Assert.AreEqual(kExpectedFreeId, actual_free_id);

                var free_str = new Phx.LocString(actual_free_id);
                st.Add(free_str);
            }

            // add the last ID
            {
                int next_free_id = st.NextFreeId(range);
                Assert.AreEqual(range.EndIndex, next_free_id);

                var free_str = new Phx.LocString(next_free_id);
                st.Add(free_str);
            }

            // there should be no more IDs free
            {
                int next_free_id = st.NextFreeId(range);
                Assert.AreEqual(TypeExtensions.kNone, next_free_id);
            }

            // remove the 5th ID and make sure it is the next free id again
            {
                int index = st.GetLocStringIndex(kExpectedFreeId);
                st.RemoveAt(index);

                int actual_free_id = st.NextFreeId(range);
                Assert.AreEqual(kExpectedFreeId, actual_free_id);
            }

            var stats = st.RangeStats;

            foreach (var stat in stats)
            {
                Console.WriteLine(stat.Value);
            }
        }