public void TargetsEquality() { var a = new RuntimeMetadata() { Targets = new List <Qubit>() { }, }; var b = new RuntimeMetadata() { Targets = new List <Qubit>() { }, }; Assert.Equal(a, b); Assert.Equal(a.GetHashCode(), b.GetHashCode()); b.Targets = new List <Qubit>() { new FreeQubit(1) }; Assert.NotEqual(a, b); Assert.NotEqual(a.GetHashCode(), b.GetHashCode()); a.Targets = new List <Qubit>() { new FreeQubit(1) }; Assert.Equal(a, b); Assert.Equal(a.GetHashCode(), b.GetHashCode()); }
public void CheckEquality() { var a = new RuntimeMetadata() { Label = "H", FormattedNonQubitArgs = "", IsAdjoint = false, IsControlled = false, IsMeasurement = false, IsComposite = false, Children = null, Controls = new List <Qubit>() { }, Targets = new List <Qubit>() { }, }; var b = new RuntimeMetadata() { Label = "H", FormattedNonQubitArgs = "", IsAdjoint = false, IsControlled = false, IsMeasurement = false, IsComposite = false, Children = null, Controls = new List <Qubit>() { }, Targets = new List <Qubit>() { }, }; Assert.Equal(a, b); Assert.Equal(a.GetHashCode(), b.GetHashCode()); b.Label = "X"; Assert.NotEqual(a, b); Assert.NotEqual(a.GetHashCode(), b.GetHashCode()); b.Label = "H"; b.FormattedNonQubitArgs = "(1)"; Assert.NotEqual(a, b); Assert.NotEqual(a.GetHashCode(), b.GetHashCode()); b.FormattedNonQubitArgs = ""; b.IsAdjoint = true; Assert.NotEqual(a, b); Assert.NotEqual(a.GetHashCode(), b.GetHashCode()); b.IsAdjoint = false; b.IsControlled = true; Assert.NotEqual(a, b); Assert.NotEqual(a.GetHashCode(), b.GetHashCode()); b.IsControlled = false; b.IsMeasurement = true; Assert.NotEqual(a, b); Assert.NotEqual(a.GetHashCode(), b.GetHashCode()); b.IsMeasurement = false; b.IsComposite = true; Assert.NotEqual(a, b); Assert.NotEqual(a.GetHashCode(), b.GetHashCode()); b.IsComposite = false; }
public void ChildrenEquality() { var a = new RuntimeMetadata() { Children = new[] { new List <RuntimeMetadata>(), new List <RuntimeMetadata>(), }, }; var b = new RuntimeMetadata() { Children = new[] { new List <RuntimeMetadata>(), new List <RuntimeMetadata>(), }, }; Assert.Equal(a, b); Assert.Equal(a.GetHashCode(), b.GetHashCode()); var aChildren = a.Children.ToList(); aChildren[0] = new List <RuntimeMetadata>() { new RuntimeMetadata() { Label = "H" } }; a.Children = aChildren; Assert.NotEqual(a, b); Assert.NotEqual(a.GetHashCode(), b.GetHashCode()); var bChildren = b.Children.ToList(); bChildren[0] = new List <RuntimeMetadata>() { new RuntimeMetadata() { Label = "X" } }; b.Children = bChildren; Assert.NotEqual(a, b); Assert.NotEqual(a.GetHashCode(), b.GetHashCode()); bChildren[0] = new List <RuntimeMetadata>() { new RuntimeMetadata() { Label = "H" } }; Assert.Equal(a, b); Assert.Equal(a.GetHashCode(), b.GetHashCode()); b.Children = b.Children.SkipLast(1); Assert.NotEqual(a, b); Assert.NotEqual(a.GetHashCode(), b.GetHashCode()); }