desc: reagent-desc-nothing
physicalDesc: reagent-physical-desc-nothing
";
+
+ private const string TestReagentA = "TestReagentA";
+ private const string TestReagentB = "TestReagentB";
+ private const string TestReagentC = "TestReagentC";
+ private const string Water = "Water";
+ private const string Oil = "Oil";
+
[Test]
public async Task TryAddTwoNonReactiveReagent()
{
var oilQuantity = FixedPoint2.New(15);
var waterQuantity = FixedPoint2.New(10);
- var oilAdded = new Solution("Oil", oilQuantity);
- var originalWater = new Solution("Water", waterQuantity);
+ var oilAdded = new Solution(Oil, oilQuantity);
+ var originalWater = new Solution(Water, waterQuantity);
beaker = entityManager.SpawnEntity("SolutionTarget", coordinates);
Assert.That(containerSystem
Assert.That(containerSystem
.TryAddSolution(solutionEnt.Value, oilAdded));
- var water = solution.GetTotalPrototypeQuantity("Water");
- var oil = solution.GetTotalPrototypeQuantity("Oil");
+ var water = solution.GetTotalPrototypeQuantity(Water);
+ var oil = solution.GetTotalPrototypeQuantity(Oil);
Assert.Multiple(() =>
{
Assert.That(water, Is.EqualTo(waterQuantity));
var oilQuantity = FixedPoint2.New(1500);
var waterQuantity = FixedPoint2.New(10);
- var oilAdded = new Solution("Oil", oilQuantity);
- var originalWater = new Solution("Water", waterQuantity);
+ var oilAdded = new Solution(Oil, oilQuantity);
+ var originalWater = new Solution(Water, waterQuantity);
beaker = entityManager.SpawnEntity("SolutionTarget", coordinates);
Assert.That(containerSystem
Assert.That(containerSystem
.TryAddSolution(solutionEnt.Value, oilAdded), Is.False);
- var water = solution.GetTotalPrototypeQuantity("Water");
- var oil = solution.GetTotalPrototypeQuantity("Oil");
+ var water = solution.GetTotalPrototypeQuantity(Water);
+ var oil = solution.GetTotalPrototypeQuantity(Oil);
Assert.Multiple(() =>
{
Assert.That(water, Is.EqualTo(waterQuantity));
var waterQuantity = FixedPoint2.New(10);
var oilQuantity = FixedPoint2.New(ratio * waterQuantity.Int());
- var oilAdded = new Solution("Oil", oilQuantity);
- var originalWater = new Solution("Water", waterQuantity);
+ var oilAdded = new Solution(Oil, oilQuantity);
+ var originalWater = new Solution(Water, waterQuantity);
beaker = entityManager.SpawnEntity("SolutionTarget", coordinates);
Assert.That(containerSystem
{
Assert.That(solution.Volume, Is.EqualTo(FixedPoint2.New(threshold)));
- var waterMix = solution.GetTotalPrototypeQuantity("Water");
- var oilMix = solution.GetTotalPrototypeQuantity("Oil");
+ var waterMix = solution.GetTotalPrototypeQuantity(Water);
+ var oilMix = solution.GetTotalPrototypeQuantity(Oil);
Assert.That(waterMix, Is.EqualTo(FixedPoint2.New(threshold / (ratio + 1))));
Assert.That(oilMix, Is.EqualTo(FixedPoint2.New(threshold / (ratio + 1) * ratio)));
Assert.That(overflowingSolution.Volume, Is.EqualTo(FixedPoint2.New(80)));
- var waterOverflow = overflowingSolution.GetTotalPrototypeQuantity("Water");
- var oilOverFlow = overflowingSolution.GetTotalPrototypeQuantity("Oil");
+ var waterOverflow = overflowingSolution.GetTotalPrototypeQuantity(Water);
+ var oilOverFlow = overflowingSolution.GetTotalPrototypeQuantity(Oil);
Assert.That(waterOverflow, Is.EqualTo(waterQuantity - waterMix));
Assert.That(oilOverFlow, Is.EqualTo(oilQuantity - oilMix));
});
var waterQuantity = FixedPoint2.New(10);
var oilQuantity = FixedPoint2.New(ratio * waterQuantity.Int());
- var oilAdded = new Solution("Oil", oilQuantity);
- var originalWater = new Solution("Water", waterQuantity);
+ var oilAdded = new Solution(Oil, oilQuantity);
+ var originalWater = new Solution(Water, waterQuantity);
beaker = entityManager.SpawnEntity("SolutionTarget", coordinates);
Assert.That(containerSystem
// Adding reagent with adjusts temperature
await server.WaitAssertion(() =>
{
-
- var solution = new Solution("TestReagentA", FixedPoint2.New(100)) { Temperature = temp };
+ var solution = new Solution(TestReagentA, FixedPoint2.New(100)) { Temperature = temp };
Assert.That(solution.Temperature, Is.EqualTo(temp * 1));
- solution.AddSolution(new Solution("TestReagentA", FixedPoint2.New(100)) { Temperature = temp * 3 }, protoMan);
+ solution.AddSolution(new Solution(TestReagentA, FixedPoint2.New(100)) { Temperature = temp * 3 }, protoMan);
Assert.That(solution.Temperature, Is.EqualTo(temp * 2));
- solution.AddSolution(new Solution("TestReagentB", FixedPoint2.New(100)) { Temperature = temp * 5 }, protoMan);
+ solution.AddSolution(new Solution(TestReagentB, FixedPoint2.New(100)) { Temperature = temp * 5 }, protoMan);
Assert.That(solution.Temperature, Is.EqualTo(temp * 3));
});
// adding solutions combines thermal energy
await server.WaitAssertion(() =>
{
- var solutionOne = new Solution("TestReagentA", FixedPoint2.New(100)) { Temperature = temp };
+ var solutionOne = new Solution(TestReagentA, FixedPoint2.New(100)) { Temperature = temp };
- var solutionTwo = new Solution("TestReagentB", FixedPoint2.New(100)) { Temperature = temp };
- solutionTwo.AddReagent("TestReagentC", FixedPoint2.New(100));
+ var solutionTwo = new Solution(TestReagentB, FixedPoint2.New(100)) { Temperature = temp };
+ solutionTwo.AddReagent(TestReagentC, FixedPoint2.New(100));
var thermalEnergyOne = solutionOne.GetHeatCapacity(protoMan) * solutionOne.Temperature;
var thermalEnergyTwo = solutionTwo.GetHeatCapacity(protoMan) * solutionTwo.Temperature;
[TestFixture, Parallelizable, TestOf(typeof(Solution))]
public sealed class SolutionTests : ContentUnitTest
{
+ private const string Water = "water";
+ private const string Fire = "fire";
+ private const string Earth = "earth";
+
[OneTimeSetUp]
public void Setup()
{
public void AddReagentAndGetSolution()
{
var solution = new Solution();
- solution.AddReagent("water", FixedPoint2.New(1000));
- var quantity = solution.GetTotalPrototypeQuantity("water");
+ solution.AddReagent(Water, FixedPoint2.New(1000));
+ var quantity = solution.GetTotalPrototypeQuantity(Water);
Assert.That(quantity.Int(), Is.EqualTo(1000));
}
public void ScaleSolution()
{
var solution = new Solution();
- solution.AddReagent("water", FixedPoint2.New(20));
- solution.AddReagent("fire", FixedPoint2.New(30));
+ solution.AddReagent(Water, FixedPoint2.New(20));
+ solution.AddReagent(Fire, FixedPoint2.New(30));
// Test integer scaling
{
tmp.ScaleSolution(2);
Assert.That(tmp.Contents.Count, Is.EqualTo(2));
Assert.That(tmp.Volume, Is.EqualTo(FixedPoint2.New(100)));
- Assert.That(tmp.GetTotalPrototypeQuantity("water"), Is.EqualTo(FixedPoint2.New(40)));
- Assert.That(tmp.GetTotalPrototypeQuantity("fire"), Is.EqualTo(FixedPoint2.New(60)));
+ Assert.That(tmp.GetTotalPrototypeQuantity(Water), Is.EqualTo(FixedPoint2.New(40)));
+ Assert.That(tmp.GetTotalPrototypeQuantity(Fire), Is.EqualTo(FixedPoint2.New(60)));
}
// Test float scaling
tmp.ScaleSolution(2f);
Assert.That(tmp.Contents.Count, Is.EqualTo(2));
Assert.That(tmp.Volume, Is.EqualTo(FixedPoint2.New(100)));
- Assert.That(tmp.GetTotalPrototypeQuantity("water"), Is.EqualTo(FixedPoint2.New(40)));
- Assert.That(tmp.GetTotalPrototypeQuantity("fire"), Is.EqualTo(FixedPoint2.New(60)));
+ Assert.That(tmp.GetTotalPrototypeQuantity(Water), Is.EqualTo(FixedPoint2.New(40)));
+ Assert.That(tmp.GetTotalPrototypeQuantity(Fire), Is.EqualTo(FixedPoint2.New(60)));
tmp = solution.Clone();
tmp.ScaleSolution(0.3f);
Assert.That(tmp.Contents.Count, Is.EqualTo(2));
Assert.That(tmp.Volume, Is.EqualTo(FixedPoint2.New(15)));
- Assert.That(tmp.GetTotalPrototypeQuantity("water"), Is.EqualTo(FixedPoint2.New(6)));
- Assert.That(tmp.GetTotalPrototypeQuantity("fire"), Is.EqualTo(FixedPoint2.New(9)));
+ Assert.That(tmp.GetTotalPrototypeQuantity(Water), Is.EqualTo(FixedPoint2.New(6)));
+ Assert.That(tmp.GetTotalPrototypeQuantity(Fire), Is.EqualTo(FixedPoint2.New(9)));
}
}
[Test]
public void ConstructorAddReagent()
{
- var solution = new Solution("water", FixedPoint2.New(1000));
- var quantity = solution.GetTotalPrototypeQuantity("water");
+ var solution = new Solution(Water, FixedPoint2.New(1000));
+ var quantity = solution.GetTotalPrototypeQuantity(Water);
Assert.That(quantity.Int(), Is.EqualTo(1000));
}
public void NonExistingReagentReturnsZero()
{
var solution = new Solution();
- var quantity = solution.GetTotalPrototypeQuantity("water");
+ var quantity = solution.GetTotalPrototypeQuantity(Water);
Assert.That(quantity.Int(), Is.EqualTo(0));
}
[Test]
public void AddLessThanZeroReagentReturnsZero()
{
- var solution = new Solution("water", FixedPoint2.New(-1000));
- var quantity = solution.GetTotalPrototypeQuantity("water");
+ var solution = new Solution(Water, FixedPoint2.New(-1000));
+ var quantity = solution.GetTotalPrototypeQuantity(Water);
Assert.That(quantity.Int(), Is.EqualTo(0));
}
public void AddingReagentsSumsProperly()
{
var solution = new Solution();
- solution.AddReagent("water", FixedPoint2.New(1000));
- solution.AddReagent("water", FixedPoint2.New(2000));
- var quantity = solution.GetTotalPrototypeQuantity("water");
+ solution.AddReagent(Water, FixedPoint2.New(1000));
+ solution.AddReagent(Water, FixedPoint2.New(2000));
+ var quantity = solution.GetTotalPrototypeQuantity(Water);
Assert.That(quantity.Int(), Is.EqualTo(3000));
}
public void ReagentQuantitiesStayUnique()
{
var solution = new Solution();
- solution.AddReagent("water", FixedPoint2.New(1000));
- solution.AddReagent("fire", FixedPoint2.New(2000));
+ solution.AddReagent(Water, FixedPoint2.New(1000));
+ solution.AddReagent(Fire, FixedPoint2.New(2000));
- Assert.That(solution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(1000));
- Assert.That(solution.GetTotalPrototypeQuantity("fire").Int(), Is.EqualTo(2000));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(1000));
+ Assert.That(solution.GetTotalPrototypeQuantity(Fire).Int(), Is.EqualTo(2000));
}
[Test]
public void TotalVolumeIsCorrect()
{
var solution = new Solution();
- solution.AddReagent("water", FixedPoint2.New(1000));
- solution.AddReagent("fire", FixedPoint2.New(2000));
+ solution.AddReagent(Water, FixedPoint2.New(1000));
+ solution.AddReagent(Fire, FixedPoint2.New(2000));
Assert.That(solution.Volume.Int(), Is.EqualTo(3000));
}
public void CloningSolutionIsCorrect()
{
var solution = new Solution();
- solution.AddReagent("water", FixedPoint2.New(1000));
- solution.AddReagent("fire", FixedPoint2.New(2000));
+ solution.AddReagent(Water, FixedPoint2.New(1000));
+ solution.AddReagent(Fire, FixedPoint2.New(2000));
var newSolution = solution.Clone();
- Assert.That(newSolution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(1000));
- Assert.That(newSolution.GetTotalPrototypeQuantity("fire").Int(), Is.EqualTo(2000));
+ Assert.That(newSolution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(1000));
+ Assert.That(newSolution.GetTotalPrototypeQuantity(Fire).Int(), Is.EqualTo(2000));
Assert.That(newSolution.Volume.Int(), Is.EqualTo(3000));
}
public void RemoveSolutionRecalculatesProperly()
{
var solution = new Solution();
- solution.AddReagent("water", FixedPoint2.New(1000));
- solution.AddReagent("fire", FixedPoint2.New(2000));
+ solution.AddReagent(Water, FixedPoint2.New(1000));
+ solution.AddReagent(Fire, FixedPoint2.New(2000));
- solution.RemoveReagent("water", FixedPoint2.New(500));
+ solution.RemoveReagent(Water, FixedPoint2.New(500));
- Assert.That(solution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(500));
- Assert.That(solution.GetTotalPrototypeQuantity("fire").Int(), Is.EqualTo(2000));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(500));
+ Assert.That(solution.GetTotalPrototypeQuantity(Fire).Int(), Is.EqualTo(2000));
Assert.That(solution.Volume.Int(), Is.EqualTo(2500));
}
[Test]
public void RemoveLessThanOneQuantityDoesNothing()
{
- var solution = new Solution("water", FixedPoint2.New(100));
+ var solution = new Solution(Water, FixedPoint2.New(100));
- solution.RemoveReagent("water", FixedPoint2.New(-100));
+ solution.RemoveReagent(Water, FixedPoint2.New(-100));
- Assert.That(solution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(100));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(100));
Assert.That(solution.Volume.Int(), Is.EqualTo(100));
}
[Test]
public void RemoveMoreThanTotalRemovesAllReagent()
{
- var solution = new Solution("water", FixedPoint2.New(100));
+ var solution = new Solution(Water, FixedPoint2.New(100));
- solution.RemoveReagent("water", FixedPoint2.New(1000));
+ solution.RemoveReagent(Water, FixedPoint2.New(1000));
- Assert.That(solution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(0));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(0));
Assert.That(solution.Volume.Int(), Is.EqualTo(0));
}
[Test]
public void RemoveNonExistReagentDoesNothing()
{
- var solution = new Solution("water", FixedPoint2.New(100));
+ var solution = new Solution(Water, FixedPoint2.New(100));
- solution.RemoveReagent("fire", FixedPoint2.New(1000));
+ solution.RemoveReagent(Fire, FixedPoint2.New(1000));
- Assert.That(solution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(100));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(100));
Assert.That(solution.Volume.Int(), Is.EqualTo(100));
}
[Test]
public void RemoveSolution()
{
- var solution = new Solution("water", FixedPoint2.New(700));
+ var solution = new Solution(Water, FixedPoint2.New(700));
solution.RemoveSolution(FixedPoint2.New(500));
//Check that edited solution is correct
- Assert.That(solution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(200));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(200));
Assert.That(solution.Volume.Int(), Is.EqualTo(200));
}
[Test]
public void RemoveSolutionMoreThanTotalRemovesAll()
{
- var solution = new Solution("water", FixedPoint2.New(800));
+ var solution = new Solution(Water, FixedPoint2.New(800));
solution.RemoveSolution(FixedPoint2.New(1000));
//Check that edited solution is correct
- Assert.That(solution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(0));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(0));
Assert.That(solution.Volume.Int(), Is.EqualTo(0));
}
public void RemoveSolutionRatioPreserved()
{
var solution = new Solution();
- solution.AddReagent("water", FixedPoint2.New(1000));
- solution.AddReagent("fire", FixedPoint2.New(2000));
+ solution.AddReagent(Water, FixedPoint2.New(1000));
+ solution.AddReagent(Fire, FixedPoint2.New(2000));
solution.RemoveSolution(FixedPoint2.New(1500));
- Assert.That(solution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(500));
- Assert.That(solution.GetTotalPrototypeQuantity("fire").Int(), Is.EqualTo(1000));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(500));
+ Assert.That(solution.GetTotalPrototypeQuantity(Fire).Int(), Is.EqualTo(1000));
Assert.That(solution.Volume.Int(), Is.EqualTo(1500));
}
[Test]
public void RemoveSolutionLessThanOneDoesNothing()
{
- var solution = new Solution("water", FixedPoint2.New(800));
+ var solution = new Solution(Water, FixedPoint2.New(800));
solution.RemoveSolution(FixedPoint2.New(-200));
- Assert.That(solution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(800));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(800));
Assert.That(solution.Volume.Int(), Is.EqualTo(800));
}
public void SplitSolution()
{
var solution = new Solution();
- solution.AddReagent("water", FixedPoint2.New(1000));
- solution.AddReagent("fire", FixedPoint2.New(2000));
+ solution.AddReagent(Water, FixedPoint2.New(1000));
+ solution.AddReagent(Fire, FixedPoint2.New(2000));
var splitSolution = solution.SplitSolution(FixedPoint2.New(750));
- Assert.That(solution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(750));
- Assert.That(solution.GetTotalPrototypeQuantity("fire").Int(), Is.EqualTo(1500));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(750));
+ Assert.That(solution.GetTotalPrototypeQuantity(Fire).Int(), Is.EqualTo(1500));
Assert.That(solution.Volume.Int(), Is.EqualTo(2250));
- Assert.That(splitSolution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(250));
- Assert.That(splitSolution.GetTotalPrototypeQuantity("fire").Int(), Is.EqualTo(500));
+ Assert.That(splitSolution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(250));
+ Assert.That(splitSolution.GetTotalPrototypeQuantity(Fire).Int(), Is.EqualTo(500));
Assert.That(splitSolution.Volume.Int(), Is.EqualTo(750));
}
public void SplitSolutionFractional()
{
var solution = new Solution();
- solution.AddReagent("water", FixedPoint2.New(1));
- solution.AddReagent("fire", FixedPoint2.New(2));
+ solution.AddReagent(Water, FixedPoint2.New(1));
+ solution.AddReagent(Fire, FixedPoint2.New(2));
var splitSolution = solution.SplitSolution(FixedPoint2.New(1));
- Assert.That(solution.GetTotalPrototypeQuantity("water").Float(), Is.EqualTo(0.66f));
- Assert.That(solution.GetTotalPrototypeQuantity("fire").Float(), Is.EqualTo(1.34f));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Float(), Is.EqualTo(0.66f));
+ Assert.That(solution.GetTotalPrototypeQuantity(Fire).Float(), Is.EqualTo(1.34f));
Assert.That(solution.Volume.Int(), Is.EqualTo(2));
- Assert.That(splitSolution.GetTotalPrototypeQuantity("water").Float(), Is.EqualTo(0.34f));
- Assert.That(splitSolution.GetTotalPrototypeQuantity("fire").Float(), Is.EqualTo(0.66f));
+ Assert.That(splitSolution.GetTotalPrototypeQuantity(Water).Float(), Is.EqualTo(0.34f));
+ Assert.That(splitSolution.GetTotalPrototypeQuantity(Fire).Float(), Is.EqualTo(0.66f));
Assert.That(splitSolution.Volume.Int(), Is.EqualTo(1));
}
public void SplitSolutionFractionalOpposite()
{
var solution = new Solution();
- solution.AddReagent("water", FixedPoint2.New(1));
- solution.AddReagent("fire", FixedPoint2.New(2));
+ solution.AddReagent(Water, FixedPoint2.New(1));
+ solution.AddReagent(Fire, FixedPoint2.New(2));
var splitSolution = solution.SplitSolution(FixedPoint2.New(2));
- Assert.That(solution.GetTotalPrototypeQuantity("water").Float(), Is.EqualTo(0.33f));
- Assert.That(solution.GetTotalPrototypeQuantity("fire").Float(), Is.EqualTo(0.67f));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Float(), Is.EqualTo(0.33f));
+ Assert.That(solution.GetTotalPrototypeQuantity(Fire).Float(), Is.EqualTo(0.67f));
Assert.That(solution.Volume.Int(), Is.EqualTo(1));
- Assert.That(splitSolution.GetTotalPrototypeQuantity("water").Float(), Is.EqualTo(0.67f));
- Assert.That(splitSolution.GetTotalPrototypeQuantity("fire").Float(), Is.EqualTo(1.33f));
+ Assert.That(splitSolution.GetTotalPrototypeQuantity(Water).Float(), Is.EqualTo(0.67f));
+ Assert.That(splitSolution.GetTotalPrototypeQuantity(Fire).Float(), Is.EqualTo(1.33f));
Assert.That(splitSolution.Volume.Int(), Is.EqualTo(2));
}
public void SplitSolutionTinyFractionalBigSmall(float initial, float reduce, float remainder)
{
var solution = new Solution();
- solution.AddReagent("water", FixedPoint2.New(initial));
+ solution.AddReagent(Water, FixedPoint2.New(initial));
var splitSolution = solution.SplitSolution(FixedPoint2.New(reduce));
- Assert.That(solution.GetTotalPrototypeQuantity("water").Float(), Is.EqualTo(remainder));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Float(), Is.EqualTo(remainder));
Assert.That(solution.Volume.Float(), Is.EqualTo(remainder));
- Assert.That(splitSolution.GetTotalPrototypeQuantity("water").Float(), Is.EqualTo(reduce));
+ Assert.That(splitSolution.GetTotalPrototypeQuantity(Water).Float(), Is.EqualTo(reduce));
Assert.That(splitSolution.Volume.Float(), Is.EqualTo(reduce));
}
[TestCase(1000)]
public void SplitRounding(int amount)
{
+ var foo = "foo";
+ var bar = "bar";
+ var baz = "baz";
+
var solutionOne = new Solution();
- solutionOne.AddReagent("foo", FixedPoint2.New(amount));
- solutionOne.AddReagent("bar", FixedPoint2.New(amount));
- solutionOne.AddReagent("baz", FixedPoint2.New(amount));
+ solutionOne.AddReagent(foo, FixedPoint2.New(amount));
+ solutionOne.AddReagent(bar, FixedPoint2.New(amount));
+ solutionOne.AddReagent(baz, FixedPoint2.New(amount));
var splitAmount = FixedPoint2.New(5);
var split = solutionOne.SplitSolution(splitAmount);
[Test]
public void SplitSolutionMoreThanTotalRemovesAll()
{
- var solution = new Solution("water", FixedPoint2.New(800));
+ var solution = new Solution(Water, FixedPoint2.New(800));
var splitSolution = solution.SplitSolution(FixedPoint2.New(1000));
- Assert.That(solution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(0));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(0));
Assert.That(solution.Volume.Int(), Is.EqualTo(0));
- Assert.That(splitSolution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(800));
+ Assert.That(splitSolution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(800));
Assert.That(splitSolution.Volume.Int(), Is.EqualTo(800));
}
[Test]
public void SplitSolutionLessThanOneDoesNothing()
{
- var solution = new Solution("water", FixedPoint2.New(800));
+ var solution = new Solution(Water, FixedPoint2.New(800));
var splitSolution = solution.SplitSolution(FixedPoint2.New(-200));
- Assert.That(solution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(800));
+ Assert.That(solution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(800));
Assert.That(solution.Volume.Int(), Is.EqualTo(800));
- Assert.That(splitSolution.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(0));
+ Assert.That(splitSolution.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(0));
Assert.That(splitSolution.Volume.Int(), Is.EqualTo(0));
}
[Test]
public void SplitSolutionZero()
{
+ var impedrezene = "Impedrezene";
+ var thermite = "Thermite";
+ var lithium = "Li";
+ var flourine = "F";
+ var sodium = "Na";
+ var mercury = "Hg";
+ var copper = "Cu";
+ var uranium = "U";
+ var iron = "Fe";
+ var spaceDrugs = "SpaceDrugs";
+ var aluminum = "Al";
+ var glucose = "Glucose";
+ var oxygen = "O";
+
var solution = new Solution();
- solution.AddReagent("Impedrezene", FixedPoint2.New(0.01 + 0.19));
- solution.AddReagent("Thermite", FixedPoint2.New(0.01 + 0.39));
- solution.AddReagent("Li", FixedPoint2.New(0.01 + 0.17));
- solution.AddReagent("F", FixedPoint2.New(0.01 + 0.17));
- solution.AddReagent("Na", FixedPoint2.New(0 + 0.13));
- solution.AddReagent("Hg", FixedPoint2.New(0.15 + 4.15));
- solution.AddReagent("Cu", FixedPoint2.New(0 + 0.13));
- solution.AddReagent("U", FixedPoint2.New(0.76 + 20.77));
- solution.AddReagent("Fe", FixedPoint2.New(0.01 + 0.36));
- solution.AddReagent("SpaceDrugs", FixedPoint2.New(0.02 + 0.41));
- solution.AddReagent("Al", FixedPoint2.New(0));
- solution.AddReagent("Glucose", FixedPoint2.New(0));
- solution.AddReagent("O", FixedPoint2.New(0));
+ solution.AddReagent(impedrezene, FixedPoint2.New(0.01 + 0.19));
+ solution.AddReagent(thermite, FixedPoint2.New(0.01 + 0.39));
+ solution.AddReagent(lithium, FixedPoint2.New(0.01 + 0.17));
+ solution.AddReagent(flourine, FixedPoint2.New(0.01 + 0.17));
+ solution.AddReagent(sodium, FixedPoint2.New(0 + 0.13));
+ solution.AddReagent(mercury, FixedPoint2.New(0.15 + 4.15));
+ solution.AddReagent(copper, FixedPoint2.New(0 + 0.13));
+ solution.AddReagent(uranium, FixedPoint2.New(0.76 + 20.77));
+ solution.AddReagent(iron, FixedPoint2.New(0.01 + 0.36));
+ solution.AddReagent(spaceDrugs, FixedPoint2.New(0.02 + 0.41));
+ solution.AddReagent(aluminum, FixedPoint2.New(0));
+ solution.AddReagent(glucose, FixedPoint2.New(0));
+ solution.AddReagent(oxygen, FixedPoint2.New(0));
solution.SplitSolution(FixedPoint2.New(0.98));
}
public void AddSolution()
{
var solutionOne = new Solution();
- solutionOne.AddReagent("water", FixedPoint2.New(1000));
- solutionOne.AddReagent("fire", FixedPoint2.New(2000));
+ solutionOne.AddReagent(Water, FixedPoint2.New(1000));
+ solutionOne.AddReagent(Fire, FixedPoint2.New(2000));
var solutionTwo = new Solution();
- solutionTwo.AddReagent("water", FixedPoint2.New(500));
- solutionTwo.AddReagent("earth", FixedPoint2.New(1000));
+ solutionTwo.AddReagent(Water, FixedPoint2.New(500));
+ solutionTwo.AddReagent(Earth, FixedPoint2.New(1000));
solutionOne.AddSolution(solutionTwo, null);
- Assert.That(solutionOne.GetTotalPrototypeQuantity("water").Int(), Is.EqualTo(1500));
- Assert.That(solutionOne.GetTotalPrototypeQuantity("fire").Int(), Is.EqualTo(2000));
- Assert.That(solutionOne.GetTotalPrototypeQuantity("earth").Int(), Is.EqualTo(1000));
+ Assert.That(solutionOne.GetTotalPrototypeQuantity(Water).Int(), Is.EqualTo(1500));
+ Assert.That(solutionOne.GetTotalPrototypeQuantity(Fire).Int(), Is.EqualTo(2000));
+ Assert.That(solutionOne.GetTotalPrototypeQuantity(Earth).Int(), Is.EqualTo(1000));
Assert.That(solutionOne.Volume.Int(), Is.EqualTo(4500));
}
{
const float initialTemp = 100.0f;
- var solution = new Solution("water", FixedPoint2.New(100)) { Temperature = initialTemp };
+ var solution = new Solution(Water, FixedPoint2.New(100)) { Temperature = initialTemp };
- solution.AddReagent("water", FixedPoint2.New(100));
+ solution.AddReagent(Water, FixedPoint2.New(100));
Assert.That(solution.Temperature, Is.EqualTo(initialTemp));
- solution.AddReagent("earth", FixedPoint2.New(100));
+ solution.AddReagent(Earth, FixedPoint2.New(100));
Assert.That(solution.Temperature, Is.EqualTo(initialTemp));
}
const float initialTemp = 100.0f;
var solutionOne = new Solution();
- solutionOne.AddReagent("water", FixedPoint2.New(100));
+ solutionOne.AddReagent(Water, FixedPoint2.New(100));
solutionOne.Temperature = initialTemp;
var solutionTwo = new Solution();
- solutionTwo.AddReagent("water", FixedPoint2.New(100));
- solutionTwo.AddReagent("earth", FixedPoint2.New(100));
+ solutionTwo.AddReagent(Water, FixedPoint2.New(100));
+ solutionTwo.AddReagent(Earth, FixedPoint2.New(100));
solutionTwo.Temperature = initialTemp;
solutionOne.AddSolution(solutionTwo, null);
{
const float initialTemp = 100.0f;
- var solution = new Solution("water", FixedPoint2.New(100)) { Temperature = initialTemp };
- solution.RemoveReagent("water", FixedPoint2.New(50));
+ var solution = new Solution(Water, FixedPoint2.New(100)) { Temperature = initialTemp };
+ solution.RemoveReagent(Water, FixedPoint2.New(50));
Assert.That(solution.Temperature, Is.EqualTo(initialTemp));
}
{
const float initialTemp = 100.0f;
- var solution = new Solution("water", FixedPoint2.New(100)) { Temperature = initialTemp };
+ var solution = new Solution(Water, FixedPoint2.New(100)) { Temperature = initialTemp };
solution.RemoveSolution(FixedPoint2.New(50));
Assert.That(solution.Temperature, Is.EqualTo(initialTemp));
}
{
const float initialTemp = 100.0f;
- var solution = new Solution("water", FixedPoint2.New(100)) { Temperature = initialTemp };
+ var solution = new Solution(Water, FixedPoint2.New(100)) { Temperature = initialTemp };
solution.SplitSolution(FixedPoint2.New(50));
Assert.That(solution.Temperature, Is.EqualTo(initialTemp));
}