UnityGame/Library/PackageCache/com.unity.collections/Unity.Collections.Tests/NativeHashSetTests.tt
2024-10-27 10:53:47 +03:00

230 lines
7.3 KiB
Plaintext

<#/*THIS IS A T4 FILE - see t4_text_templating.md for what it is and how to run codegen*/#>
<#@ template debug="True" #>
<#@ output extension=".gen.cs" #>
<#@ assembly name="System.Core" #>
using System;
using NUnit.Framework;
using Unity.Collections;
using Unity.Collections.LowLevel.Unsafe;
using Unity.Collections.Tests;
internal class NativeHashSetTestsGenerated : CollectionsTestFixture
{
<#
{
foreach (var ContainerType in new[] {
( "NativeHashSet" ),
( "UnsafeHashSet" ),
}) {
#>
static void ExpectedCount<T>(ref <#=ContainerType#><T> container, int expected)
where T : unmanaged, IEquatable<T>
{
Assert.AreEqual(expected == 0, container.IsEmpty);
Assert.AreEqual(expected, container.Count);
}
<#
foreach (var OtherContainerType in new[] {
( "NativeHashSet" ),
( "UnsafeHashSet" ),
( "NativeParallelHashSet" ),
( "UnsafeParallelHashSet" ),
( "NativeList" ),
( "UnsafeList" ),
}) {
#>
[Test]
public void <#=ContainerType#>_<#=OtherContainerType#>_EIU_ExceptWith_Empty()
{
var container = new <#=ContainerType#><int>(8, CommonRwdAllocator.Handle) { };
var other = new <#=OtherContainerType#><int>(8, CommonRwdAllocator.Handle) { };
container.ExceptWith(other);
ExpectedCount(ref container, 0);
container.Dispose();
other.Dispose();
}
[Test]
public void <#=ContainerType#>_<#=OtherContainerType#>_EIU_ExceptWith_AxB()
{
var container = new <#=ContainerType#><int>(8, CommonRwdAllocator.Handle) { 0, 1, 2, 3, 4, 5 };
var other = new <#=OtherContainerType#><int>(8, CommonRwdAllocator.Handle) { 3, 4, 5, 6, 7, 8 };
container.ExceptWith(other);
ExpectedCount(ref container, 3);
Assert.True(container.Contains(0));
Assert.True(container.Contains(1));
Assert.True(container.Contains(2));
container.Dispose();
other.Dispose();
}
[Test]
public void <#=ContainerType#>_<#=OtherContainerType#>_EIU_IntersectWith_Empty()
{
var container = new <#=ContainerType#><int>(8, CommonRwdAllocator.Handle) { };
var other = new <#=OtherContainerType#><int>(8, CommonRwdAllocator.Handle) { };
container.IntersectWith(other);
ExpectedCount(ref container, 0);
container.Dispose();
other.Dispose();
}
[Test]
public void <#=ContainerType#>_<#=OtherContainerType#>_EIU_IntersectWith()
{
var container = new <#=ContainerType#><int>(8, CommonRwdAllocator.Handle) { 0, 1, 2, 3, 4, 5 };
var other = new <#=OtherContainerType#><int>(8, CommonRwdAllocator.Handle) { 3, 4, 5, 6, 7, 8 };
container.IntersectWith(other);
ExpectedCount(ref container, 3);
Assert.True(container.Contains(3));
Assert.True(container.Contains(4));
Assert.True(container.Contains(5));
container.Dispose();
other.Dispose();
}
[Test]
public void <#=ContainerType#>_<#=OtherContainerType#>_EIU_UnionWith_Empty()
{
var container = new <#=ContainerType#><int>(8, CommonRwdAllocator.Handle) { };
var other = new <#=OtherContainerType#><int>(8, CommonRwdAllocator.Handle) { };
container.UnionWith(other);
ExpectedCount(ref container, 0);
container.Dispose();
other.Dispose();
}
[Test]
public void <#=ContainerType#>_<#=OtherContainerType#>_EIU_UnionWith()
{
var container = new <#=ContainerType#><int>(8, CommonRwdAllocator.Handle) { 0, 1, 2, 3, 4, 5 };
var other = new <#=OtherContainerType#><int>(8, CommonRwdAllocator.Handle) { 3, 4, 5, 6, 7, 8 };
container.UnionWith(other);
ExpectedCount(ref container, 9);
Assert.True(container.Contains(0));
Assert.True(container.Contains(1));
Assert.True(container.Contains(2));
Assert.True(container.Contains(3));
Assert.True(container.Contains(4));
Assert.True(container.Contains(5));
Assert.True(container.Contains(6));
Assert.True(container.Contains(7));
Assert.True(container.Contains(8));
container.Dispose();
other.Dispose();
}
<#}#>
<#
foreach (var OtherContainerType in new[] {
( "FixedList32Bytes" ),
( "FixedList64Bytes" ),
( "FixedList128Bytes" ),
( "FixedList512Bytes" ),
( "FixedList4096Bytes" ),
}) {
#>
[Test]
public void <#=ContainerType#>_<#=OtherContainerType#>_EIU_ExceptWith_Empty()
{
var container = new <#=ContainerType#><int>(8, CommonRwdAllocator.Handle) { };
var other = new <#=OtherContainerType#><int>() { };
container.ExceptWith(other);
ExpectedCount(ref container, 0);
container.Dispose();
}
[Test]
public void <#=ContainerType#>_<#=OtherContainerType#>_EIU_ExceptWith_AxB()
{
var container = new <#=ContainerType#><int>(8, CommonRwdAllocator.Handle) { 0, 1, 2, 3, 4, 5 };
var other = new <#=OtherContainerType#><int>() { 3, 4, 5, 6, 7, 8 };
container.ExceptWith(other);
ExpectedCount(ref container, 3);
Assert.True(container.Contains(0));
Assert.True(container.Contains(1));
Assert.True(container.Contains(2));
container.Dispose();
}
[Test]
public void <#=ContainerType#>_<#=OtherContainerType#>_EIU_IntersectWith_Empty()
{
var container = new <#=ContainerType#><int>(8, CommonRwdAllocator.Handle) { };
var other = new <#=OtherContainerType#><int>() { };
container.IntersectWith(other);
ExpectedCount(ref container, 0);
container.Dispose();
}
[Test]
public void <#=ContainerType#>_<#=OtherContainerType#>_EIU_IntersectWith()
{
var container = new <#=ContainerType#><int>(8, CommonRwdAllocator.Handle) { 0, 1, 2, 3, 4, 5 };
var other = new <#=OtherContainerType#><int>() { 3, 4, 5, 6, 7, 8 };
container.IntersectWith(other);
ExpectedCount(ref container, 3);
Assert.True(container.Contains(3));
Assert.True(container.Contains(4));
Assert.True(container.Contains(5));
container.Dispose();
}
[Test]
public void <#=ContainerType#>_<#=OtherContainerType#>_EIU_UnionWith_Empty()
{
var container = new <#=ContainerType#><int>(8, CommonRwdAllocator.Handle) { };
var other = new <#=OtherContainerType#><int>() { };
container.UnionWith(other);
ExpectedCount(ref container, 0);
container.Dispose();
}
[Test]
public void <#=ContainerType#>_<#=OtherContainerType#>_EIU_UnionWith()
{
var container = new <#=ContainerType#><int>(8, CommonRwdAllocator.Handle) { 0, 1, 2, 3, 4, 5 };
var other = new <#=OtherContainerType#><int>() { 3, 4, 5, 6, 7, 8 };
container.UnionWith(other);
ExpectedCount(ref container, 9);
Assert.True(container.Contains(0));
Assert.True(container.Contains(1));
Assert.True(container.Contains(2));
Assert.True(container.Contains(3));
Assert.True(container.Contains(4));
Assert.True(container.Contains(5));
Assert.True(container.Contains(6));
Assert.True(container.Contains(7));
Assert.True(container.Contains(8));
container.Dispose();
}
<#}}}#>
}