public void ChannelDataReader_can_Read_ChannelSet_Data() { var reader = new ChannelDataReader(ChannelSetData); var json = new StringBuilder("["); int count = 0; Assert.AreEqual(2, reader.Depth); Assert.AreEqual(5, reader.FieldCount); Assert.AreEqual(5, reader.RecordsAffected); json.AppendLine(); while (reader.Read()) { Console.WriteLine("Row {0}: {1}, {2}, {3}, {4}, {5}", count++, reader.GetDouble(0), reader.GetDateTimeOffset(1), reader.GetString(2), reader.GetDouble(3), reader.GetDouble(4)); json.AppendLine(reader.GetJson()); } Assert.IsNull(reader.GetJson()); // original Console.WriteLine(); Console.WriteLine(ChannelSetData); // serialized Console.WriteLine(); Console.WriteLine(json.Append("]")); }
public void ChannelDataReader_Can_Slice_With_Request_Has_Empty_Channels() { // Create a Reader var reader = new ChannelDataReader(HasEmptyChannels, "CH1,CH2,CH3,CH4,CH5,CH6,CH7,CH8,CH9".Split(','), "ft1,ft2,ft3,ft4,ft5,ft6,ft7,ft8,ft9".Split(','), "double,double,double,double,double,double,double,double, double".Split(','), ",,,,,,,,".Split(','), "eml://witsml14/well(Energistics-well-0001)/wellbore(Energistics-w1-wellbore-0001)/log(Energistics-w1-wb1-log-0002)", "06e4dff8-3de4-4057-a21b-92026e89a6d4") .WithIndex("MD", "ft", true, false); Assert.IsTrue(reader.Read()); Dictionary <int, string> requestedMnemonics = new Dictionary <int, string>() { { 0, "MD" }, { 1, "CH1" }, { 2, "CH2" }, { 5, "CH5" }, { 6, "CH6" }, { 7, "CH7" }, { 9, "CH9" } }; Dictionary <int, string> requestedUnits = new Dictionary <int, string>() { { 0, "ft" }, { 1, "ft1" }, { 2, "ft2" }, { 5, "ft5" }, { 6, "ft6" }, { 7, "ft7" }, { 9, "ft9" } }; Dictionary <int, string> requestedDataTypes = new Dictionary <int, string>() { { 0, "double" }, { 1, "double" }, { 2, "double" }, { 5, "double" }, { 6, "double" }, { 7, "double" }, { 9, "double" } }; Dictionary <int, string> requestedNullValues = new Dictionary <int, string>() { { 0, string.Empty }, { 1, string.Empty }, { 2, string.Empty }, { 5, string.Empty }, { 6, string.Empty }, { 7, string.Empty }, { 9, string.Empty } }; reader.Slice(requestedMnemonics, requestedUnits, requestedDataTypes, requestedNullValues); // Test Mnemonic Slices var mnemonics = reader.AllMnemonics; var requestedMnemonicValues = requestedMnemonics.Values.ToArray(); Assert.AreEqual(3, mnemonics.Count()); Assert.AreEqual(mnemonics.Count(), requestedMnemonicValues.Count()); for (var i = 0; i < mnemonics.Count; i++) { Assert.AreEqual(requestedMnemonicValues[i], mnemonics[i]); } // Test Unit Slices var units = reader.AllUnits; Assert.AreEqual(3, units.Count()); Assert.AreEqual(requestedMnemonics.Keys.Count, units.Count); Assert.AreEqual("ft", units[0]); Assert.AreEqual("ft2", units[1]); Assert.AreEqual("ft6", units[2]); var values = new object[9]; var valueCount = reader.GetValues(values); Assert.AreEqual(3, valueCount); Assert.AreEqual((long)10, values[0]); Assert.AreEqual((long)11, values[1]); Assert.AreEqual((long)13, values[2]); }
public void ChannelDataReader_Can_Set_Data_Value() { var reader = new ChannelDataReader(UpdateLogData1, new[] { "MD", "ROP", "GR", "HKLD" }) .WithIndex("MD", "m", true, false); Assert.AreEqual(1, reader.Depth); Assert.AreEqual(4, reader.FieldCount); Assert.AreEqual(9, reader.RecordsAffected); if (reader.Read()) { reader.SetValue(1, 1000.0); Assert.AreEqual(1000.0, reader.GetDouble(1)); } }
public void ChannelDataReader_Can_Read_Depth_Log_Data() { var reader = new ChannelDataReader(DepthLogData1, new[] { "MD", "ROP", "GR", "HKLD" }); int count = 0; Assert.AreEqual(1, reader.Depth); Assert.AreEqual(4, reader.FieldCount); Assert.AreEqual(5, reader.RecordsAffected); while (reader.Read()) { Console.WriteLine("Row {0}: {1}, {2}, {3}, {4}", count++, reader.GetDouble(0), reader.GetDouble(1), reader.GetDouble(2), reader.GetDouble(reader.GetOrdinal("HKLD"))); } }
public void ChannelDataReader_Can_Read_Time_Log_Data() { var reader = new ChannelDataReader(TimeLogData); int count = 0; Assert.AreEqual(1, reader.Depth); Assert.AreEqual(4, reader.FieldCount); Assert.AreEqual(5, reader.RecordsAffected); while (reader.Read()) { Console.WriteLine("Row {0}: {1}, {2}, {3}, {4}", count++, reader.GetDateTimeOffset(0), reader.GetDouble(1), reader.GetDouble(2), reader.GetDouble(3)); } }
public void ChannelDataReader_Can_Slice() { var data = "[" + "[[1],[1,1,1,1,1]]," + "[[2],[2,2,2,2,2]]," + "[[3],[3,3,3,3,3]]," + "[[4],[4,4,4,4,4]]," + "[[5],[5,5,5,5,5]]," + "[[6],[6,6,6,6,6]]," + "[[7],[7,7,7,7,7]]" + "]"; // Create a Reader var reader = new ChannelDataReader(data, "CH1,CH2,CH3,CH4,CH5".Split(','), "ft1,ft2,ft3,ft4,ft5".Split(','), "double,double,double,double,double".Split(','), ",,,,".Split(','), "eml://witsml14/well(Energistics-well-0001)/wellbore(Energistics-w1-wellbore-0001)/log(Energistics-w1-wb1-log-0002)", "06e4dff8-3de4-4057-a21b-92026e89a6d4") .WithIndex("MD", "ft", true, false); Assert.IsTrue(reader.Read()); // Slice the Reader //var slices = new string[] { "MD", "CH2", "CH5" }; Dictionary <int, string> requestedMnemonics = new Dictionary <int, string>() { { 0, "MD" }, { 2, "CH2" }, { 5, "CH5" } }; Dictionary <int, string> requestedUnits = new Dictionary <int, string>() { { 0, "ft" }, { 2, "ft2" }, { 5, "ft5" } }; Dictionary <int, string> requestedDataTypes = new Dictionary <int, string>() { { 0, "double" }, { 2, "double" }, { 5, "double" } }; Dictionary <int, string> requestedNullValues = new Dictionary <int, string>() { { 0, string.Empty }, { 2, string.Empty }, { 5, string.Empty } }; reader.Slice(requestedMnemonics, requestedUnits, requestedDataTypes, requestedNullValues); // Test Mnemonic Slices var mnemonics = reader.AllMnemonics; var requestedMnemonicValues = requestedMnemonics.Values.ToArray(); for (var i = 0; i < mnemonics.Count; i++) { Assert.AreEqual(requestedMnemonicValues[i], mnemonics[i]); } // Test Unit Slices var units = reader.AllUnits; Assert.AreEqual(requestedMnemonics.Keys.Count, units.Count); Assert.AreEqual(units[0], "ft"); Assert.AreEqual(units[1], "ft2"); Assert.AreEqual(units[2], "ft5"); var values = new object[6]; var valueCount = reader.GetValues(values); Assert.AreEqual(requestedMnemonics.Keys.Count, valueCount); }