Пример #1
0
        private static IEnumerator Run()
        {
            Instance[] array         = s_instances;
            int        instanceCount = array.Length;

            IEnumerator[] routines = new IEnumerator[instanceCount];
            for (int i = 0; i < instanceCount; i++)
            {
                routines[i] = array[i].Tick();
            }
            while (s_running)
            {
                for (int j = 0; j < instanceCount; j++)
                {
                    CollectionsExtensions.MoveNextRecursiveImmediateSafe(routines[j], null);
                }
                yield return(null);
            }
            for (int k = 0; k < instanceCount; k++)
            {
                s_instances[k].Clear();
            }
            s_instances = null;
            s_synchronizationBarrierId = 0L;
            s_synchronizationBarrier   = default(SynchronizationBarrier);
        }
Пример #2
0
        public void ToGridTest()
        {
            Assert.Throws <ArgumentNullException>(() => CollectionsExtensions.ToGrid((int[])null));

            var grid = CollectionsExtensions.ToGrid(new int[] { 1, 2, 3 }, 5);

            Assert.Equal(5, grid.Total);
            Assert.Equal(new int[] { 1, 2, 3 }, grid.Rows);
        }
Пример #3
0
        public void TryGetValueTest()
        {
            Dictionary <int, string> dict = null;

            Assert.Throws <ArgumentNullException>(() => CollectionsExtensions.TryGetValue(dict, 1));

            dict = new Dictionary <int, string>()
            {
                { 1, "a" }
            };
            Assert.Equal("a", CollectionsExtensions.TryGetValue(dict, 1));
        }
Пример #4
0
        public void Fibonacci_ValidInput_SequenceOfFibonacciNumbers(int count, int[] expectedArray)
        {
            var resultArray = new int[count];
            int cnt         = 0;

            foreach (var element in CollectionsExtensions.Fibonacci(count))
            {
                resultArray[cnt++] = (int)element;
            }

            Assert.IsTrue(IsTheSameArrays(resultArray, expectedArray));
        }
Пример #5
0
        public void EqualsBytesTest()
        {
            byte[] b1 = null, b2 = null;
            Assert.True(CollectionsExtensions.EqualsBytes(b1, b2));
            b1 = new byte[] { 1, 2, 3, 4, 5 };
            Assert.False(CollectionsExtensions.EqualsBytes(b1, b2));
            b2 = new byte[] { 1, 2, 3, 4, 5 };
            Assert.True(CollectionsExtensions.EqualsBytes(b1, b2));

            b1 = new byte[2048];
            b2 = new byte[2048];
            FastRandom.Instance.NextBytes(b1);
            FastRandom.Instance.NextBytes(b2);
            Assert.False(CollectionsExtensions.EqualsBytes(b1, b2));
        }
        public static bool AreEqual(DependenciesChange left, DependenciesChange right)
        {
            if (left == null || right == null)
            {
                return(left == right);
            }

            if (left == right)
            {
                return(true);
            }

            return(CollectionsExtensions.AreEqual(left.AddedNodes, right.AddedNodes) &&
                   CollectionsExtensions.AreEqual(left.UpdatedNodes, right.UpdatedNodes) &&
                   CollectionsExtensions.AreEqual(left.RemovedNodes, right.RemovedNodes));
        }
Пример #7
0
 public void Fibonacci_InvalidInput_ExpectedArgumentOutOfRangeException(int count)
 => Assert.Throws <ArgumentOutOfRangeException>(() => CollectionsExtensions.Fibonacci(count));