mirror of
https://github.com/logos-storage/logos-storage-nim-cs-dist-tests.git
synced 2026-07-10 09:10:11 +00:00
86 lines
2.8 KiB
C#
86 lines
2.8 KiB
C#
using NUnit.Framework;
|
|
using LogosStorageClient;
|
|
using Utils;
|
|
|
|
namespace FrameworkTests.LogosStorageClient
|
|
{
|
|
[TestFixture]
|
|
public class TransferSpeedsTests
|
|
{
|
|
private TransferSpeeds speeds;
|
|
|
|
[SetUp]
|
|
public void SetUp()
|
|
{
|
|
speeds = new TransferSpeeds();
|
|
}
|
|
|
|
[Test]
|
|
public void GetUploadSpeed_NoSamples_ReturnsNull()
|
|
{
|
|
Assert.That(speeds.GetUploadSpeed(), Is.Null);
|
|
}
|
|
|
|
[Test]
|
|
public void GetDownloadSpeed_NoSamples_ReturnsNull()
|
|
{
|
|
Assert.That(speeds.GetDownloadSpeed(), Is.Null);
|
|
}
|
|
|
|
[Test]
|
|
public void GetUploadSpeed_OneSample_ReturnsCorrectSpeed()
|
|
{
|
|
// 1000 bytes in 2 seconds = 500 bytes/sec
|
|
speeds.AddUploadSample(new ByteSize(1000), TimeSpan.FromSeconds(2));
|
|
Assert.That(speeds.GetUploadSpeed()!.SizeInBytes, Is.EqualTo(500));
|
|
}
|
|
|
|
[Test]
|
|
public void GetDownloadSpeed_OneSample_ReturnsCorrectSpeed()
|
|
{
|
|
// 3000 bytes in 3 seconds = 1000 bytes/sec
|
|
speeds.AddDownloadSample(new ByteSize(3000), TimeSpan.FromSeconds(3));
|
|
Assert.That(speeds.GetDownloadSpeed()!.SizeInBytes, Is.EqualTo(1000));
|
|
}
|
|
|
|
[Test]
|
|
public void GetUploadSpeed_MultipleSamples_ReturnsAverage()
|
|
{
|
|
// 1000/1s = 1000, 3000/3s = 1000 → avg = 1000
|
|
speeds.AddUploadSample(new ByteSize(1000), TimeSpan.FromSeconds(1));
|
|
speeds.AddUploadSample(new ByteSize(3000), TimeSpan.FromSeconds(3));
|
|
Assert.That(speeds.GetUploadSpeed()!.SizeInBytes, Is.EqualTo(1000));
|
|
}
|
|
|
|
[Test]
|
|
public void UploadAndDownload_Independent()
|
|
{
|
|
speeds.AddUploadSample(new ByteSize(2000), TimeSpan.FromSeconds(1));
|
|
speeds.AddDownloadSample(new ByteSize(500), TimeSpan.FromSeconds(1));
|
|
|
|
Assert.That(speeds.GetUploadSpeed()!.SizeInBytes, Is.EqualTo(2000));
|
|
Assert.That(speeds.GetDownloadSpeed()!.SizeInBytes, Is.EqualTo(500));
|
|
}
|
|
|
|
[Test]
|
|
public void Combine_WithNull_ReturnsSelf()
|
|
{
|
|
speeds.AddUploadSample(new ByteSize(1000), TimeSpan.FromSeconds(1));
|
|
var combined = speeds.Combine(null);
|
|
Assert.That(combined.GetUploadSpeed()!.SizeInBytes, Is.EqualTo(1000));
|
|
}
|
|
|
|
[Test]
|
|
public void Combine_TwoSpeeds_MergesAndAverages()
|
|
{
|
|
speeds.AddUploadSample(new ByteSize(1000), TimeSpan.FromSeconds(1)); // 1000 b/s
|
|
var other = new TransferSpeeds();
|
|
other.AddUploadSample(new ByteSize(3000), TimeSpan.FromSeconds(1)); // 3000 b/s
|
|
|
|
var combined = speeds.Combine(other);
|
|
// avg(1000, 3000) = 2000
|
|
Assert.That(combined.GetUploadSpeed()!.SizeInBytes, Is.EqualTo(2000));
|
|
}
|
|
}
|
|
}
|