diff --git a/csharp/lib/S3.Tests/S3.Tests.csproj b/csharp/lib/S3.Tests/S3.Tests.csproj
deleted file mode 100644
index 2925a0799..000000000
--- a/csharp/lib/S3.Tests/S3.Tests.csproj
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- false
- latest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/csharp/lib/S3.Tests/UnitTest1.cs b/csharp/lib/S3.Tests/UnitTest1.cs
deleted file mode 100644
index 0545d3fb5..000000000
--- a/csharp/lib/S3.Tests/UnitTest1.cs
+++ /dev/null
@@ -1,225 +0,0 @@
-using InnovEnergy.S3.Drivers;
-using InnovEnergy.S3.Metadata;
-using InnovEnergy.S3.Records;
-using InnovEnergy.S3.Records.Fields;
-using InnovEnergy.S3.Records.Specialized;
-using InnovEnergy.Time.Unix;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using static InnovEnergy.Time.Unix.UnixTimeSpan;
-
-namespace S3.Tests;
-
-using Memory = Dictionary;
-
-[TestClass]
-public class UnitTest1
-{
- public IReadOnlyList Levels { get; set; }
-
- [TestInitialize]
- public void Init()
- {
- Levels = new []
- {
- new AggregationLevel( 2.Seconds(), 54.Weeks()),
- new AggregationLevel(10.Seconds(), 54.Weeks()),
- new AggregationLevel( 1.Minutes(), 54.Weeks()),
- new AggregationLevel( 5.Minutes(), 540.Weeks()),
- new AggregationLevel(15.Minutes(), 540.Weeks()),
- new AggregationLevel( 1.Hours() , 540.Weeks()),
- new AggregationLevel( 6.Hours() , 540.Weeks()),
- new AggregationLevel( 1.Days() , 540.Weeks()),
- new AggregationLevel( 1.Weeks() , Forever)
- };
-
- }
-
- [TestMethod]
- public void Test1()
- {
- var retentionPeriod = 4.Seconds();
- var samplePeriod = 2.Seconds();
-
- var level0 = new AggregationLevel(samplePeriod, retentionPeriod);
- var levels = new[] {level0};
-
- var records = level0
- .RangeExclusive(UnixTime.Epoch, UnixTime.Epoch + 4 * level0.SamplePeriod)
- .Select(TimeStampedRecord.Empty);
-
- var memory = new Memory();
-
- using (var d = new MemoryDriver(levels, UnixTime.Epoch, memory))
- foreach (var record in records)
- d.WriteRecord(record);
-
- Assert.AreEqual(memory.Count, (Int32) (retentionPeriod/samplePeriod));
- }
-
- [TestMethod]
- public void Test2()
- {
- var l0 = new AggregationLevel(2.Seconds(), Forever);
- var l1 = new AggregationLevel(10.Seconds(), Forever);
-
- var levels = new[] {l0, l1};
-
- var l1Key = l1.SamplePeriod.ToString();
- var l0Key = l0.SamplePeriod.ToString();
-
- var records = l0
- .RangeExclusive(UnixTime.Epoch, UnixTime.Epoch + l1.SamplePeriod)
- .Select(TimeStampedRecord.Empty);
-
- var memory = new Memory();
-
- using (var d = new MemoryDriver(levels, UnixTime.Epoch, memory))
- foreach (var record in records)
- d.WriteRecord(record);
-
- var n0 = memory.Count(kv => kv.Key.StartsWith(l0Key));
- var n1 = memory.Count(kv => kv.Key.StartsWith(l1Key));
-
- Assert.AreEqual(5, n0);
- Assert.AreEqual(1, n1);
- }
-
- [TestMethod]
- public void Test3()
- {
- var l0 = new AggregationLevel(2.Seconds(), Forever);
- var l1 = new AggregationLevel(10.Seconds(), Forever);
-
- var levels = new[] {l0, l1};
-
- var l1Key = l1.SamplePeriod.ToString();
- var l0Key = l0.SamplePeriod.ToString();
-
- var records = l0
- .RangeExclusive(UnixTime.Epoch, UnixTime.Epoch + l1.SamplePeriod + l0.SamplePeriod)
- .Select(TimeStampedRecord.Empty);
-
- var memory = new Memory();
-
- using (var d = new MemoryDriver(levels, UnixTime.Epoch, memory))
- foreach (var record in records)
- d.WriteRecord(record);
-
- var n0 = memory.Count(kv => kv.Key.StartsWith(l0Key));
- var n1 = memory.Count(kv => kv.Key.StartsWith(l1Key));
-
- Assert.AreEqual(6, n0);
- Assert.AreEqual(2, n1);
- }
-
- [TestMethod]
- public void Test4()
- {
- var l0 = new AggregationLevel(2.Seconds(), Forever);
- var l1 = new AggregationLevel(10.Seconds(), Forever);
-
- var levels = new[] {l0, l1};
-
- var l1Key = l1.SamplePeriod.ToString();
- var l0Key = l0.SamplePeriod.ToString();
-
- var startTime = UnixTime.Epoch + l0.SamplePeriod;
- var endTime = UnixTime.Epoch + l1.SamplePeriod + l0.SamplePeriod;
-
- var records = l0
- .RangeExclusive(startTime, endTime)
- .Select(TimeStampedRecord.Empty);
-
- var memory = new Memory();
-
- using (var d = new MemoryDriver(levels, startTime, memory))
- foreach (var record in records)
- d.WriteRecord(record);
-
- var n0 = memory.Count(kv => kv.Key.StartsWith(l0Key));
- var n1 = memory.Count(kv => kv.Key.StartsWith(l1Key));
-
- Assert.AreEqual(5, n0);
- Assert.AreEqual(2, n1);
- }
-
-
- [TestMethod]
- public void Test5()
- {
- var l0 = new AggregationLevel(2.Seconds(), Forever);
- var l1 = new AggregationLevel(10.Seconds(), Forever);
-
- var levels = new[] {l0, l1};
-
- var l1Key = l1.SamplePeriod.ToString();
-
- var startTime = UnixTime.Epoch;
- var endTime = UnixTime.Epoch + l1.SamplePeriod;
-
- Record CreateRecord(Int32 n) => Record.ParseDict(new () {["Number"] = n});
-
- var records = l0
- .RangeExclusive(startTime, endTime)
- .Select((t, i) => CreateRecord(i).TimeStamped(t));
-
- var memory = new Memory();
-
- using (var d = new MemoryDriver(levels, startTime, memory))
- foreach (var record in records)
- d.WriteRecord(record);
-
- var f1 = memory
- .Single(kv => kv.Key.StartsWith(l1Key))
- .Value
- .Record
- .GetField("Number");
-
- Assert.AreEqual(Enumerable.Range(0, (Int32) (l1.SamplePeriod / l0.SamplePeriod)).Average(), f1.Value);
- }
-
- [TestMethod]
- public void Test6()
- {
- var l0 = new AggregationLevel(2.Seconds(), Forever);
- var l1 = new AggregationLevel(10.Seconds(), Forever);
-
- var levels = new[] {l0, l1};
-
- var l1Key = l1.SamplePeriod.ToString();
-
- var startTime = UnixTime.Epoch;
- var endTime = UnixTime.Epoch + l1.SamplePeriod;
-
-
-
- Record CreateRecord(Int32 n)
- {
- var subRec = Record.ParseDict(new() {["Number"] = n});
-
- return Record.ParseDict(new (){["Sub"] = subRec});
-
- // return new Record(new Record(new NumberField("Number", n)));
- }
-
- var records = l0
- .RangeExclusive(startTime, endTime)
- .Select((t, i) => CreateRecord(i).TimeStamped(t));
-
- var memory = new Memory();
-
- using (var d = new MemoryDriver(levels, startTime, memory))
- foreach (var record in records)
- d.WriteRecord(record);
-
- var f1 = memory
- .Single(kv => kv.Key.StartsWith(l1Key))
- .Value
- .Record
- .GetField("Sub")
- .GetField("Number");
-
- Assert.AreEqual(Enumerable.Range(0, (Int32) (l1.SamplePeriod / l0.SamplePeriod)).Average(), f1.Value);
- }
-
-}
\ No newline at end of file