public static SortedResult SortStringArray(string[] items)
        {
            SortedResult sortedResult = new SortedResult();

            sortedResult.Steps.Add(string.Join(", ", items));

            for (int i = 1; i < items.Length; i++)
            {
                string item = items[i];
                int    ins  = 0;
                for (int j = i - 1; j >= 0 && ins != 1;)
                {
                    int comparison = item.CompareTo(items[j]);
                    if (comparison < 0)
                    {
                        items[j + 1] = items[j];
                        j--;
                        items[j + 1] = item;

                        sortedResult.Steps.Add(string.Join(", ", items));
                    }
                    else
                    {
                        ins = 1;
                    }
                }
            }
            return(sortedResult);
        }
示例#2
0
 public void Draw(List <DrawableEntity> visibleEntities)
 {
     foreach (var entity in visibleEntities)
     {
         SortedResult.Add(entity);
     }
 }
        public static SortedResult SortIntArray(int[] items)
        {
            SortedResult sortedResult = new SortedResult();

            string[] initialValues = Array.ConvertAll(items, (int item) =>
            {
                return(item.ToString());
            });
            sortedResult.Steps.Add(string.Join(", ", initialValues));

            for (int i = 1; i < items.Length; i++)
            {
                int item = items[i];
                int ins  = 0;
                for (int j = i - 1; j >= 0 && ins != 1;)
                {
                    if (item < items[j])
                    {
                        items[j + 1] = items[j];
                        j--;
                        items[j + 1] = item;

                        string[] stringValues = Array.ConvertAll(items, (int value) =>
                        {
                            return(value.ToString());
                        });
                        sortedResult.Steps.Add(string.Join(", ", stringValues));
                    }
                    else
                    {
                        ins = 1;
                    }
                }
            }
            return(sortedResult);
        }
示例#4
0
        public void SelectingEntitiesWithDifferentRenderLayer()
        {
            var entities = new MockEntitiesRunner(typeof(SortByRenderLayer));
            var last     = new MockDrawableEntity {
                RenderLayer = 13
            };

            last.OnDraw <SortByRenderLayer>();
            var first = new MockDrawableEntity {
                RenderLayer = -1
            };

            first.OnDraw <SortByRenderLayer>();
            var middle = new MockDrawableEntity {
                RenderLayer = 5
            };

            middle.OnDraw <SortByRenderLayer>();
            SortedResult.Clear();
            entities.RunEntities();
            Assert.AreEqual(first, SortedResult[0]);
            Assert.AreEqual(middle, SortedResult[1]);
            Assert.AreEqual(last, SortedResult[2]);
        }