Example #1
0
        public void GetVerticalObservations_ParsesOutCorrectValues()
        {
            ParsedData parsedData;

            using (var stream = GetEmbeddedFileStream(DefaultAquaCalcTestFileName))
            {
                parsedData = new AquaCalcCsvParser(stream).Parse();
            }

            var parser       = new ObservationSectionParser(parsedData.ObservationSectionLines);
            var observations = parser.GetVerticalObservations();

            Assert.That(observations.Count, Is.EqualTo(23));

            Assert.That(observations[2].ObservationPoints.Count, Is.EqualTo(2));
            var point = observations[2].ObservationPoints.First();

            Assert.That(point.ObservationNumber, Is.EqualTo(3));
            Assert.That(point.Distance, Is.EqualTo(25.0d));
            Assert.That(point.Depth, Is.EqualTo(3.1d));
            Assert.That(point.IceBottomToWaterSurface, Is.EqualTo(0.0d));
            Assert.That(point.Revolutions, Is.EqualTo(15));
            Assert.That(point.TimeSeconds, Is.EqualTo(20.6d));
            Assert.That(point.CosineVerticalFactor, Is.EqualTo(1.0d));
            Assert.That(point.ObsLocationIndicator, Is.EqualTo("8"));
            Assert.That(point.Coefficient, Is.EqualTo(1.0d));
            Assert.That(point.MeasuredAtTime, Is.EqualTo(new TimeSpan(11, 51, 0)));
            Assert.That(point.Velocity, Is.EqualTo(1.623));
            Assert.That(point.Area, Is.EqualTo(15.5));
            Assert.That(point.FlowQ, Is.EqualTo(24.44));
            Assert.That(point.Flags, Is.EqualTo("5"));
        }
Example #2
0
        public void CanParse_CheckIncomingDataCorrectly(string fileName, bool expectedCanParse)
        {
            var stream = GetEmbeddedFileStream(fileName);
            var parser = new AquaCalcCsvParser(stream);

            Assert.That(parser.CanParse(), Is.EqualTo(expectedCanParse));
        }
        public ParseFileResult ParseFile(Stream fileStream, LocationInfo targetLocation,
                                         IFieldDataResultsAppender appender, ILog logger)
        {
            var parser = new AquaCalcCsvParser(fileStream)
            {
                Settings = appender.GetPluginConfigurations()
            };

            if (!parser.CanParse())
            {
                return(ParseFileResult.CannotParse());
            }

            var parsedData = parser.Parse();

            if (targetLocation == null)
            {
                targetLocation = appender.GetLocationByIdentifier(parsedData.GageId);
            }

            var visitDetails = new VisitMapper(parsedData).GetVisitDetails(targetLocation.UtcOffset);

            logger.Info($"Got visit details: '{visitDetails.StartDate:s}@{targetLocation.LocationIdentifier}'");

            var visitInfo = appender.AddFieldVisit(targetLocation, visitDetails);

            AppendActivity(appender, parsedData, visitInfo, logger);

            return(ParseFileResult.SuccessfullyParsedAndDataValid());
        }