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));
        }