Files
tbf/TBFTests/Uncertainty/Calculation/BatchProcessTableTest.cs
T
michal 1e1f8bf8e6 Refactor uncertainty calculations and update UI functionality
Streamline uncertainty handling by modifying data structures and methods, replacing `SerNo` with a generic `val` array. Introduce `PreviousResultsDlgUncertainty` for expanded result management, and incorporate Excel template handling for uncertainty calculations. Ensure backward compatibility while refining code for clarity and efficiency.
2025-04-17 12:17:01 +02:00

117 lines
6.7 KiB
C#

using System.Collections.Generic;
using JetBrains.Annotations;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Results.Uncertainty;
using Results.Uncertainty.Calculation;
namespace TBFTests.Uncertainty.Calculation
{
[TestClass]
[TestSubject(typeof(BatchProcessTable))]
public class BatchProcessTableTest
{
[TestMethod]
public void ModifyKbuoyancyTest()
{
BatchProcessTable batchTable = new BatchProcessTable();
batchTable.ProcessTable = new Dictionary<int, ProcessDataLine>();
ProcessDataLine processDataLine = new ProcessDataLine();
processDataLine.InitDefault();
batchTable.ProcessTable.Add(1, processDataLine);
processDataLine = new ProcessDataLine();
processDataLine.InitDefault();
batchTable.ProcessTable.Add(2, processDataLine);
processDataLine = new ProcessDataLine();
processDataLine.InitDefault();
batchTable.ProcessTable.Add(3, processDataLine);
processDataLine = new ProcessDataLine();
processDataLine.InitDefault();
batchTable.ProcessTable.Add(4, processDataLine);
List<ColumnValue> correctedBuoyancy = new List<ColumnValue>();
double correctedK = processDataLine.Kbuoyancy + 0.001;
for (int i = 0; i < batchTable.ProcessTable.Count; i++)
{
correctedBuoyancy.Add(new ColumnValue(i, correctedK ));
}
Dictionary<int, IList<ColumnValue>> modifiedKbuoyancy = batchTable.ModifyKbuoyancy(correctedBuoyancy);
Assert.IsTrue(modifiedKbuoyancy.ContainsKey(CommonExcell.ColumnToNumber("BC")));
Assert.IsTrue(modifiedKbuoyancy.ContainsKey(CommonExcell.ColumnToNumber("BI")));
Assert.IsTrue(modifiedKbuoyancy.ContainsKey(CommonExcell.ColumnToNumber("BJ")));
Assert.IsTrue(modifiedKbuoyancy.ContainsKey(CommonExcell.ColumnToNumber("BM")));
Assert.AreEqual(correctedK, modifiedKbuoyancy[CommonExcell.ColumnToNumber("BC")][0].Value);
Assert.AreEqual(correctedK, modifiedKbuoyancy[CommonExcell.ColumnToNumber("BC")][1].Value);
Assert.AreEqual(correctedK, modifiedKbuoyancy[CommonExcell.ColumnToNumber("BC")][2].Value);
Assert.AreEqual(correctedK, modifiedKbuoyancy[CommonExcell.ColumnToNumber("BC")][3].Value);
Assert.AreNotEqual(processDataLine.Qctv, modifiedKbuoyancy[CommonExcell.ColumnToNumber("BI")][2].Value);
Assert.IsTrue(CommonExcell.AreClose(processDataLine.VolRI, modifiedKbuoyancy[CommonExcell.ColumnToNumber("BJ")][0].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.VolRI, modifiedKbuoyancy[CommonExcell.ColumnToNumber("BJ")][1].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.VolRI, modifiedKbuoyancy[CommonExcell.ColumnToNumber("BJ")][2].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.VolRI, modifiedKbuoyancy[CommonExcell.ColumnToNumber("BJ")][3].Value));
Assert.AreNotEqual(processDataLine.ERelRef, modifiedKbuoyancy[CommonExcell.ColumnToNumber("BM")][3].Value);
}
[TestMethod]
public void GetKBuoyancyTest()
{
BatchProcessTable batchTable = new BatchProcessTable();
batchTable.ProcessTable = new Dictionary<int, ProcessDataLine>();
ProcessDataLine processDataLine = new ProcessDataLine();
processDataLine.InitDefault();
batchTable.ProcessTable.Add(1, processDataLine);
processDataLine = new ProcessDataLine();
processDataLine.InitDefault();
batchTable.ProcessTable.Add(2, processDataLine);
processDataLine = new ProcessDataLine();
processDataLine.InitDefault();
batchTable.ProcessTable.Add(3, processDataLine);
processDataLine = new ProcessDataLine();
processDataLine.InitDefault();
batchTable.ProcessTable.Add(4, processDataLine);
Dictionary<int, IList<ColumnValue>> tableKbuoyancy = batchTable.GetKBuoyancy();
Assert.IsTrue(tableKbuoyancy.ContainsKey(CommonExcell.ColumnToNumber("BC")));
Assert.IsTrue(tableKbuoyancy.ContainsKey(CommonExcell.ColumnToNumber("BI")));
Assert.IsTrue(tableKbuoyancy.ContainsKey(CommonExcell.ColumnToNumber("BJ")));
Assert.IsTrue(tableKbuoyancy.ContainsKey(CommonExcell.ColumnToNumber("BM")));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.Kbuoyancy, tableKbuoyancy[CommonExcell.ColumnToNumber("BC")][0].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.Kbuoyancy, tableKbuoyancy[CommonExcell.ColumnToNumber("BC")][1].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.Kbuoyancy, tableKbuoyancy[CommonExcell.ColumnToNumber("BC")][2].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.Kbuoyancy, tableKbuoyancy[CommonExcell.ColumnToNumber("BC")][3].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.Qctv, tableKbuoyancy[CommonExcell.ColumnToNumber("BI")][0].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.Qctv, tableKbuoyancy[CommonExcell.ColumnToNumber("BI")][1].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.Qctv, tableKbuoyancy[CommonExcell.ColumnToNumber("BI")][2].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.Qctv, tableKbuoyancy[CommonExcell.ColumnToNumber("BI")][3].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.VolRI, tableKbuoyancy[CommonExcell.ColumnToNumber("BJ")][0].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.VolRI, tableKbuoyancy[CommonExcell.ColumnToNumber("BJ")][1].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.VolRI, tableKbuoyancy[CommonExcell.ColumnToNumber("BJ")][2].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.VolRI, tableKbuoyancy[CommonExcell.ColumnToNumber("BJ")][3].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.ERelRef, tableKbuoyancy[CommonExcell.ColumnToNumber("BM")][0].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.ERelRef, tableKbuoyancy[CommonExcell.ColumnToNumber("BM")][1].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.ERelRef, tableKbuoyancy[CommonExcell.ColumnToNumber("BM")][2].Value));
Assert.IsTrue(CommonExcell.AreClose(processDataLine.ERelRef, tableKbuoyancy[CommonExcell.ColumnToNumber("BM")][3].Value));
}
}
}