Beispiel #1
0
        public void CoefficientOfVariation_WithObserverable_ValueSetNotifyObservers()
        {
            // Setup
            var mocks        = new MockRepository();
            var distribution = mocks.Stub <IVariationCoefficientDistribution>();
            var observerable = mocks.StrictMock <IObservable>();

            observerable.Expect(o => o.NotifyObservers());
            mocks.ReplayAll();

            var newCoefficientOfVariation = new RoundedDouble(3, 20);
            var handler = new SetPropertyValueAfterConfirmationParameterTester(new[]
            {
                observerable
            });

            var properties = new SimpleDistributionProperties(VariationCoefficientDistributionReadOnlyProperties.None, distribution, handler)
            {
                Data = distribution
            };

            // Call
            properties.CoefficientOfVariation = newCoefficientOfVariation;

            // Assert
            Assert.AreEqual(newCoefficientOfVariation, properties.CoefficientOfVariation);
            mocks.VerifyAll();
        }
Beispiel #2
0
        private static void AssertPropertiesInState(SimpleDistributionProperties properties, bool meanReadOnly, bool variationCoefficientReadOnly)
        {
            Assert.IsInstanceOf <VariationCoefficientDistributionPropertiesBase <IVariationCoefficientDistribution> >(properties);

            PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties);

            Assert.AreEqual(3, dynamicProperties.Count);

            PropertyDescriptor distributionTypeProperty = dynamicProperties[0];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(distributionTypeProperty,
                                                                            "Misc",
                                                                            "Type verdeling",
                                                                            "Het soort kansverdeling waarin deze parameter gedefinieerd wordt.",
                                                                            true);

            PropertyDescriptor meanProperty = dynamicProperties[1];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(meanProperty,
                                                                            "Misc",
                                                                            "Verwachtingswaarde",
                                                                            "",
                                                                            meanReadOnly);

            PropertyDescriptor coefficientOfVariationProperty = dynamicProperties[2];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(coefficientOfVariationProperty,
                                                                            "Misc",
                                                                            "Variatiecoëfficiënt",
                                                                            "",
                                                                            variationCoefficientReadOnly);
        }
Beispiel #3
0
        public void Data_SetNewDistributionContextInstance_ReturnCorrectPropertyValues()
        {
            // Setup
            var mocks        = new MockRepository();
            var distribution = mocks.Stub <IVariationCoefficientDistribution>();

            distribution.Mean = new RoundedDouble(1, 1.1);
            distribution.CoefficientOfVariation = new RoundedDouble(2, 2.2);

            var handler = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            var properties = new SimpleDistributionProperties(VariationCoefficientDistributionReadOnlyProperties.None, distribution, handler);

            // Call
            properties.Data = distribution;

            // Assert
            Assert.AreEqual(distribution.Mean, properties.Mean);
            Assert.AreEqual(distribution.CoefficientOfVariation, properties.CoefficientOfVariation);
            var expectedToString = $"{distribution.Mean} (Variatiecoëfficiënt = {distribution.CoefficientOfVariation})";

            Assert.AreEqual(expectedToString, properties.ToString());
            mocks.VerifyAll();
        }
Beispiel #4
0
        private static void AssertPropertiesInState(SimpleDistributionProperties properties, bool meanReadOnly, bool deviationReadOnly)
        {
            PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties);

            Assert.AreEqual(3, dynamicProperties.Count);

            PropertyDescriptor distributionTypeProperty = dynamicProperties[0];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(distributionTypeProperty,
                                                                            "Misc",
                                                                            "Type verdeling",
                                                                            "Het soort kansverdeling waarin deze parameter gedefinieerd wordt.",
                                                                            true);

            PropertyDescriptor meanProperty = dynamicProperties[1];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(meanProperty,
                                                                            "Misc",
                                                                            "Verwachtingswaarde",
                                                                            "",
                                                                            meanReadOnly);

            PropertyDescriptor standardDeviationProperty = dynamicProperties[2];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(standardDeviationProperty,
                                                                            "Misc",
                                                                            "Standaardafwijking",
                                                                            "",
                                                                            deviationReadOnly);
        }
