public string Label_with_ProductQuotient_Power(string value, string powerValue) { ProductQuotientSet power = new ProductQuotientSet(powerValue); PrimitiveUnit unit = new PrimitiveUnit(value, power); return(unit.Label()); }
public string Simplify_Zero_Power_Returns_One(string value) { PrimitiveUnit unit = new PrimitiveUnit(value); IBase simplifiedUnit = unit.Simplify(); return(simplifiedUnit.Label()); }
public void ForEach_Throws_Exception() { PrimitiveUnit unit0 = new PrimitiveUnit("a"); ProductQuotientSet productQuotientSet = new ProductQuotientSet(unit0); PrimitiveUnit unit1 = new PrimitiveUnit("b", new PrimitiveUnit("2")); productQuotientSet.MultiplyItem(unit1); PrimitiveUnit unit2 = new PrimitiveUnit("c"); productQuotientSet.DivideItem(unit2); // Not incremented yet IEnumerator enumerator = productQuotientSet.GetEnumerator(); Assert.Throws <ArgumentOutOfRangeException>(() => { IBase badUnit = (IBase)enumerator.Current; }); enumerator.MoveNext(); UnitOperatorPair unitOperatorPair = (UnitOperatorPair)enumerator.Current; Assert.IsTrue(unitOperatorPair.Unit.Equals(unit0)); enumerator.MoveNext(); unitOperatorPair = (UnitOperatorPair)enumerator.Current; Assert.IsTrue(unitOperatorPair.Unit.Equals(unit1)); enumerator.MoveNext(); unitOperatorPair = (UnitOperatorPair)enumerator.Current; Assert.IsTrue(unitOperatorPair.Unit.Equals(unit2)); // Too many increments enumerator.MoveNext(); Assert.Throws <ArgumentOutOfRangeException>(() => { IBase badUnit = (IBase)enumerator.Current; }); }
public string GetAbsolute(string value) { PrimitiveUnit unit = new PrimitiveUnit(value); IBase absoluteUnit = unit.GetAbsolute(); return(absoluteUnit.Label()); }
public string Simplify_Nothing_Or_Empty_Returns_Empty(string value) { PrimitiveUnit unit = new PrimitiveUnit(value); IBase simplifiedUnit = unit.Simplify(); return(simplifiedUnit.Label()); }
public string Simplify_Null_Power_Returns_Base(string value) { PrimitiveUnit unit = new PrimitiveUnit(value, null); IBase simplifiedUnit = unit.Simplify(); return(simplifiedUnit.Label()); }
public string Simplify_Fractional_Power_Returns_Reduced_Fraction(string value) { PrimitiveUnit unit = new PrimitiveUnit(value); IBase simplifiedUnit = unit.Simplify(); return(simplifiedUnit.Label()); }
public void Initialize_As_String_Primitives(string value, string expectedLabel) { PrimitiveUnit symbolicValue = new PrimitiveUnit(value); Assert.That(symbolicValue.Label(), Is.EqualTo(expectedLabel)); Assert.That(symbolicValue.ToString(), Is.EqualTo(expectedLabel)); }
public string Label_with_SumDifference_Power(string value, string powerValue) { SumDifferenceSet power = new SumDifferenceSet(powerValue); PrimitiveUnit unit = new PrimitiveUnit(value, power); return(unit.Label()); }
public string Simplify_Negative_Power_Returns_Inverse_Fraction(string value) { PrimitiveUnit unit = new PrimitiveUnit(value); IBase simplifiedUnit = unit.Simplify(); return(simplifiedUnit.Label()); }
public void Override_CloneUnit() { PrimitiveUnit unitOriginal = new PrimitiveUnit("-2^3"); PrimitiveUnit unitClone = unitOriginal.CloneUnit(); Assert.IsTrue(unitOriginal.Equals(unitClone)); }
public void ForEach_Resets() { PrimitiveUnit unit0 = new PrimitiveUnit("a"); ProductQuotientSet productQuotientSet = new ProductQuotientSet(unit0); PrimitiveUnit unit1 = new PrimitiveUnit("b", new PrimitiveUnit("2")); productQuotientSet.MultiplyItem(unit1); PrimitiveUnit unit2 = new PrimitiveUnit("c"); productQuotientSet.DivideItem(unit2); IEnumerator enumerator = productQuotientSet.GetEnumerator(); enumerator.MoveNext(); UnitOperatorPair unitOperatorPair = (UnitOperatorPair)enumerator.Current; Assert.IsTrue(unitOperatorPair.Unit.Equals(unit0)); enumerator.MoveNext(); unitOperatorPair = (UnitOperatorPair)enumerator.Current; Assert.IsTrue(unitOperatorPair.Unit.Equals(unit1)); enumerator.Reset(); unitOperatorPair = (UnitOperatorPair)enumerator.Current; Assert.IsTrue(unitOperatorPair.Unit.Equals(unit0)); }
public void ForEach_Iterates_Items() { PrimitiveUnit unit0 = new PrimitiveUnit("a"); ProductQuotientSet productQuotientSet = new ProductQuotientSet(unit0); PrimitiveUnit unit1 = new PrimitiveUnit("b", new PrimitiveUnit("2")); productQuotientSet.MultiplyItem(unit1); PrimitiveUnit unit2 = new PrimitiveUnit("c"); productQuotientSet.DivideItem(unit2); int counter = 0; foreach (UnitOperatorPair item in productQuotientSet) { switch (counter) { case 0: Assert.IsTrue(item.Unit.Equals(unit0)); break; case 1: Assert.IsTrue(item.Unit.Equals(unit1)); break; case 2: Assert.IsTrue(item.Unit.Equals(unit2)); break; } counter++; } }
public string Simplify_Empty_Power_Returns_Base(string value) { PrimitiveUnit emptyPower = new PrimitiveUnit(string.Empty); PrimitiveUnit unit = new PrimitiveUnit(value, emptyPower); IBase simplifiedUnit = unit.Simplify(); return(simplifiedUnit.Label()); }
public void Calculate_With_Power_Symbolic(string value) { string exponent = "Bar"; PrimitiveUnit power = new PrimitiveUnit(exponent); PrimitiveUnit symbolicValue = new PrimitiveUnit(value, power); Assert.That(symbolicValue.Calculate(), Is.EqualTo(0)); symbolicValue = new PrimitiveUnit(value + Query.POWER + exponent); Assert.That(symbolicValue.Calculate(), Is.EqualTo(0)); }
public void Calculate_With_Power_Root(string value, double expectedResult) { string exponent = "0.5"; PrimitiveUnit power = new PrimitiveUnit(exponent); PrimitiveUnit symbolicValue = new PrimitiveUnit(value, power); Assert.That(symbolicValue.Calculate(), Is.EqualTo(expectedResult)); symbolicValue = new PrimitiveUnit(value + Query.POWER + exponent); Assert.That(symbolicValue.Calculate(), Is.EqualTo(expectedResult)); }
public void Index_Accesses_Invalid_Index_Throws_Exception() { ProductQuotientSet productQuotientSet = new ProductQuotientSet("a"); PrimitiveUnit unit1 = new PrimitiveUnit("b", new PrimitiveUnit("2")); productQuotientSet.MultiplyItem(unit1); PrimitiveUnit unit2 = new PrimitiveUnit("c"); productQuotientSet.DivideItem(unit2); Assert.Throws <ArgumentOutOfRangeException>(() => { UnitOperatorPair unitOperatorPair = productQuotientSet[-1]; }); Assert.Throws <ArgumentOutOfRangeException>(() => { UnitOperatorPair unitOperatorPair = productQuotientSet[3]; }); }
public void Initialize_Numeric_Variable_As_String_No_Exponent(string value) { PrimitiveUnit symbolicValue = new PrimitiveUnit(value); Assert.IsFalse(symbolicValue.IsNumber()); Assert.IsFalse(symbolicValue.IsFloat()); Assert.IsFalse(symbolicValue.IsInteger()); Assert.IsFalse(symbolicValue.IsFraction()); Assert.IsTrue(symbolicValue.IsSymbolic()); Assert.That(symbolicValue.Label(), Is.EqualTo(string.Empty)); Assert.That(symbolicValue.BaseLabel(), Is.EqualTo(string.Empty)); Assert.That(symbolicValue.PowerLabel(), Is.EqualTo(string.Empty)); }
public void Initialize_NonNumeric_As_String_No_Exponent(string value, string expectedBaseLabel, string expectedPowerLabel, string expectedLabel) { PrimitiveUnit symbolicValue = new PrimitiveUnit(value); Assert.IsFalse(symbolicValue.IsNumber()); Assert.IsFalse(symbolicValue.IsFloat()); Assert.IsFalse(symbolicValue.IsInteger()); Assert.IsFalse(symbolicValue.IsFraction()); Assert.IsTrue(symbolicValue.IsSymbolic()); Assert.That(symbolicValue.Label(), Is.EqualTo(expectedLabel)); Assert.That(symbolicValue.BaseLabel(), Is.EqualTo(expectedBaseLabel)); Assert.That(symbolicValue.PowerLabel(), Is.EqualTo(expectedPowerLabel)); }
public void Index_Accesses_Valid_Index_Returns_Item() { ProductQuotientSet productQuotientSet = new ProductQuotientSet("a"); PrimitiveUnit unit1 = new PrimitiveUnit("b", new PrimitiveUnit("2")); productQuotientSet.MultiplyItem(unit1); PrimitiveUnit unit2 = new PrimitiveUnit("c"); productQuotientSet.DivideItem(unit2); UnitOperatorPair unitOperatorPair = productQuotientSet[1]; Assert.IsTrue(unitOperatorPair.Unit.Equals(unit1)); Assert.That(unitOperatorPair.Operator, Is.EqualTo("*")); }
public void Initialize_As_Float(double value, string exponent, string expectedBaseLabel, string expectedPowerLabel, string expectedLabel, bool isNumber, bool isFloat) { PrimitiveUnit power = new PrimitiveUnit(exponent); PrimitiveUnit symbolicValue = new PrimitiveUnit(value, power); Assert.That(symbolicValue.IsNumber(), Is.EqualTo(isNumber)); Assert.That(symbolicValue.IsFloat(), Is.EqualTo(isFloat)); Assert.IsFalse(symbolicValue.IsInteger()); Assert.IsFalse(symbolicValue.IsFraction()); Assert.That(symbolicValue.IsSymbolic(), Is.EqualTo(!isNumber)); Assert.That(symbolicValue.Label(), Is.EqualTo(expectedLabel)); Assert.That(symbolicValue.BaseLabel(), Is.EqualTo(expectedBaseLabel)); Assert.That(symbolicValue.PowerLabel(), Is.EqualTo(expectedPowerLabel)); }
public void Calculate_With_No_Exponent(string value, double expectedResult) { PrimitiveUnit symbolicValue = new PrimitiveUnit(value); Assert.That(symbolicValue.Calculate(), Is.EqualTo(expectedResult)); }
public void Override_ToString(string value, string expectedString) { PrimitiveUnit symbolicValue = new PrimitiveUnit(value); Assert.That(symbolicValue.ToString(), Is.EqualTo(expectedString)); }
public string Label_with_Primitive_Power(string value) { PrimitiveUnit unit = new PrimitiveUnit(value); return(unit.Label()); }
[TestCase("2^(3^-2)", 1.08006)] //(42a) public void Calculate_With_Power_Various(string value, double expectedResult) { PrimitiveUnit symbolicValue = new PrimitiveUnit(value); Assert.That(symbolicValue.Calculate(), Is.EqualTo(expectedResult).Within(0.000001)); }