private IEnumerator ExtractFromQueue <T>(InfiniteQueue <T> queue, int extractions) { for (int i = 0; i < extractions; i++) { yield return(new WaitWhile(() => queue.isEmpty)); Debug.Log(queue.PopNext()); } Debug.Log($"Count : {queue.count}"); }
public void Test_Generic_InfiniteQueue() { InfiniteQueue <char> q = new InfiniteQueue <char>(); char[] ca = ALPHABET.ToCharArray(); foreach (var c in ca) { q.Enqueue(c); } char[] expected = (ALPHABET + ALPHABET).ToCharArray(); List <char> test = new List <char>(); for (var i = 0; i < ALPHABET.Length * 2; i++) { test.Add(q.Dequeue()); } char[] actual = test.ToArray(); Assert.AreEqual(string.Join("", expected), string.Join("", actual)); }
private void TryGetInfiniteFloatsRange() { InfiniteQueue <float> queue = InfiniteFloatPoolInRange(20, -10, 100, RefillPolicy.EMPTY); StartCoroutine(ExtractFromQueue(queue, 30)); }
private void TryGetInfiniteIntsRange() { InfiniteQueue <int> queue = InfiniteInt16Pool(10, RefillPolicy.HALF_QUEUE); StartCoroutine(ExtractFromQueue(queue, 15)); }
private void TryGetInfiniteBool() { InfiniteQueue <bool> queue = InfiniteBoolPool(10, RefillPolicy.KEEP_FULL); StartCoroutine(ExtractFromQueue(queue, 30)); }