Beispiel #5
0
        public void Constructor_ReadOnlyWithData_ExpectedValues()
        {
            // Setup
            var mocks        = new MockRepository();
            var distribution = mocks.Stub <IVariationCoefficientDistribution>();

            mocks.ReplayAll();

            // Call
            var properties = new SimpleDistributionProperties(VariationCoefficientDistributionReadOnlyProperties.All, distribution, null);

            // Assert
            Assert.IsInstanceOf <VariationCoefficientDistributionPropertiesBase <IVariationCoefficientDistribution> >(properties);
            Assert.AreSame(distribution, properties.Data);
            mocks.VerifyAll();
        }
Beispiel #6
0
        public void Constructor_Always_PropertiesHaveExpectedAttributesValues(VariationCoefficientDistributionReadOnlyProperties readOnlyProperties, bool expectMeanReadOnly, bool expectCoefficientOfVariationReadOnly)
        {
            // Setup
            var mocks        = new MockRepository();
            var distribution = mocks.Stub <IVariationCoefficientDistribution>();
            var handler      = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            // Call
            var properties = new SimpleDistributionProperties(readOnlyProperties, distribution, handler);

            // Assert
            AssertPropertiesInState(properties, expectMeanReadOnly, expectCoefficientOfVariationReadOnly);
            mocks.VerifyAll();
        }
Beispiel #7
0
        public void Constructor_WithData_ReadOnlyProperties()
        {
            // Setup
            var mocks        = new MockRepository();
            var distribution = mocks.Stub <IVariationCoefficientDistribution>();

            mocks.ReplayAll();

            // Call
            var properties = new SimpleDistributionProperties(distribution);

            // Assert
            Assert.AreSame(distribution, properties.Data);

            AssertPropertiesInState(properties, true, true);

            mocks.VerifyAll();
        }
Beispiel #8
0
        public void CoefficientOfVariation_ReadOnlyWithoutObserverable_ThrowsArgumentException(VariationCoefficientDistributionReadOnlyProperties readOnlyProperties)
        {
            // Setup
            var mocks        = new MockRepository();
            var distribution = mocks.Stub <IVariationCoefficientDistribution>();
            var handler      = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            var properties = new SimpleDistributionProperties(readOnlyProperties, distribution, handler);

            // Call
            TestDelegate test = () => properties.CoefficientOfVariation = new RoundedDouble(2, 20);

            // Assert
            const string expectedMessage = "CoefficientOfVariation is set to be read-only.";
            string       actualMessage   = Assert.Throws <InvalidOperationException>(test).Message;

            Assert.AreEqual(expectedMessage, actualMessage);
            mocks.VerifyAll();
        }
Beispiel #9
0
        public void DynamicReadOnlyValidationMethod_VariousReadOnlySet_ExpectedValues(VariationCoefficientDistributionReadOnlyProperties readOnlyProperties, bool expectMeanReadOnly, bool expectCoefficientOfVariationReadOnly)
        {
            // Setup
            var mocks        = new MockRepository();
            var distribution = mocks.Stub <IVariationCoefficientDistribution>();
            var handler      = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            var properties = new SimpleDistributionProperties(readOnlyProperties, distribution, handler);

            // Call
            bool meanIsReadOnly = properties.DynamicReadOnlyValidationMethod("Mean");
            bool coefficientOfVariationIsReadOnly = properties.DynamicReadOnlyValidationMethod("CoefficientOfVariation");
            bool doesNotExist = properties.DynamicReadOnlyValidationMethod("DoesNotExist");

            // Assert
            Assert.AreEqual(expectCoefficientOfVariationReadOnly, coefficientOfVariationIsReadOnly);
            Assert.AreEqual(expectMeanReadOnly, meanIsReadOnly);
            Assert.IsFalse(doesNotExist);
            mocks.VerifyAll();
        }