public void NoBoxing()
        {
            var l1 = new List <SimpleValueOr <String> >();
            var l2 = new List <SimpleValueOr <String> >();

            var count = 0;

            for (int i = 0; i < Iterations; i++)
            {
                SimpleValueOr <String> v = _simpleValuesGenerator.GetNext();

                if (v.Value.ValueType == SimpleValueType.Guid)
                {
                    v = v.ToString();
                }

                l1.Add(v);
                if (i % 10 == 0)
                {
                    l2.Add(v);
                }

                if (l1.Count > 1_000_000)
                {
                    l1.Clear();
                }

                if (v.IsValue && v.Value.ValueType == SimpleValueType.Bool && v.Value)
                {
                    count++;
                }
            }
        }
Exemple #2
0
        public void SimpleValues_AreComparedByValue()
        {
            SimpleValueOr <String> value1 = 100;
            SimpleValueOr <String> value2 = 100;

            Assert.True(value1.Equals(value2));
            Assert.True(value1 == value2);
            Assert.False(value1 != value2);
            Assert.True(value1.Equals((object)value2));

            Assert.AreEqual(value1.GetHashCode(), value2.GetHashCode());
        }
Exemple #3
0
        public void Objects_AreComparedByReference()
        {
            var object1 = new TestObject();
            var object2 = new TestObject();

            SimpleValueOr <TestObject> value1 = object1;
            SimpleValueOr <TestObject> value2 = object1;
            SimpleValueOr <TestObject> value3 = object2;

            Assert.True(value1.Equals(value2));
            Assert.False(value1.Equals(value3));
            Assert.True(value1 == value2);
            Assert.False(value1 != value2);
            Assert.True(value1.Equals((object)value2));

            Assert.AreEqual(value1.GetHashCode(), value2.GetHashCode());
            Assert.AreNotEqual(value2.GetHashCode(), value3.GetHashCode());
        }
        public void CanCreateSimpleValueFromGenericT()
        {
            var inputValue  = 1;
            var valueResult = Convert(inputValue);

            Assert.IsTrue(valueResult.IsValue);

            var inputReference  = "Test";
            var referenceResult = Convert(inputReference);

            Assert.IsFalse(referenceResult.IsValue);
            Assert.AreEqual("Test", referenceResult.Reference);

            SimpleValueOr <object> Convert <T>(T value)
            {
                return(SimpleValueOr <object> .Create(value));
            }
        }
Exemple #5
0
        public void IEquatables_AreComparedByEquals()
        {
            var object1 = new EquatableObject(100);
            var object2 = new EquatableObject(100);
            var object3 = new EquatableObject(200);

            SimpleValueOr <EquatableObject> value1 = object1;
            SimpleValueOr <EquatableObject> value2 = object2;
            SimpleValueOr <EquatableObject> value3 = object3;

            Assert.True(value1.Equals(value2));
            Assert.False(value1.Equals(value3));
            Assert.True(value1 == value2);
            Assert.False(value1 != value2);
            Assert.True(value1.Equals((object)value2));

            Assert.AreEqual(value1.GetHashCode(), value2.GetHashCode());
            Assert.AreNotEqual(value2.GetHashCode(), value3.GetHashCode());
        }