Added HardwareCalibrationReport.cs and Tests. Indent and Split tests
This commit is contained in:
parent
f8b773da1c
commit
d96091e5c6
39
BenchtopParser/HardwareCalibrationReport.cs
Normal file
39
BenchtopParser/HardwareCalibrationReport.cs
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BenchtopParser {
|
||||||
|
public class HardwareCalibrationReport {
|
||||||
|
public Dictionary<int, Transducer> Transducers = new();
|
||||||
|
public int Indent = 45; // Default 26 from seeing files, overridden later in SetIndent for safety
|
||||||
|
|
||||||
|
/// Split the string, and clean up whitespace, returns the Name and Value
|
||||||
|
public string[] SplitLine(string line) {
|
||||||
|
return new[] {
|
||||||
|
line[..Indent].Trim(),
|
||||||
|
line[(Indent)..]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
public void SetIndent(string line) {
|
||||||
|
const int endOfCurrentTransducerKey = 10; // "Transducer".Length calculation
|
||||||
|
|
||||||
|
int leadingSpaces = line.TakeWhile(c => c == ' ').Count();
|
||||||
|
string restOfLine = line[(leadingSpaces + endOfCurrentTransducerKey)..];
|
||||||
|
int additionalSpaces = restOfLine.TakeWhile(c => c == ' ').Count();
|
||||||
|
Indent = leadingSpaces + endOfCurrentTransducerKey + additionalSpaces;
|
||||||
|
string endOfLine = line[Indent..];
|
||||||
|
Console.Write(endOfLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
public HardwareCalibrationReport()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public HardwareCalibrationReport(string fileText)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
64
BenchtopParserTests/HardwareCalibrationReport_Tests.cs
Normal file
64
BenchtopParserTests/HardwareCalibrationReport_Tests.cs
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
namespace BenchtopParserTests {
|
||||||
|
public class HardwareCalibrationReport_Tests {
|
||||||
|
public String HardwareCalibrationReportValue;
|
||||||
|
[SetUp]
|
||||||
|
public void Setup() {
|
||||||
|
HardwareCalibrationReportValue = File.ReadAllText(
|
||||||
|
Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestFiles\Hardware Calibration Report.txt")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Test_HardwareCalibrationReport() {
|
||||||
|
BenchtopParser.HardwareCalibrationReport tv = new(HardwareCalibrationReportValue);
|
||||||
|
Assert.That(tv.Transducers[1].Id, Is.EqualTo(1));
|
||||||
|
Assert.That(tv.Transducers[1].Name, Is.EqualTo("CTS D34-442 115PSIA"));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Test_HardwareCalibrationReport_Throw_InvalidProgram() {
|
||||||
|
Exception ex = Assert.Throws<Exception>(delegate { new BenchtopParser.HardwareCalibrationReport("broken"); });
|
||||||
|
Assert.That(ex.Message, Is.EqualTo("Invalid Transducer Verify Report, please provide a Transducer Verify Report file data"));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Test_HardwareCalibrationReport_SetIndent() {
|
||||||
|
BenchtopParser.HardwareCalibrationReport tv = new();
|
||||||
|
tv.SetIndent(" Transducer Custom");
|
||||||
|
Assert.That(tv.Indent, Is.EqualTo(45));
|
||||||
|
|
||||||
|
tv.SetIndent(" Transducer Custom");
|
||||||
|
Assert.That(tv.Indent, Is.EqualTo(41));
|
||||||
|
|
||||||
|
tv.SetIndent(" TransducerCustom");
|
||||||
|
Assert.That(tv.Indent, Is.EqualTo(12));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Test_HardwareCalibrationReport_SplitLine() {
|
||||||
|
BenchtopParser.HardwareCalibrationReport tv = new();
|
||||||
|
string[] split;
|
||||||
|
|
||||||
|
string context = " Transducer Custom";
|
||||||
|
tv.SetIndent(context);
|
||||||
|
split = tv.SplitLine(context);
|
||||||
|
Assert.That(tv.Indent, Is.EqualTo(45));
|
||||||
|
Assert.That(split[0], Is.EqualTo("Transducer"));
|
||||||
|
Assert.That(split[1], Is.EqualTo("Custom"));
|
||||||
|
|
||||||
|
context = " Transducer Custom";
|
||||||
|
tv.SetIndent(context);
|
||||||
|
split = tv.SplitLine(context);
|
||||||
|
Assert.That(tv.Indent, Is.EqualTo(41));
|
||||||
|
Assert.That(split[0], Is.EqualTo("Transducer"));
|
||||||
|
Assert.That(split[1], Is.EqualTo("Custom"));
|
||||||
|
|
||||||
|
context = " TransducerCustom";
|
||||||
|
tv.SetIndent(context);
|
||||||
|
split = tv.SplitLine(context);
|
||||||
|
Assert.That(tv.Indent, Is.EqualTo(12));
|
||||||
|
Assert.That(split[0], Is.EqualTo("Transducer"));
|
||||||
|
Assert.That(split[1], Is.EqualTo("Custom"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
namespace BenchtopParserTests {
|
namespace BenchtopParserTests {
|
||||||
public class Program_Config_Tests {
|
public class ProgramConfig_Tests {
|
||||||
public String ProgramConfigValue;
|
public String ProgramConfigValue;
|
||||||
|
|
||||||
[SetUp]
|
[SetUp]
|
@ -1,5 +1,5 @@
|
|||||||
namespace BenchtopParserTests {
|
namespace BenchtopParserTests {
|
||||||
public class Transducer_Verify_Tests {
|
public class TransducerVerify_Tests {
|
||||||
public String TransducerVerifyValue;
|
public String TransducerVerifyValue;
|
||||||
[SetUp]
|
[SetUp]
|
||||||
public void Setup() {
|
public void Setup() {
|
Loading…
Reference in New Issue
Block a user