Files
QuanTAlib/lib/trends/sma/Sma.ZeroDiv.Tests.cs
T
Miha Kralj a82f6b7949 Refactor: Remove unnecessary using directives across multiple files
- Cleaned up code by removing unused using directives from various test and implementation files in the trends and volume directories.
- This includes files related to HMA, HTIT, JMA, KAMA, LSMA, MAMA, MGDI, PWMA, RMA, SMA, SSF, SUPER, T3, TEMA, TRIMA, USF, VIDYA, WMA, ATR, ADL, and ADOSC.
- Improved code readability and maintainability by streamlining imports.
2025-12-28 23:55:24 -08:00

34 lines
1.0 KiB
C#

namespace QuanTAlib.Tests;
public class SmaZeroDivTests
{
[Fact]
public void Sma_Update_WithIsNewFalse_OnEmptyBuffer_DoesNotThrow()
{
var sma = new Sma(10);
// Buffer is empty initially.
// Calling Update with isNew=false should not cause division by zero.
// It should return NaN or 0 or Last, but definitely not throw or return Infinity.
var result = sma.Update(new TValue(DateTime.UtcNow, 100), isNew: false);
// Since buffer count is 0, we expect NaN based on our fix.
Assert.True(double.IsNaN(result.Value), $"Expected NaN but got {result.Value}");
}
[Fact]
public void Sma_Update_WithIsNewFalse_AfterReset_DoesNotThrow()
{
var sma = new Sma(10);
sma.Update(new TValue(DateTime.UtcNow, 100));
sma.Reset();
// Buffer is empty after Reset.
var result = sma.Update(new TValue(DateTime.UtcNow, 200), isNew: false);
Assert.True(double.IsNaN(result.Value), $"Expected NaN but got {result.Value}");
}
}