Skip to content

Commit b8ca346

Browse files
author
Vyacheslav
committed
feat: expand head before tail test + own test
1 parent fb09090 commit b8ca346

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed

Src/TestGenerator/GenerateQueuePrimitiveTest.cs

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,8 @@ in Func<T, string> toStr
285285
QueuePrimitiveExpandCapacity(in values, in builder, in queueNamespace);
286286
QueuePrimitiveExpandCapacityHeadAfterTail(in values, in builder, in queueNamespace, in toStr);
287287
QueuePrimitiveExpandCapacityHeadAfterTailOwn(in values, in builder, in queueNamespace, in toStr);
288+
QueuePrimitiveExpandCapacityHeadBeforeTail(in values, in builder, in queueNamespace, in toStr);
289+
QueuePrimitiveExpandCapacityHeadBeforeTailOwn(in values, in builder, in queueNamespace, in toStr);
288290

289291
QueuePrimitiveReducingCapacity(in values, in builder, in queueNamespace);
290292

@@ -1124,6 +1126,100 @@ public void ExpandCapacityHeadAfterTailOwnTest()
11241126
");
11251127
}
11261128

1129+
private void QueuePrimitiveExpandCapacityHeadBeforeTail<T>(
1130+
in List<T> values,
1131+
in StringBuilder builder,
1132+
in string queueNamespace,
1133+
in Func<T, string> toStr
1134+
) where T : unmanaged
1135+
{
1136+
if (values.Count < 5)
1137+
{
1138+
throw new ArgumentException($"{nameof(values)} Must have minimum 5 values to generate tests");
1139+
}
1140+
1141+
builder.Append($@"
1142+
[Test]
1143+
public void ExpandCapacityHeadBeforeTailTest()
1144+
{{
1145+
unsafe
1146+
{{
1147+
using (var memory = new StackMemoryCollections.Struct.StackMemory(sizeof({typeof(T).Name}) * {values.Count + 3}))
1148+
{{
1149+
var queue = new StackMemoryCollections.{queueNamespace}.QueueOf{typeof(T).Name}({values.Count}, &memory);
1150+
");
1151+
for (int i = 0; i < values.Count; i++)
1152+
{
1153+
builder.Append($@"
1154+
queue.Push({toStr(values[i])});
1155+
");
1156+
}
1157+
builder.Append($@"
1158+
queue.ExpandCapacity(3);
1159+
queue.Push({toStr(values[values.Count - 1])});
1160+
");
1161+
for (int i = 0; i < values.Count; i++)
1162+
{
1163+
builder.Append($@"
1164+
Assert.That(queue.Front(), Is.EqualTo({toStr(values[i])}));
1165+
queue.Pop();
1166+
");
1167+
}
1168+
builder.Append($@"
1169+
Assert.That(queue.Front(), Is.EqualTo({toStr(values[values.Count - 1])}));
1170+
queue.Pop();
1171+
1172+
}}
1173+
}}
1174+
}}
1175+
");
1176+
}
1177+
1178+
private void QueuePrimitiveExpandCapacityHeadBeforeTailOwn<T>(
1179+
in List<T> values,
1180+
in StringBuilder builder,
1181+
in string queueNamespace,
1182+
in Func<T, string> toStr
1183+
) where T : unmanaged
1184+
{
1185+
if (values.Count < 5)
1186+
{
1187+
throw new ArgumentException($"{nameof(values)} Must have minimum 5 values to generate tests");
1188+
}
1189+
1190+
builder.Append($@"
1191+
[Test]
1192+
public void ExpandCapacityHeadBeforeTailOwnTest()
1193+
{{
1194+
unsafe
1195+
{{
1196+
var queue = new StackMemoryCollections.{queueNamespace}.QueueOf{typeof(T).Name}();
1197+
");
1198+
for (int i = 0; i < 4; i++)
1199+
{
1200+
builder.Append($@"
1201+
queue.Push({toStr(values[i])});
1202+
");
1203+
}
1204+
builder.Append($@"
1205+
queue.ExpandCapacity(3);
1206+
queue.Push({toStr(values[values.Count - 1])});
1207+
");
1208+
for (int i = 0; i < 4; i++)
1209+
{
1210+
builder.Append($@"
1211+
Assert.That(queue.Front(), Is.EqualTo({toStr(values[i])}));
1212+
queue.Pop();
1213+
");
1214+
}
1215+
builder.Append($@"
1216+
Assert.That(queue.Front(), Is.EqualTo({toStr(values[values.Count - 1])}));
1217+
queue.Pop();
1218+
}}
1219+
}}
1220+
");
1221+
}
1222+
11271223
private void QueuePrimitiveReducingCapacity<T>(
11281224
in List<T> values,
11291225
in StringBuilder builder,

0 commit comments

Comments
 (0)