public void AddTest() { using (FileBackedDictionary <int, int> dictionary = new FileBackedDictionary <int, int>()) { dictionary.Add(0, 0); Assert.IsTrue(dictionary.ContainsKey(0)); Assert.AreEqual(dictionary.Count, 1); } }
public void AddTest() { using (FileBackedDictionary<int, int> dictionary = new FileBackedDictionary<int, int>()) { dictionary.Add(0, 0); Assert.IsTrue(dictionary.ContainsKey(0)); Assert.AreEqual(dictionary.Count, 1); } }
public void TryGetValueTest() { using (FileBackedDictionary <int, int> dictionary = new FileBackedDictionary <int, int>()) { dictionary.Add(0, 0); Assert.IsTrue(dictionary.TryGetValue(0, out int value)); Assert.AreEqual(value, 0); } }
public void TryGetValueTest() { int value; using (FileBackedDictionary<int, int> dictionary = new FileBackedDictionary<int, int>()) { dictionary.Add(0, 0); Assert.IsTrue(dictionary.TryGetValue(0, out value)); Assert.AreEqual(value, 0); } }
public void ClearTest() { using (FileBackedDictionary<int, int> dictionary = new FileBackedDictionary<int, int>()) { for (int i = 0; i < 100; i++) dictionary.Add(i, i); Assert.AreEqual(dictionary.Count, 100); dictionary.Clear(); Assert.AreEqual(dictionary.Count, 0); } }
public void ClearTest() { using (FileBackedDictionary <int, int> dictionary = new FileBackedDictionary <int, int>()) { for (int i = 0; i < 100; i++) { dictionary.Add(i, i); } Assert.AreEqual(dictionary.Count, 100); dictionary.Clear(); Assert.AreEqual(dictionary.Count, 0); } }
public void CompactTest() { using (FileBackedDictionary <int, int> dictionary = new FileBackedDictionary <int, int>()) { for (int i = 0; i < 10000; i += 4) { dictionary.Add(i, 4); if (i % 400 == 0) { dictionary[i] = 400; } else if (i % 100 == 0) { dictionary.Remove(i); } } dictionary.Compact(); for (int i = 0; i < 10000; i++) { if (i % 400 == 0) { Assert.AreEqual(dictionary[i], 400); } else if (i % 100 == 0) { Assert.IsFalse(dictionary.ContainsKey(i), i.ToString()); } else if (i % 4 == 0) { Assert.AreEqual(dictionary[i], 4); } else { Assert.IsFalse(dictionary.ContainsKey(i), i.ToString()); } } } }
public void CopyToTest() { KeyValuePair <int, int>[] array; using (FileBackedDictionary <int, int> dictionary = new FileBackedDictionary <int, int>()) { for (int i = 1; i <= 100; i++) { dictionary.Add(i, i); } Assert.AreEqual(dictionary.Count, 100); array = new KeyValuePair <int, int> [dictionary.Count]; dictionary.CopyTo(array, 0); foreach (KeyValuePair <int, int> kvp in array) { Assert.IsTrue(dictionary.Contains(kvp), kvp.Key.ToString()); Assert.AreEqual(dictionary[kvp.Key], kvp.Value); } } }
// Run Query in Haoop private void m_timer_Elapsed(object sender, ElapsedEventArgs e) { List <IMeasurement> measurements = new List <IMeasurement>(); OnStatusMessage(MessageLevel.Info, "Connecting to Hadoop DB for update"); if (Monitor.TryEnter(m_timer)) { try { bool addTicks = !string.IsNullOrEmpty(SubSecondField); //Connect to DataBase using (OdbcConnection connection = new OdbcConnection(HadoopConnectionString)) { m_currNum = 0; int nPoints = 0; foreach (Guid guid in m_queryParameter.Keys) { Ticks newerThan; m_currNum++; nPoints = 0; lock (s_TimeStampUpdateLock) { using (FileBackedDictionary <Guid, Ticks> dictionary = new FileBackedDictionary <Guid, Ticks>(TimeStampUpdatefile)) { if (!dictionary.TryGetValue(guid, out newerThan)) { newerThan = m_oldestTimestamp; } } } object[] param = { newerThan.ToString("yyyy-MM-dd hh:mm:ss") }; param = param.Concat(m_queryParameter[guid]).ToArray(); DataTable table = connection.RetrieveData(string.Format(m_query, param)); foreach (DataRow row in table.Rows) { Measurement measurement = new Measurement { Metadata = MeasurementKey.LookUpOrCreate(guid, "").Metadata }; measurement.Value = row.AsDouble(0) ?? double.NaN; measurement.Timestamp = DateTime.Parse(row.AsString(1)); // This is only down to Seconds accuracy so we do make sure we are only keeping the seconds here measurement.Timestamp = measurement.Timestamp - measurement.Timestamp.DistanceBeyondSecond(); if (addTicks) { measurement.Timestamp = measurement.Timestamp + row.AsInt64(2) ?? 0; } if (measurement.Timestamp <= newerThan) { continue; } measurements.Add(measurement); nPoints++; if (measurement.Timestamp > newerThan) { newerThan = measurement.Timestamp; } } lock (s_TimeStampUpdateLock) { using (FileBackedDictionary <Guid, Ticks> dictionary = new FileBackedDictionary <Guid, Ticks>(TimeStampUpdatefile)) { if (dictionary.Keys.Contains(guid)) { dictionary[guid] = newerThan; } else { dictionary.Add(guid, newerThan); } } } m_lastConnected = DateTime.UtcNow; if (m_currNum % 20 == 0) { OnStatusMessage(MessageLevel.Info, $"Got Measurements for {m_currNum} out of {m_nTags} Tags"); OnStatusMessage(MessageLevel.Info, $"Obtained {nPoints} Points For Tag {guid} up to {newerThan:dd/MM/yyyy hh:mm:ss}"); } } } } catch (InvalidOperationException ex) { // Pooled timer thread executed after last read, verify timer has stopped m_timer.Enabled = false; OnProcessException(MessageLevel.Warning, ex); } catch (Exception ex) { OnProcessException(MessageLevel.Error, ex); } finally { Monitor.Exit(m_timer); } } // Publish all measurements for this time interval m_num = measurements.Count; OnStatusMessage(MessageLevel.Info, $"Disconnected from Hadoop with a total of {m_num} Points"); if (measurements.Count > 0) { OnNewMeasurements(measurements); } }
public void CopyToTest() { KeyValuePair<int, int>[] array; using (FileBackedDictionary<int, int> dictionary = new FileBackedDictionary<int, int>()) { for (int i = 1; i <= 100; i++) dictionary.Add(i, i); Assert.AreEqual(dictionary.Count, 100); array = new KeyValuePair<int, int>[dictionary.Count]; dictionary.CopyTo(array, 0); foreach (KeyValuePair<int, int> kvp in array) { Assert.IsTrue(dictionary.Contains(kvp), kvp.Key.ToString()); Assert.AreEqual(dictionary[kvp.Key], kvp.Value); } } }
public void CompactTest() { using (FileBackedDictionary<int, int> dictionary = new FileBackedDictionary<int, int>()) { for (int i = 0; i < 10000; i += 4) { dictionary.Add(i, 4); if (i % 400 == 0) dictionary[i] = 400; else if (i % 100 == 0) dictionary.Remove(i); } dictionary.Compact(); for (int i = 0; i < 10000; i++) { if (i % 400 == 0) Assert.AreEqual(dictionary[i], 400); else if (i % 100 == 0) Assert.IsFalse(dictionary.ContainsKey(i), i.ToString()); else if (i % 4 == 0) Assert.AreEqual(dictionary[i], 4); else Assert.IsFalse(dictionary.ContainsKey(i), i.ToString()); } } }