public static async Task AddUpdateAndRemoveManyLocals_ReferenceType()
{
var locals = new AsyncLocal<string>[40];
for (int i = 0; i < locals.Length; i++)
{
locals[i] = new AsyncLocal<string>();
locals[i].Value = i.ToString();
for (int j = 0; j <= i; j++)
{
Assert.Equal(j.ToString(), locals[j].Value);
locals[j].Value = (j + 1).ToString();
Assert.Equal((j + 1).ToString(), locals[j].Value);
locals[j].Value = j.ToString();
Assert.Equal(j.ToString(), locals[j].Value);
}
}
for (int i = 0; i < locals.Length; i++)
{
locals[i].Value = null;
Assert.Null(locals[i].Value);
for (int j = i + 1; j < locals.Length; j++)
{
Assert.Equal(j.ToString(), locals[j].Value);
}
}
}
}