public void SimpleRoundTripTest() { TouchstoneOptions options = new TouchstoneOptions { Format = FormatType.DecibelAngle, FrequencyUnit = FrequencyUnit.GHz, Parameter = ParameterType.Scattering, Resistance = 50 }; string filePath = Path.GetTempFileName(); var ts = new Touchstone(2, options); int gain_dB = 0; for (double f = 1e9; f <= 2e9; f += 0.1e9) { var gain = NetworkParameter.FromPolarDecibelDegree(gain_dB, 0); ts.NetworkParameters[f, 2, 1] = gain; } ts.Write(filePath); var result = Touchstone.ReadAllData(filePath); result.Count.Should().Be(ts.NetworkParameters.Count); foreach (var freq in result.Frequencies) { ts.NetworkParameters[freq, 2, 1].Should().Be(result[freq, 2, 1]); } }
private TouchstoneReader(TextReader reader, TouchstoneReaderSettings settings) { this.settings = settings ?? new TouchstoneReaderSettings(); this.reader = reader; Options = new TouchstoneOptions(); Keywords = new TouchstoneKeywords(); coreReader = TouchstoneReaderCore.Create(this); }
private static string FormatOptions(TouchstoneOptions options) { StringBuilder sb = new StringBuilder(); sb.Append(OptionChar); string frequencyUnit = TouchstoneEnumMap <FrequencyUnit> .ToTouchstoneValue(options.FrequencyUnit); string parameter = TouchstoneEnumMap <ParameterType> .ToTouchstoneValue(options.Parameter); string format = TouchstoneEnumMap <FormatType> .ToTouchstoneValue(options.Format); string resistance = $"{ResistanceChar} {options.Resistance:g}"; return(string.Join(" ", OptionChar, frequencyUnit, parameter, format, resistance)); }