public void CloneTest()
{
TypeParameter typeParameter = new TypeParameter();
typeParameter.Name = "T";
typeParameter.AddConstraint("IDisposable");
typeParameter.AddConstraint("new()");
TypeParameter clone = typeParameter.Clone() as TypeParameter;
Assert.IsNotNull(clone, "Clone should return a TypeParameter instance.");
Assert.AreEqual(typeParameter.Name, clone.Name, "Name property was not copied correctly.");
Assert.AreEqual(typeParameter.Constraints.Count, clone.Constraints.Count, "Constraints property was not copied correctly.");
Assert.AreEqual(typeParameter.Constraints[0], clone.Constraints[0], "Constraints property was not copied correctly.");
Assert.AreEqual(typeParameter.Constraints[1], clone.Constraints[1], "Constraints property was not copied correctly.");
}