Ejemplo n.º 1
0
        public void CanExtractReferenceValues()
        {
            var line      = "70.1 45.6 7".AsSpan();
            var parser    = new SpanSensorLogParser(Mock.Of <ISensorFactory>());
            var refValues = parser.ExtractReferenceValues(line);

            Assert.That(refValues.Count, Is.EqualTo(3));
        }
Ejemplo n.º 2
0
        public void CanParse()
        {
            var calculator = new MathNetCalculator();
            var factory    = new SensorFactory(calculator);

            factory.RegisterSensor("thermometer", (n, refs, calc) => new ThermometerSensor(n, refs["temperature"], calc));
            factory.RegisterSensor("humidity", (n, refs, calc) => new HumiditySensor(n, (decimal)refs["humidity"]));
            factory.RegisterSensor("monoxide", (n, refs, calc) => new MonoxideSensor(n, (int)refs["ppm"]));

            var parser  = new SpanSensorLogParser(factory);
            var content = GetInputData();

            var sensors = parser.Parse(content)?.ToDictionary(k => k.Name, v => v.GetStatus());

            Console.WriteLine(JsonSerializer.Serialize(sensors, new JsonSerializerOptions {
                WriteIndented = true
            }));
        }