A game about forced loneliness, made by TACStudios
1using NUnit.Framework;
2using System;
3
4namespace UnityEngine.Rendering.Tests
5{
6 unsafe class FixedBufferStringQueueTests
7 {
8 [Test]
9 public void PushAndPopInBufferRange()
10 {
11 const int size = 512;
12 var bufferStart = stackalloc byte[size];
13 var buffer = new CoreUnsafeUtils.FixedBufferStringQueue(bufferStart, size);
14
15 Assert.True(buffer.TryPush("Lorem ipsum dolor sit"));
16 Assert.True(buffer.TryPush("amet, consectetur adipiscing"));
17 Assert.True(buffer.TryPush("elit, sed do eiusmod"));
18 Assert.True(buffer.TryPush("tempor incididunt ut labore"));
19
20 Assert.AreEqual(4, buffer.Count);
21
22 Assert.True(buffer.TryPop(out string v) && v == "Lorem ipsum dolor sit");
23 Assert.True(buffer.TryPop(out v) && v == "amet, consectetur adipiscing");
24 Assert.True(buffer.TryPop(out v) && v == "elit, sed do eiusmod");
25 Assert.True(buffer.TryPop(out v) && v == "tempor incididunt ut labore");
26 }
27
28 [Test]
29 public void PushAndPopOutOfBufferRange()
30 {
31 const int size = 64;
32 var bufferStart = stackalloc byte[size];
33 var buffer = new CoreUnsafeUtils.FixedBufferStringQueue(bufferStart, size);
34
35 Assert.True(buffer.TryPush("Lorem ipsum dolor sit"));
36 Assert.False(buffer.TryPush("amet, consectetur adipiscing"));
37
38 Assert.AreEqual(1, buffer.Count);
39 }
40
41 [Test]
42 public void PushAndPopAndClear()
43 {
44 const int size = 128;
45 var bufferStart = stackalloc byte[size];
46 var buffer = new CoreUnsafeUtils.FixedBufferStringQueue(bufferStart, size);
47
48 Assert.True(buffer.TryPush("Lorem ipsum dolor sit"));
49 Assert.True(buffer.TryPush("amet, consectetur adipiscing"));
50 Assert.False(buffer.TryPush("elit, sed do eiusmod"));
51
52 Assert.AreEqual(2, buffer.Count);
53 buffer.Clear();
54 Assert.AreEqual(0, buffer.Count);
55
56 Assert.True(buffer.TryPush("elit, sed do eiusmod"));
57 Assert.True(buffer.TryPush("tempor incididunt ut labore"));
58 Assert.True(buffer.TryPop(out string v) && v == "elit, sed do eiusmod");
59 Assert.True(buffer.TryPop(out v) && v == "tempor incididunt ut labore");
60 }
61 }
62}