예제 #1
0
 public void TestComplexMeasure()
 {
     Measure measure1 = new Measure ("measure 1", "Some Namespace", "Some Schema", Measure.MeasureTypeCode.Shares);
     Measure measure2 = new Measure ("measure 2", "Some Namespace", "Some Schema", Measure.MeasureTypeCode.Currency);
     this.NewComplexMeasure("ComplexMeasure", CalculationTypeCode.Divide, measure1, measure2);
     Console.WriteLine (this.ToString());
 }
예제 #2
0
        public void TestMeasureUnitValueEquals()
        {
            const string error = "Invalid return from ValueEquals method";

            TestMeasureUnit mu = new TestMeasureUnit();

            Assert.IsTrue(this.ValueEquals(mu), error);

            mu.MeasureUnitType = MeasureUnit.MeasureUnitTypeCode.Complex;
            Assert.IsFalse(this.ValueEquals(mu), error);
            this.MeasureUnitType = mu.MeasureUnitType;
            Assert.IsTrue(this.ValueEquals(mu), error);

            mu.CalculationType = MeasureUnit.CalculationTypeCode.Multiply;
            Assert.IsFalse(this.ValueEquals(mu), error);
            this.CalculationType = mu.CalculationType;
            Assert.IsTrue(this.ValueEquals(mu), error);

            Measure m0 = new Measure();
            m0.Schema = "m0";
            Measure m1 = new Measure();
            m1.Schema = "m1";

            mu.Measure1 = m0;
            Assert.IsFalse(this.ValueEquals(mu), error);
            this.Measure1 = m0;
            Assert.IsTrue(this.ValueEquals(mu), error);

            mu.Measure2 = m1;
            Assert.IsFalse(this.ValueEquals(mu), error);
            this.Measure2 = m1;
            Assert.IsTrue(this.ValueEquals(mu), error);

            mu.Measure2 = null;
            Assert.IsFalse(this.ValueEquals(mu), error);
            this.Measure2 = null;
            Assert.IsTrue(this.ValueEquals(mu), error);

            mu.Measure1 = null;
            Assert.IsFalse(this.ValueEquals(mu), error);
            this.Measure1 = null;
            Assert.IsTrue(this.ValueEquals(mu), error);
        }
예제 #3
0
        public void TestMeasureValueEquals()
        {
            const string error = "Invalid return from ValueEquals method";

            Measure a = new Measure();
            Measure b = new Measure();

            Assert.IsFalse(a.ValueEquals(null), error);
            Assert.IsFalse(a.ValueEquals(error), error);
            Assert.IsTrue(a.ValueEquals(b), error);

            string testStr = "test";

            b.ValueName = testStr;
            Assert.IsFalse(a.ValueEquals(b), error);
            a.ValueName = b.ValueName;
            Assert.IsTrue(a.ValueEquals(b), error);

            b.Namespace = testStr;
            Assert.IsFalse(a.ValueEquals(b), error);
            a.Namespace = b.Namespace;
            Assert.IsTrue(a.ValueEquals(b), error);

            b.Schema = testStr;
            Assert.IsFalse(a.ValueEquals(b), error);
            a.Schema = b.Schema;
            Assert.IsTrue(a.ValueEquals(b), error);

            b.MeasureType = Measure.MeasureTypeCode.Currency;
            Assert.IsFalse(a.ValueEquals(b), error);
            a.MeasureType = b.MeasureType;
            Assert.IsTrue(a.ValueEquals(b), error);
        }
예제 #4
0
 public void TestOtherSimpleMeasure()
 {
     Measure measure = new Measure ("footage", "Some Namespace", "Some Schema", Measure.MeasureTypeCode.Other);
     this.NewSimpleMeasure("SimpleMeasure", measure);
     Console.WriteLine (this.ToString());
 }
예제 #5
0
 internal void CopyMeasure( Measure measureBase, Measure newMeasure )
 {
     if ( measureBase == null )
     {
         newMeasure = null;
     }
     else if ( newMeasure == null )
     {
         newMeasure = new Measure( measureBase );
     }
     else	// neither is null
     {
         measureBase.CopyTo( newMeasure );
     }
 }
예제 #6
0
 /// <summary>
 /// Overloaded. Constructs a new instance of <see cref="Measure"/>
 /// </summary>
 public Measure(Measure src)
 {
     this.ValueName		= src.ValueName;
     this.Namespace		= src.Namespace;
     this.Schema			= src.Schema;
     this.MeasureType	= src.MeasureType;
 }
예제 #7
0
 /// <summary>
 /// Creates a new Simple (Non-Calculated) MeasureUnit.
 /// </summary>
 /// <param name="name">Name of the unit</param>
 /// <param name="simpleMeasure">The simple measure</param>
 public void NewSimpleMeasure(string name, Measure simpleMeasure)
 {
     this.Name = name;
     this.MeasureUnitType = MeasureUnitTypeCode.Simple; //simple
     this.CalculationType = CalculationTypeCode.NA;//not applicable
     this.Measure1 = simpleMeasure;
     this.Measure2 = null;
 }
예제 #8
0
 /// <summary>
 /// Creates a new Shares-Type MeasureUnit.
 /// </summary>
 /// <param name="name">Name of the unit</param>
 public void NewSharesMeasure(string name)
 {
     this.Name = name;
     this.MeasureUnitType = MeasureUnitTypeCode.Shares; //shares
     this.CalculationType = CalculationTypeCode.NA;//not applicable
     Measure newMeasure = new Measure(_shares, _sharesPureNamespace, _sharesPureSchema, Measure.MeasureTypeCode.Shares);
     this.Measure1 = newMeasure;
     this.Measure2 = null;
 }
예제 #9
0
 /// <summary>
 /// Creates a new Currency-Type MeasureUnit.
 /// </summary>
 /// <param name="name">Name of the unit</param>
 /// <param name="currencyCode">Currency Code</param>
 public void NewCurrencyMeasure(string name, string currencyCode)
 {
     this.Name = name;
     this.MeasureUnitType = MeasureUnitTypeCode.Currency; //currency
     this.CalculationType = CalculationTypeCode.NA;//not applicable
     Measure newMeasure = new Measure(currencyCode, _currencyNamespace, _currencySchema, Measure.MeasureTypeCode.Currency);
     this.Measure1 = newMeasure;
     this.Measure2 = null;
 }
예제 #10
0
 /// <summary>
 /// Creates a new Calculated MeasureUnit.
 /// </summary>
 /// <param name="name">Name of the unit</param>
 /// <param name="calcType">The calculation type (divide or multiply)</param>
 /// <param name="measure1">The 1st unit used in the calculation</param>
 /// <param name="measure2">The 2nd unit used in the calculation</param>
 public void NewComplexMeasure(string name, CalculationTypeCode calcType, Measure measure1, Measure measure2)
 {
     this.Name = name;
     this.MeasureUnitType = MeasureUnitTypeCode.Complex; //complex
     this.CalculationType = calcType;
     this.Measure1 = measure1;
     this.Measure2 = measure2;
 }
예제 #11
0
 /// <summary>
 /// Copies values from this instance of <see cref="Measure"/> to a parameter-supplied
 /// <see cref="Measure"/>.
 /// </summary>
 /// <param name="receiver">The <see cref="Measure"/> to which values are to be copied.</param>
 public void CopyTo( Measure receiver )
 {
     receiver.ValueName = ValueName;
     receiver.Namespace = Namespace;
     receiver.Schema = Schema;
     receiver.MeasureType = MeasureType;
 }