Esempio n. 1
0
        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("]"));
        }
Esempio n. 2
0
        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]);
        }
Esempio n. 3
0
        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));
            }
        }
Esempio n. 4
0
        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")));
            }
        }
Esempio n. 5
0
        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));
            }
        }
Esempio n. 6
0
        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);
        }