public void CloneInParallel() { ObjectCloner.ClearTypeCache(); // empty the Type cache to start from a fresh state. for (int i = 0; i < 100; i++) { Parallel.For(0, 1000, k => { var instance = new ClassWithIEnumerable <int> { Items = new List <int> { 1, 1, 2, 3 }.Distinct() }; var clonedValue = Duplicate(instance); Assert.Equal(instance.Items.Count(), clonedValue.Items.Count()); Assert.Equal(instance.Items.ToList(), clonedValue.Items.ToList()); }); } }