protected override void WriteHeader(CsvWriter writer, CsvSerializerContext serializer, CsvHeaderNamingContext naming) { serializer.WriteHeader <ITimestampedData>(writer, naming); serializer.WriteHeader <EyeData>(writer, naming, "Left"); serializer.WriteHeader <EyeData>(writer, naming, "Right"); }
protected override void WriteHeader(CsvWriter writer, CsvSerializerContext serializer, CsvHeaderNamingContext naming) { writer.WriteField(naming.Get(nameof(SamplesCount.Filter))); writer.WriteField(naming.Get(nameof(SamplesCount.InputSamples))); writer.WriteField(naming.Get(nameof(SamplesCount.OutputSamples))); writer.WriteField(naming.Get(nameof(SamplesCount.Runtime))); }
protected override bool TryRead(CsvReader reader, CsvSerializerContext serializer, CsvHeaderNamingContext naming, ref ValidationPoint result) { // Validation,Point,X,Y,StartTime,EndTime int validation; int point; Point2 position; DateTimeOffset startTime; DateTimeOffset endTime; if ( reader.TryGetField <int>(naming.Get(nameof(ValidationPoint.Validation)), out validation) && reader.TryGetField <int>(naming.Get(nameof(ValidationPoint.Point)), out point) && TryGetMember <Point2>(reader, serializer, naming, out position) && reader.TryGetField <DateTimeOffset>(naming.Get(nameof(ValidationPoint.StartTime)), out startTime) && reader.TryGetField <DateTimeOffset>(naming.Get(nameof(ValidationPoint.EndTime)), out endTime) ) { result = new ValidationPoint(validation, point, position, startTime, endTime); return(true); } return(false); }
protected override bool TryRead(CsvReader reader, CsvSerializerContext serializer, CsvHeaderNamingContext naming, ref EyeSample result) { Point2 gazePoint2D; Point3 gazePoint3D; Point3 eyePosition3D; double pupilDiameter; if ( TryGetMember <Point2>(reader, serializer, naming, nameof(EyeData.GazePoint2D), out gazePoint2D) && TryGetMember <Point3>(reader, serializer, naming, nameof(EyeData.GazePoint3D), out gazePoint3D) && TryGetMember <Point3>(reader, serializer, naming, nameof(EyeData.EyePosition3D), out eyePosition3D) && reader.TryGetField <double>(naming.Get(nameof(EyeData.PupilDiameter)), out pupilDiameter) ) { result = new EyeSample ( gazePoint2D, gazePoint3D, eyePosition3D, pupilDiameter ); return(true); } return(false); }
protected override void Write(GazeData data, CsvWriter writer, CsvSerializerContext serializer) { serializer.Serialize <ITimestampedData>(writer, data); serializer.Serialize <EyeData>(writer, data.LeftEye); serializer.Serialize <EyeData>(writer, data.RightEye); }
protected override bool TryRead(CsvReader reader, CsvSerializerContext serializer, CsvHeaderNamingContext naming, ref EyeMovement result) { ITimestampedData timestampedData; EyeMovementType movementType; double durationMilliseconds; EyeSample averageSample; if ( TryGetMember <ITimestampedData>(reader, serializer, naming, out timestampedData) && reader.TryGetField <EyeMovementType>(naming.Get(nameof(EyeMovement.MovementType)), out movementType) && reader.TryGetField <double>(naming.Get(nameof(EyeMovement.Duration)), out durationMilliseconds) && TryGetMember <EyeSample>(reader, serializer, naming, "Average", out averageSample) ) { long durationTicks = (long)(durationMilliseconds * 1000 * 10); result = new EyeMovement ( movementType, averageSample, timestampedData.Timestamp, timestampedData.Timestamp.AddTicks(durationTicks) ); return(true); } return(false); }
protected override bool TryRead(CsvReader reader, CsvSerializerContext serializer, CsvHeaderNamingContext naming, ref EyeValidationPointResult result) { double?accuracy; double?precisionSD; double?precisionRMS; double validRatio; double?distance; double?pupilDiameter; if ( reader.TryGetField <double?>(naming.Get(nameof(EyeValidationPointResult.Accuracy)), out accuracy) && reader.TryGetField <double?>(naming.Get(nameof(EyeValidationPointResult.PrecisionSD)), out precisionSD) && reader.TryGetField <double?>(naming.Get(nameof(EyeValidationPointResult.PrecisionRMS)), out precisionRMS) && reader.TryGetField <double>(naming.Get(nameof(EyeValidationPointResult.ValidRatio)), out validRatio) && reader.TryGetField <double?>(naming.Get(nameof(EyeValidationPointResult.Distance)), out distance) && reader.TryGetField <double?>(naming.Get(nameof(EyeValidationPointResult.PupilDiameter)), out pupilDiameter) ) { result = new EyeValidationPointResult ( accuracy, precisionSD, precisionRMS, validRatio, distance, pupilDiameter ); return(true); } return(false); }
protected override void Write(SamplesCount data, CsvWriter writer, CsvSerializerContext serializer) { writer.WriteField(data.Filter); writer.WriteField(data.InputSamples); writer.WriteField(data.OutputSamples); writer.WriteField(data.Runtime); }
public void WriteCsv_SingleIntValue_NullRecordOnly_EmptyRecord() { var serializer = new CsvSerializerContext(); var converter = new SingleIntValueCsvConverter(); serializer.Converters.Add(converter); var target = new StringWriter(); var writer = new CsvWriter(target, serializer.Configuration); converter.WriteCsvHeader(writer, typeof(SingleIntValue), serializer, new CsvHeaderNamingContext()); writer.NextRecord(); converter.WriteCsv(null, writer, serializer); writer.NextRecord(); writer.Dispose(); target.Close(); string[] expected = new string[] { "Value", // header "", // empty record "" // empty line after the last record }; Assert.AreEqual(String.Join(Environment.NewLine, expected), target.ToString()); }
public void ReadCsv_CompositeObject_MissingMember_RecordsWithNullValues() { var serializer = new CsvSerializerContext() { ThrowOnFailedDeserialize = false }; var converter = new CompositeObjectCsvConverter(); serializer.Converters.Add(converter); serializer.Converters.Add(new SingleIntValueCsvConverter()); serializer.Converters.Add(new CompositeValueCsvConverter()); string[] csv = new string[] { "Single,Double", // header "15,52.1", // first record ",-15.2", // second record "0,0", // third record ",", // fourth null record "" // empty line after the last record }; List <CompositeObject> result = new List <CompositeObject>(); using (var source = new StringReader(String.Join(Environment.NewLine, csv))) using (var reader = new CsvReader(source, serializer.Configuration)) { var naming = new CsvHeaderNamingContext(); if (reader.Read()) { converter.ReadCsvHeader(reader, serializer); } while (reader.Read()) { result.Add((CompositeObject)converter.ReadCsv(reader, typeof(CompositeObject), serializer, naming)); } } Assert.AreEqual(4, result.Count); Assert.IsNotNull(result[0]); Assert.IsNotNull(result[0].Single); Assert.AreEqual(15, result[0].Single.Value); Assert.IsNull(result[0].Composite); Assert.AreEqual(52.1, result[0].Double); Assert.IsNotNull(result[1]); Assert.IsNull(result[1].Single); Assert.IsNull(result[1].Composite); Assert.AreEqual(-15.2, result[1].Double); Assert.IsNotNull(result[2]); Assert.IsNotNull(result[2].Single); Assert.AreEqual(0, result[2].Single.Value); Assert.IsNull(result[2].Composite); Assert.AreEqual(0, result[2].Double); Assert.IsNull(result[3]); }
public void ReadCsv_SingleIntValue_NullRecords() { var serializer = new CsvSerializerContext(); var converter = new SingleIntValueCsvConverter(); serializer.Converters.Add(converter); string[] csv = new string[] { "Value", // header "", // first record "", // second record "", // third record "" // empty line after the last record }; List <SingleIntValue> result = new List <SingleIntValue>(); using (var source = new StringReader(String.Join(Environment.NewLine, csv))) using (var reader = new CsvReader(source, serializer.Configuration)) { var naming = new CsvHeaderNamingContext(); if (reader.Read()) { converter.ReadCsvHeader(reader, serializer); } while (reader.Read()) { result.Add((SingleIntValue)converter.ReadCsv(reader, typeof(SingleIntValue), serializer, naming)); } } Assert.AreEqual(0, result.Count); }
protected override void WriteHeader(CsvWriter writer, CsvSerializerContext serializer, CsvHeaderNamingContext naming) { serializer.WriteHeader <Point2>(writer, naming, nameof(EyeSample.GazePoint2D)); serializer.WriteHeader <Point3>(writer, naming, nameof(EyeSample.GazePoint3D)); serializer.WriteHeader <Point3>(writer, naming, nameof(EyeSample.EyePosition3D)); writer.WriteField(naming.Get(nameof(EyeSample.PupilDiameter))); }
protected override void Write(EyeSample data, CsvWriter writer, CsvSerializerContext serializer) { serializer.Serialize(writer, data.GazePoint2D); serializer.Serialize(writer, data.GazePoint3D); serializer.Serialize(writer, data.EyePosition3D); writer.WriteField(data.PupilDiameter); }
protected override void WriteHeader(CsvWriter writer, CsvSerializerContext serializer, CsvHeaderNamingContext naming) { serializer.WriteHeader <ITimestampedData>(writer, naming); writer.WriteField(naming.Get(nameof(EyeMovement.MovementType))); writer.WriteField(naming.Get(nameof(EyeMovement.Duration))); serializer.WriteHeader <EyeSample>(writer, naming, "Average"); }
protected override void Write(EyeMovement data, CsvWriter writer, CsvSerializerContext serializer) { serializer.Serialize <ITimestampedData>(writer, data); writer.WriteField(data.MovementType); writer.WriteField(data.Duration.TotalMilliseconds); serializer.Serialize <EyeSample>(writer, data.AverageSample); }
protected override void WriteHeader(CsvWriter writer, CsvSerializerContext serializer, CsvHeaderNamingContext naming) { writer.WriteField(naming.Get(nameof(EyeValidationPointResult.Accuracy))); writer.WriteField(naming.Get(nameof(EyeValidationPointResult.PrecisionSD))); writer.WriteField(naming.Get(nameof(EyeValidationPointResult.PrecisionRMS))); writer.WriteField(naming.Get(nameof(EyeValidationPointResult.ValidRatio))); writer.WriteField(naming.Get(nameof(EyeValidationPointResult.Distance))); writer.WriteField(naming.Get(nameof(EyeValidationPointResult.PupilDiameter))); }
protected override void WriteHeader(CsvWriter writer, CsvSerializerContext serializer, CsvHeaderNamingContext naming) { writer.WriteField(naming.Get(nameof(TimestampsDiff.Count))); writer.WriteField(naming.Get(nameof(TimestampsDiff.Duration))); writer.WriteField(naming.Get(nameof(TimestampsDiff.NewDuration))); writer.WriteField(naming.Get(nameof(TimestampsDiff.StartOffset))); writer.WriteField(naming.Get(nameof(TimestampsDiff.EndOffset))); writer.WriteField(naming.Get(nameof(TimestampsDiff.DurationChange))); }
protected override void Write(TimestampsDiff data, CsvWriter writer, CsvSerializerContext serializer) { writer.WriteField(data.Count); writer.WriteField(data.Duration); writer.WriteField(data.NewDuration); writer.WriteField(data.StartOffset); writer.WriteField(data.EndOffset); writer.WriteField(data.DurationChange); }
protected override void Write(ValidationPoint data, CsvWriter writer, CsvSerializerContext serializer) { writer.WriteField(data.Validation); writer.WriteField(data.Point); serializer.Serialize(writer, data.Point); writer.WriteField(data.StartTime); writer.WriteField(data.EndTime); }
protected override void WriteHeader(CsvWriter writer, CsvSerializerContext serializer, CsvHeaderNamingContext naming) { writer.WriteField(naming.Get(nameof(ValidationPoint.Validation))); writer.WriteField(naming.Get(nameof(ValidationPoint.Point))); serializer.WriteHeader <Point2>(writer, naming); writer.WriteField(naming.Get(nameof(ValidationPoint.StartTime))); writer.WriteField(naming.Get(nameof(ValidationPoint.EndTime))); }
protected override void WriteHeader(CsvWriter writer, CsvSerializerContext serializer, CsvHeaderNamingContext naming) { writer.WriteField(naming.Get(nameof(ValidationPoint.Validation))); writer.WriteField(naming.Get(nameof(ValidationPoint.Point))); serializer.WriteHeader <Point2>(writer, naming); serializer.WriteHeader <EyeValidationPointResult>(writer, naming, nameof(ValidationPointResult.LeftEye)); serializer.WriteHeader <EyeValidationPointResult>(writer, naming, nameof(ValidationPointResult.RightEye)); }
protected override bool TryRead(CsvReader reader, CsvSerializerContext serializer, CsvHeaderNamingContext naming, ref ITimestampedData result) { DateTimeOffset timestamp; if (reader.TryGetField <DateTimeOffset>(naming.Get(_timestampFieldName), out timestamp)) { result = new TimestampedData(timestamp); return(true); } return(false); }
protected override void WriteHeader(CsvWriter writer, CsvSerializerContext serializer, CsvHeaderNamingContext naming) { // Validation,Point,X,Y,<GazeData> writer.WriteField(naming.Get(nameof(ValidationPoint.Validation))); writer.WriteField(naming.Get(nameof(ValidationPoint.Point))); serializer.WriteHeader <Point2>(writer, naming); writer.WriteField(naming.Get("RelativeTimestamp")); serializer.WriteHeader <GazeData>(writer, naming); }
public void ReadCsv_ClassWithNullableCompositeStruct_ObjectsWithNullValues() { var serializer = new CsvSerializerContext() { ThrowOnFailedDeserialize = false }; var converter = new SingleNullableStructValueCsvConverter(); serializer.Converters.Add(converter); serializer.Converters.Add(new CompositeStructCsvConverter()); string[] csv = new string[] { "ValueId,ValueDuration", // header "1,15.24", // first record ",", // second empty record "2,-99.24", // third record "" // empty line after the last record }; List <SingleNullableStructValue> result = new List <SingleNullableStructValue>(); using (var source = new StringReader(String.Join(Environment.NewLine, csv))) using (var reader = new CsvReader(source, serializer.Configuration)) { var naming = new CsvHeaderNamingContext(); if (reader.Read()) { converter.ReadCsvHeader(reader, serializer); } while (reader.Read()) { result.Add((SingleNullableStructValue)converter.ReadCsv(reader, typeof(SingleNullableStructValue), serializer, naming)); } } Assert.AreEqual(3, result.Count); Assert.IsNotNull(result[0]); Assert.IsTrue(result[0].Value.HasValue); Assert.AreEqual(1, result[0].Value.Value.Id); Assert.AreEqual(15.24, result[0].Value.Value.Duration); Assert.IsNotNull(result[1]); Assert.IsFalse(result[1].Value.HasValue); Assert.IsNotNull(result[2]); Assert.IsTrue(result[2].Value.HasValue); Assert.AreEqual(2, result[2].Value.Value.Id); Assert.AreEqual(-99.24, result[2].Value.Value.Duration); }
public void WriteCsv_ClassWithNullableCompositeStruct_RecordsWithNullValues() { var serializer = new CsvSerializerContext(); var converter = new SingleNullableStructValueCsvConverter(); serializer.Converters.Add(converter); serializer.Converters.Add(new CompositeStructCsvConverter()); var target = new StringWriter(); var writer = new CsvWriter(target, serializer.Configuration); converter.WriteCsvHeader(writer, typeof(SingleNullableStructValue), serializer, new CsvHeaderNamingContext()); writer.NextRecord(); converter.WriteCsv(new SingleNullableStructValue() { Value = new CompositeStruct() { Id = 1, Duration = 15.24 } }, writer, serializer); writer.NextRecord(); converter.WriteCsv(new SingleNullableStructValue() { Value = null }, writer, serializer); writer.NextRecord(); converter.WriteCsv(new SingleNullableStructValue() { Value = new CompositeStruct() { Id = 2, Duration = -99.24 } }, writer, serializer); writer.NextRecord(); writer.Dispose(); target.Close(); string[] expected = new string[] { "ValueId,ValueDuration", // header "1,15.24", // first record ",", // second empty record "2,-99.24", // third record "" // empty line after the last record }; Assert.AreEqual(String.Join(Environment.NewLine, expected), target.ToString()); }
protected override bool TryRead(CsvReader reader, CsvSerializerContext serializer, CsvHeaderNamingContext naming, ref SingleIntValue result) { int value; if (reader.TryGetField <int>(naming.GetDefault(nameof(SingleIntValue.Value)), out value)) { result = new SingleIntValue() { Value = value }; return(true); } return(false); }
protected override bool TryRead(CsvReader reader, CsvSerializerContext serializer, CsvHeaderNamingContext naming, ref SingleStringValue result) { string value; if (reader.TryGetField <string>(naming.GetDefault("Value"), out value)) { result = new SingleStringValue() { Value = value }; return(true); } return(false); }
protected override bool TryRead(CsvReader reader, CsvSerializerContext serializer, CsvHeaderNamingContext naming, ref SingleEyeGazeData result) { ITimestampedData timestampedData; EyeData eyeGazeData; if ( TryGetMember <ITimestampedData>(reader, serializer, naming, out timestampedData) && TryGetMember <EyeData>(reader, serializer, naming, out eyeGazeData) ) { result = new SingleEyeGazeData(eyeGazeData, timestampedData.Timestamp); return(true); } return(false); }
protected override bool TryRead(CsvReader reader, CsvSerializerContext serializer, CsvHeaderNamingContext naming, ref Point2 result) { double x; double y; if ( reader.TryGetField <double>(naming.Get(nameof(Point2.X)), out x) && reader.TryGetField <double>(naming.Get(nameof(Point2.Y)), out y) ) { result = new Point2(x, y); return(true); } return(false); }
protected override bool TryRead(CsvReader reader, CsvSerializerContext serializer, CsvHeaderNamingContext naming, ref EyeVelocity result) { double velocity; SingleEyeGazeData eye; if ( reader.TryGetField <double>(naming.Get(nameof(EyeVelocity.Velocity)), out velocity) && TryGetMember <SingleEyeGazeData>(reader, serializer, naming, out eye) ) { result = new EyeVelocity(velocity, eye); return(true); } return(false); }