diff --git a/ZeroLevel.UnitTests/CollectionsTests.cs b/ZeroLevel.UnitTests/CollectionsTests.cs
index 9625cc2..ad4a77a 100644
--- a/ZeroLevel.UnitTests/CollectionsTests.cs
+++ b/ZeroLevel.UnitTests/CollectionsTests.cs
@@ -86,5 +86,33 @@ namespace ZeroLevel.CollectionUnitTests
Assert.True(fix.Count == 2);
Assert.True(CollectionComparsionExtensions.OrderingEquals(fix.Dump().ToArray(), new long[] { 4, 5 }));
}
+
+ [Fact]
+ public void ChunkifyTest()
+ {
+ // Arrange
+ var arr = new long[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
+ var empty_arr = new long[0];
+
+ // Act
+ var empty_chunks = empty_arr.Chunkify(3).ToArray();
+ var chunks_2 = arr.Chunkify(2).ToArray();
+ var chunks_3 = arr.Chunkify(3).ToArray();
+
+ // Assert
+ Assert.True(empty_chunks.Length == 0);
+ Assert.True(chunks_2.Length == 5);
+ Assert.True(chunks_3.Length == 3);
+
+ Assert.True(CollectionComparsionExtensions.OrderingEquals(chunks_3[0], new long[] { 1, 2, 3 }));
+ Assert.True(CollectionComparsionExtensions.OrderingEquals(chunks_3[1], new long[] { 4, 5, 6 }));
+ Assert.True(CollectionComparsionExtensions.OrderingEquals(chunks_3[2], new long[] { 7, 8, 9 }));
+
+ Assert.True(CollectionComparsionExtensions.OrderingEquals(chunks_2[0], new long[] { 1, 2 }));
+ Assert.True(CollectionComparsionExtensions.OrderingEquals(chunks_2[1], new long[] { 3, 4 }));
+ Assert.True(CollectionComparsionExtensions.OrderingEquals(chunks_2[2], new long[] { 5, 6 }));
+ Assert.True(CollectionComparsionExtensions.OrderingEquals(chunks_2[3], new long[] { 7, 8 }));
+ Assert.True(CollectionComparsionExtensions.OrderingEquals(chunks_2[4], new long[] { 9 }));
+ }
}
}
diff --git a/ZeroLevel/DataStructures/SparceVector.cs b/ZeroLevel/DataStructures/SparceVector.cs
index fc11f69..80ab0d8 100644
--- a/ZeroLevel/DataStructures/SparceVector.cs
+++ b/ZeroLevel/DataStructures/SparceVector.cs
@@ -15,8 +15,6 @@ namespace ZeroLevel.DataStructures
private double[] values;
private double power;
-
-
public SparceVector()
{
indexes = EmptyIndexes;
diff --git a/ZeroLevel/Services/Extensions/LinqExtension.cs b/ZeroLevel/Services/Extensions/LinqExtension.cs
index 863cf76..c305db9 100644
--- a/ZeroLevel/Services/Extensions/LinqExtension.cs
+++ b/ZeroLevel/Services/Extensions/LinqExtension.cs
@@ -71,10 +71,24 @@ namespace System.Linq
{
throw new ArgumentException("chunkSize must be greater than 0.");
}
- while (source.Any())
+ T[] arr = new T[size];
+ int index = 0;
+ foreach (var obj in source)
{
- yield return source.Take(size);
- source = source.Skip(size);
+ arr[index] = obj;
+ index++;
+ if (index >= size)
+ {
+ yield return arr;
+ index = 0;
+ arr = new T[size];
+ }
+ }
+ if (index > 0)
+ {
+ var narr = new T[index];
+ Array.Copy(arr, narr, index);
+ yield return narr;
}
}
}
diff --git a/ZeroLevel/Services/FileSystem/PeriodicFileSystemWatcher.cs b/ZeroLevel/Services/FileSystem/PeriodicFileSystemWatcher.cs
index 0dccc52..b56fc82 100644
--- a/ZeroLevel/Services/FileSystem/PeriodicFileSystemWatcher.cs
+++ b/ZeroLevel/Services/FileSystem/PeriodicFileSystemWatcher.cs
@@ -89,7 +89,7 @@ namespace ZeroLevel.Services.FileSystem
///
/// Moving a file to a temporary directory
///
- public string MoveToTemporary(string from)
+ private string MoveToTemporary(string from)
{
if (from == null)
{
@@ -139,7 +139,7 @@ namespace ZeroLevel.Services.FileSystem
///
/// Getting a list of files from the input directory
///
- public string[] GetFilesFromSource()
+ private string[] GetFilesFromSource()
{
string[] files = Directory.GetFiles(_sourceFolder, "*.*", SearchOption.TopDirectoryOnly);
Array.Sort(files, FileNameSortCompare);
diff --git a/ZeroLevel/Services/Network/BaseSocket.cs b/ZeroLevel/Services/Network/BaseSocket.cs
index e1f04b2..f690363 100644
--- a/ZeroLevel/Services/Network/BaseSocket.cs
+++ b/ZeroLevel/Services/Network/BaseSocket.cs
@@ -26,12 +26,12 @@ namespace ZeroLevel.Network
///
/// If during the specified period there was no network activity, send a ping-request
///
- internal const long HEARTBEAT_PING_PERIOD_TICKS = 1500 * TimeSpan.TicksPerMillisecond;
+ internal const long HEARTBEAT_PING_PERIOD_TICKS = 3000 * TimeSpan.TicksPerMillisecond;
///
/// Connection check period
///
- internal const int MINIMUM_HEARTBEAT_UPDATE_PERIOD_MS = 7500;
+ internal const int MINIMUM_HEARTBEAT_UPDATE_PERIOD_MS = 15000;
///
/// The period of the request, after which it is considered unsuccessful
diff --git a/ZeroLevel/ZeroLevel.csproj b/ZeroLevel/ZeroLevel.csproj
index 0b17998..742fff9 100644
--- a/ZeroLevel/ZeroLevel.csproj
+++ b/ZeroLevel/ZeroLevel.csproj
@@ -6,7 +6,7 @@
ogoun
ogoun
- 3.3.4.0
+ 3.3.4.2
Refactoring
https://github.com/ogoun/Zero/wiki
Copyright Ogoun 2020
@@ -14,8 +14,8 @@
https://github.com/ogoun/Zero
GitHub
- 3.3.4
- 3.3.4.1
+ 3.3.4.2
+ 3.3.4.2
AnyCPU;x64
zero.png