Solution rejig (#12428)
This commit is contained in:
@@ -43,6 +43,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
Assert.That(quantity.Int(), Is.EqualTo(0));
|
||||
}
|
||||
|
||||
#if !DEBUG
|
||||
[Test]
|
||||
public void AddLessThanZeroReagentReturnsZero()
|
||||
{
|
||||
@@ -51,6 +52,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
|
||||
Assert.That(quantity.Int(), Is.EqualTo(0));
|
||||
}
|
||||
#endif
|
||||
|
||||
[Test]
|
||||
public void AddingReagentsSumsProperly()
|
||||
@@ -81,7 +83,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
solution.AddReagent("water", FixedPoint2.New(1000));
|
||||
solution.AddReagent("fire", FixedPoint2.New(2000));
|
||||
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(3000));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(3000));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -95,7 +97,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
|
||||
Assert.That(newSolution.GetReagentQuantity("water").Int(), Is.EqualTo(1000));
|
||||
Assert.That(newSolution.GetReagentQuantity("fire").Int(), Is.EqualTo(2000));
|
||||
Assert.That(newSolution.TotalVolume.Int(), Is.EqualTo(3000));
|
||||
Assert.That(newSolution.Volume.Int(), Is.EqualTo(3000));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -109,7 +111,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
|
||||
Assert.That(solution.GetReagentQuantity("water").Int(), Is.EqualTo(500));
|
||||
Assert.That(solution.GetReagentQuantity("fire").Int(), Is.EqualTo(2000));
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(2500));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(2500));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -120,7 +122,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
solution.RemoveReagent("water", FixedPoint2.New(-100));
|
||||
|
||||
Assert.That(solution.GetReagentQuantity("water").Int(), Is.EqualTo(100));
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(100));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(100));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -131,7 +133,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
solution.RemoveReagent("water", FixedPoint2.New(1000));
|
||||
|
||||
Assert.That(solution.GetReagentQuantity("water").Int(), Is.EqualTo(0));
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(0));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(0));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -142,7 +144,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
solution.RemoveReagent("fire", FixedPoint2.New(1000));
|
||||
|
||||
Assert.That(solution.GetReagentQuantity("water").Int(), Is.EqualTo(100));
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(100));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(100));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -154,7 +156,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
|
||||
//Check that edited solution is correct
|
||||
Assert.That(solution.GetReagentQuantity("water").Int(), Is.EqualTo(200));
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(200));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(200));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -166,7 +168,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
|
||||
//Check that edited solution is correct
|
||||
Assert.That(solution.GetReagentQuantity("water").Int(), Is.EqualTo(0));
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(0));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(0));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -180,7 +182,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
|
||||
Assert.That(solution.GetReagentQuantity("water").Int(), Is.EqualTo(500));
|
||||
Assert.That(solution.GetReagentQuantity("fire").Int(), Is.EqualTo(1000));
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(1500));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(1500));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -191,7 +193,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
solution.RemoveSolution(FixedPoint2.New(-200));
|
||||
|
||||
Assert.That(solution.GetReagentQuantity("water").Int(), Is.EqualTo(800));
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(800));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(800));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -205,11 +207,11 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
|
||||
Assert.That(solution.GetReagentQuantity("water").Int(), Is.EqualTo(750));
|
||||
Assert.That(solution.GetReagentQuantity("fire").Int(), Is.EqualTo(1500));
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(2250));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(2250));
|
||||
|
||||
Assert.That(splitSolution.GetReagentQuantity("water").Int(), Is.EqualTo(250));
|
||||
Assert.That(splitSolution.GetReagentQuantity("fire").Int(), Is.EqualTo(500));
|
||||
Assert.That(splitSolution.TotalVolume.Int(), Is.EqualTo(750));
|
||||
Assert.That(splitSolution.Volume.Int(), Is.EqualTo(750));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -221,13 +223,13 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
|
||||
var splitSolution = solution.SplitSolution(FixedPoint2.New(1));
|
||||
|
||||
Assert.That(solution.GetReagentQuantity("water").Float(), Is.EqualTo(0.67f));
|
||||
Assert.That(solution.GetReagentQuantity("fire").Float(), Is.EqualTo(1.33f));
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(2));
|
||||
Assert.That(solution.GetReagentQuantity("water").Float(), Is.EqualTo(0.66f));
|
||||
Assert.That(solution.GetReagentQuantity("fire").Float(), Is.EqualTo(1.34f));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(2));
|
||||
|
||||
Assert.That(splitSolution.GetReagentQuantity("water").Float(), Is.EqualTo(0.33f));
|
||||
Assert.That(splitSolution.GetReagentQuantity("fire").Float(), Is.EqualTo(0.67f));
|
||||
Assert.That(splitSolution.TotalVolume.Int(), Is.EqualTo(1));
|
||||
Assert.That(splitSolution.GetReagentQuantity("water").Float(), Is.EqualTo(0.34f));
|
||||
Assert.That(splitSolution.GetReagentQuantity("fire").Float(), Is.EqualTo(0.66f));
|
||||
Assert.That(splitSolution.Volume.Int(), Is.EqualTo(1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -241,11 +243,11 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
|
||||
Assert.That(solution.GetReagentQuantity("water").Float(), Is.EqualTo(0.33f));
|
||||
Assert.That(solution.GetReagentQuantity("fire").Float(), Is.EqualTo(0.67f));
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(1));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(1));
|
||||
|
||||
Assert.That(splitSolution.GetReagentQuantity("water").Float(), Is.EqualTo(0.67f));
|
||||
Assert.That(splitSolution.GetReagentQuantity("fire").Float(), Is.EqualTo(1.33f));
|
||||
Assert.That(splitSolution.TotalVolume.Int(), Is.EqualTo(2));
|
||||
Assert.That(splitSolution.Volume.Int(), Is.EqualTo(2));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -259,10 +261,10 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
var splitSolution = solution.SplitSolution(FixedPoint2.New(reduce));
|
||||
|
||||
Assert.That(solution.GetReagentQuantity("water").Float(), Is.EqualTo(remainder));
|
||||
Assert.That(solution.TotalVolume.Float(), Is.EqualTo(remainder));
|
||||
Assert.That(solution.Volume.Float(), Is.EqualTo(remainder));
|
||||
|
||||
Assert.That(splitSolution.GetReagentQuantity("water").Float(), Is.EqualTo(reduce));
|
||||
Assert.That(splitSolution.TotalVolume.Float(), Is.EqualTo(reduce));
|
||||
Assert.That(splitSolution.Volume.Float(), Is.EqualTo(reduce));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -280,7 +282,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
var splitAmount = FixedPoint2.New(5);
|
||||
var split = solutionOne.SplitSolution(splitAmount);
|
||||
|
||||
Assert.That(split.TotalVolume, Is.EqualTo(splitAmount));
|
||||
Assert.That(split.Volume, Is.EqualTo(splitAmount));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -291,10 +293,10 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
var splitSolution = solution.SplitSolution(FixedPoint2.New(1000));
|
||||
|
||||
Assert.That(solution.GetReagentQuantity("water").Int(), Is.EqualTo(0));
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(0));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(0));
|
||||
|
||||
Assert.That(splitSolution.GetReagentQuantity("water").Int(), Is.EqualTo(800));
|
||||
Assert.That(splitSolution.TotalVolume.Int(), Is.EqualTo(800));
|
||||
Assert.That(splitSolution.Volume.Int(), Is.EqualTo(800));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -305,10 +307,10 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
var splitSolution = solution.SplitSolution(FixedPoint2.New(-200));
|
||||
|
||||
Assert.That(solution.GetReagentQuantity("water").Int(), Is.EqualTo(800));
|
||||
Assert.That(solution.TotalVolume.Int(), Is.EqualTo(800));
|
||||
Assert.That(solution.Volume.Int(), Is.EqualTo(800));
|
||||
|
||||
Assert.That(splitSolution.GetReagentQuantity("water").Int(), Is.EqualTo(0));
|
||||
Assert.That(splitSolution.TotalVolume.Int(), Is.EqualTo(0));
|
||||
Assert.That(splitSolution.Volume.Int(), Is.EqualTo(0));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -343,12 +345,12 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
solutionTwo.AddReagent("water", FixedPoint2.New(500));
|
||||
solutionTwo.AddReagent("earth", FixedPoint2.New(1000));
|
||||
|
||||
solutionOne.AddSolution(solutionTwo);
|
||||
solutionOne.AddSolution(solutionTwo, null);
|
||||
|
||||
Assert.That(solutionOne.GetReagentQuantity("water").Int(), Is.EqualTo(1500));
|
||||
Assert.That(solutionOne.GetReagentQuantity("fire").Int(), Is.EqualTo(2000));
|
||||
Assert.That(solutionOne.GetReagentQuantity("earth").Int(), Is.EqualTo(1000));
|
||||
Assert.That(solutionOne.TotalVolume.Int(), Is.EqualTo(4500));
|
||||
Assert.That(solutionOne.Volume.Int(), Is.EqualTo(4500));
|
||||
}
|
||||
|
||||
// Tests concerning thermal energy and temperature.
|
||||
@@ -359,24 +361,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
public void EmptySolutionHasNoHeatCapacity()
|
||||
{
|
||||
var solution = new Solution();
|
||||
Assert.That(solution.HeatCapacity, Is.EqualTo(0.0f));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void EmptySolutionHasNoThermalEnergy()
|
||||
{
|
||||
var solution = new Solution();
|
||||
Assert.That(solution.ThermalEnergy, Is.EqualTo(0.0f));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void AddReagentToEmptySolutionSetsTemperature()
|
||||
{
|
||||
const float testTemp = 100.0f;
|
||||
|
||||
var solution = new Solution();
|
||||
solution.AddReagent("water", FixedPoint2.New(100), testTemp);
|
||||
Assert.That(solution.Temperature, Is.EqualTo(testTemp));
|
||||
Assert.That(solution.GetHeatCapacity(null), Is.EqualTo(0.0f));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -384,8 +369,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
{
|
||||
const float initialTemp = 100.0f;
|
||||
|
||||
var solution = new Solution();
|
||||
solution.AddReagent("water", FixedPoint2.New(100), initialTemp);
|
||||
var solution = new Solution("water", FixedPoint2.New(100)) { Temperature = initialTemp };
|
||||
|
||||
solution.AddReagent("water", FixedPoint2.New(100));
|
||||
Assert.That(solution.Temperature, Is.EqualTo(initialTemp));
|
||||
@@ -408,7 +392,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
solutionTwo.AddReagent("earth", FixedPoint2.New(100));
|
||||
solutionTwo.Temperature = initialTemp;
|
||||
|
||||
solutionOne.AddSolution(solutionTwo);
|
||||
solutionOne.AddSolution(solutionTwo, null);
|
||||
Assert.That(solutionOne.Temperature, Is.EqualTo(initialTemp));
|
||||
}
|
||||
|
||||
@@ -417,8 +401,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
{
|
||||
const float initialTemp = 100.0f;
|
||||
|
||||
var solution = new Solution();
|
||||
solution.AddReagent("water", FixedPoint2.New(100), initialTemp);
|
||||
var solution = new Solution("water", FixedPoint2.New(100)) { Temperature = initialTemp };
|
||||
solution.RemoveReagent("water", FixedPoint2.New(50));
|
||||
Assert.That(solution.Temperature, Is.EqualTo(initialTemp));
|
||||
}
|
||||
@@ -428,8 +411,7 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
{
|
||||
const float initialTemp = 100.0f;
|
||||
|
||||
var solution = new Solution();
|
||||
solution.AddReagent("water", FixedPoint2.New(100), initialTemp);
|
||||
var solution = new Solution("water", FixedPoint2.New(100)) { Temperature = initialTemp };
|
||||
solution.RemoveSolution(FixedPoint2.New(50));
|
||||
Assert.That(solution.Temperature, Is.EqualTo(initialTemp));
|
||||
}
|
||||
@@ -439,45 +421,10 @@ public sealed class Solution_Tests : ContentUnitTest
|
||||
{
|
||||
const float initialTemp = 100.0f;
|
||||
|
||||
var solution = new Solution();
|
||||
solution.AddReagent("water", FixedPoint2.New(100), initialTemp);
|
||||
var solution = new Solution("water", FixedPoint2.New(100)) { Temperature = initialTemp };
|
||||
solution.SplitSolution(FixedPoint2.New(50));
|
||||
Assert.That(solution.Temperature, Is.EqualTo(initialTemp));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void AddReagentWithSetTemperatureAdjustsTemperature()
|
||||
{
|
||||
const float temp = 100.0f;
|
||||
|
||||
var solution = new Solution();
|
||||
solution.AddReagent("water", FixedPoint2.New(100), temp * 1);
|
||||
Assert.That(solution.Temperature, Is.EqualTo(temp * 1));
|
||||
|
||||
solution.AddReagent("water", FixedPoint2.New(100), temp * 3);
|
||||
Assert.That(solution.Temperature, Is.EqualTo(temp * 2));
|
||||
|
||||
solution.AddReagent("earth", FixedPoint2.New(100), temp * 5);
|
||||
Assert.That(solution.Temperature, Is.EqualTo(temp * 3));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void AddSolutionCombinesThermalEnergy()
|
||||
{
|
||||
const float initialTemp = 100.0f;
|
||||
|
||||
var solutionOne = new Solution();
|
||||
solutionOne.AddReagent("water", FixedPoint2.New(100), initialTemp);
|
||||
|
||||
var solutionTwo = new Solution();
|
||||
solutionTwo.AddReagent("water", FixedPoint2.New(100), initialTemp);
|
||||
solutionTwo.AddReagent("earth", FixedPoint2.New(100));
|
||||
|
||||
var thermalEnergyOne = solutionOne.ThermalEnergy;
|
||||
var thermalEnergyTwo = solutionTwo.ThermalEnergy;
|
||||
solutionOne.AddSolution(solutionTwo);
|
||||
Assert.That(solutionOne.ThermalEnergy, Is.EqualTo(thermalEnergyOne + thermalEnergyTwo));
|
||||
}
|
||||
|
||||
#endregion Thermal Energy and Temperature
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user