diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index a36cee3c..00000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "recommendations": [ - "ms-dotnettools.csdevkit", - "ms-dotnettools.csharp", - "ms-dotnettools.dotnet-interactive-vscode", - "bierner.markdown-mermaid", - "visualstudioexptteam.vscodeintellicode", - "SonarSource.sonarlint-vscode" - ] -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index e9a00346..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - // ═══════════════════════════════════════════════════════════════════════ - // GitHub Copilot Settings for QuanTAlib Workspace - // Optimized for high-performance financial library development - // ═══════════════════════════════════════════════════════════════════════ - - // ─────────────────────────────────────────────────────────────────────── - // Copilot Core Settings - // ─────────────────────────────────────────────────────────────────────── - - // Enable Copilot completions (suggestions appear automatically) - "github.copilot.editor.enableAutoCompletions": true, - - // Enable Copilot for all file types - "github.copilot.enable": { - "*": true, - "plaintext": false, - "markdown": true, - "scminput": false - }, - - // Show inline suggestions - "editor.inlineSuggest.enabled": true, - - // Always show the inline suggestion toolbar - "editor.inlineSuggest.showToolbar": "always", - - // ─────────────────────────────────────────────────────────────────────── - // Copilot Chat Settings (Manual Review Required) - // ─────────────────────────────────────────────────────────────────────── - - // DO NOT auto-apply chat edits - require manual review for quality control - "chat.editing.autoApply": "off", - - // Confirm before removing edit requests - "chat.editing.confirmEditRequestRemoval": true, - - // Show chat panel on the side - "chat.editor.wordWrap": "on", - - // ─────────────────────────────────────────────────────────────────────── - // Editor Settings for Productivity - // ─────────────────────────────────────────────────────────────────────── - - // Enable quick suggestions in all contexts - "editor.quickSuggestions": { - "other": true, - "comments": true, - "strings": true - }, - - // Show suggestions on trigger characters - "editor.suggestOnTriggerCharacters": true, - - // Accept suggestion on commit character (like dot, parenthesis) - "editor.acceptSuggestionOnCommitCharacter": true, - - // Faster suggestion appearance - "editor.quickSuggestionsDelay": 0, - - // Show snippet suggestions with other suggestions - "editor.snippetSuggestions": "inline", - - // Tab key behavior - "editor.tabCompletion": "on", - - // ─────────────────────────────────────────────────────────────────────── - // C# Specific Settings - // ─────────────────────────────────────────────────────────────────────── - - "[csharp]": { - "editor.formatOnSave": true, - "editor.formatOnPaste": true, - "editor.codeActionsOnSave": { - "source.organizeImports": "explicit" - }, - "editor.quickSuggestions": { - "other": true, - "comments": true, - "strings": true - } - }, - - // ─────────────────────────────────────────────────────────────────────── - // Performance & Quality Control - // ─────────────────────────────────────────────────────────────────────── - - // Save automatically (helps with Copilot context) - "files.autoSave": "afterDelay", - "files.autoSaveDelay": 1000, - - // Force LF line endings (matches .gitattributes and .editorconfig) - "files.eol": "\n", - // Show whitespace (important for performance-critical code) - "editor.renderWhitespace": "boundary", - - // Show inline parameter hints - "editor.inlayHints.enabled": "on", - - // Highlight matching brackets - "editor.bracketPairColorization.enabled": true, - "editor.guides.bracketPairs": true, - - // ─────────────────────────────────────────────────────────────────────── - // Git Integration - // ─────────────────────────────────────────────────────────────────────── - - // Auto-fetch git changes - "git.autofetch": true, - - // Confirm before synchronizing - "git.confirmSync": false, - - // Show inline blame - "git.decorations.enabled": true, - - "terminal.integrated.shellIntegration.enabled": true, - "terminal.integrated.suggest.enabled": true, - - - // ─────────────────────────────────────────────────────────────────────── - // File Exclusions (Reduce Noise) - // ─────────────────────────────────────────────────────────────────────── - - "files.exclude": { - "**/bin": true, - "**/obj": true, - "**/.vs": true, - "**/node_modules": true, - "**/.git": false - }, - - "search.exclude": { - "**/bin": true, - "**/obj": true, - "**/node_modules": true, - "**/.vs": true, - "**/coverage": true - }, - - // ─────────────────────────────────────────────────────────────────────── - // .NET Specific Settings - // ─────────────────────────────────────────────────────────────────────── - - "omnisharp.enableEditorConfigSupport": true, - "omnisharp.enableRoslynAnalyzers": true, - "dotnet.backgroundAnalysis.enabled": true, - - // ─────────────────────────────────────────────────────────────────────── - // Testing Integration - // ─────────────────────────────────────────────────────────────────────── - - "dotnet.defaultSolution": "QuanTAlib.sln", - "dotnet.testController.enabled": true, - "dotnet.unitTestDebuggingEnabled": true, - "dotnet.unitTests.runSettingsPath": ".config/coverage.runsettings", - "dotnet.completion.showCompletionItemsFromUnimportedNamespaces": true, - "dotnet.server.useOmnisharp": false, - - // Python test discovery (pytest) - "python.testing.pytestEnabled": true, - "python.testing.unittestEnabled": false, - "python.testing.pytestArgs": [ - "python" - ], - "sonarlint.connectedMode.project": { - "connectionId": "mihakralj-quantalib", - "projectKey": "mihakralj_QuanTAlib" - }, - "coderabbit.agentType": "Roo", - "qodana.pathPrefix": "", - "qodana.args": ["--config", ".qodana/qodana.yaml"], - - // ─────────────────────────────────────────────────────────────────────── - // Terminal Settings - // ─────────────────────────────────────────────────────────────────────── - - // Set PowerShell 7 as the default terminal on Windows - "terminal.integrated.defaultProfile.windows": "PowerShell", - - // Terminal profiles for Windows - "terminal.integrated.profiles.windows": { - "PowerShell": { - "source": "PowerShell", - "icon": "terminal-powershell" - }, - "Git Bash": { - "path": "C:\\Program Files\\Git\\bin\\bash.exe", - "icon": "terminal-bash" - } - }, - "qodana.projectId": "KbxmN", - "github.copilot.mcpServers": { - "code-to-tree": { - "command": "C:\\github\\code-to-tree.exe" - } - }, - "coderabbit.autoReviewMode": "disabled" - - // ═══════════════════════════════════════════════════════════════════════ - // Keyboard Shortcuts Reference - // ═══════════════════════════════════════════════════════════════════════ - // Tab - Accept inline suggestion - // Ctrl+Right - Accept next word - // Ctrl+Enter - Accept line - // Esc - Dismiss suggestion - // Alt+] - Next suggestion - // Alt+[ - Previous suggestion - // Ctrl+I - Open Copilot Chat - // - // Quality Control Reminders: - // - Review all Copilot suggestions for optimization patterns - // - Run tests after accepting: dotnet test - // - Check performance impact with benchmarks - // - Validate against reference implementations -} diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index 42ecf80c..00000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "Build", - "detail": "dotnet build QuanTAlib.sln", - "type": "process", - "command": "dotnet", - "args": [ - "build", - "${workspaceFolder}/QuanTAlib.sln", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" - ], - "problemMatcher": "$msCompile", - "group": { "kind": "build", "isDefault": true } - }, - { - "label": "Build Library", - "detail": "dotnet build lib/quantalib.csproj (Debug, net10.0)", - "type": "process", - "command": "dotnet", - "args": [ - "build", - "${workspaceFolder}/lib/quantalib.csproj", - "--configuration", "Debug", - "--framework", "net10.0" - ], - "problemMatcher": "$msCompile", - "group": "build" - }, - { - "label": "Test", - "detail": "dotnet test lib/QuanTAlib.Tests.csproj (net10.0)", - "type": "process", - "command": "dotnet", - "args": [ - "test", - "${workspaceFolder}/lib/QuanTAlib.Tests.csproj", - "--framework", "net10.0" - ], - "problemMatcher": "$msCompile", - "group": { "kind": "test", "isDefault": true }, - "presentation": { "reveal": "always", "panel": "new" } - } - ] -} diff --git a/lib/channels/aberr/Aberr.cs b/lib/channels/aberr/Aberr.cs index edf80c70..cfcd7af3 100644 --- a/lib/channels/aberr/Aberr.cs +++ b/lib/channels/aberr/Aberr.cs @@ -1,4 +1,5 @@ using System.Buffers; +using System.Diagnostics.CodeAnalysis; using System.Numerics; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -413,14 +414,14 @@ public sealed class Aberr : ITValuePublisher, IDisposable /// [StructLayout(LayoutKind.Auto)] #pragma warning disable S1104 // Fields should not have public accessibility - public ref struct BatchOutputs + public readonly ref struct BatchOutputs { /// Output middle band (SMA of source) - public Span Middle; + public readonly Span Middle; /// Output upper band - public Span Upper; + public readonly Span Upper; /// Output lower band - public Span Lower; + public readonly Span Lower; #pragma warning restore S1104 /// @@ -432,12 +433,26 @@ public sealed class Aberr : ITValuePublisher, IDisposable Upper = upper; Lower = lower; } + + public bool Equals(BatchOutputs other) => + Unsafe.AreSame(ref MemoryMarshal.GetReference(Middle), ref MemoryMarshal.GetReference(other.Middle)) && + Middle.Length == other.Middle.Length && + Unsafe.AreSame(ref MemoryMarshal.GetReference(Upper), ref MemoryMarshal.GetReference(other.Upper)) && + Upper.Length == other.Upper.Length && + Unsafe.AreSame(ref MemoryMarshal.GetReference(Lower), ref MemoryMarshal.GetReference(other.Lower)) && + Lower.Length == other.Lower.Length; + + public override bool Equals(object? obj) => false; + public override int GetHashCode() => HashCode.Combine(Middle.Length, Upper.Length, Lower.Length); + public static bool operator ==(BatchOutputs left, BatchOutputs right) => left.Equals(right); + public static bool operator !=(BatchOutputs left, BatchOutputs right) => !left.Equals(right); } /// /// Internal state for scalar calculation. /// [StructLayout(LayoutKind.Auto)] + [SuppressMessage("NDepend", "ND1903:StructuresShouldBeImmutable", Justification = "Mutable calculation state accumulator by design")] private ref struct ScalarState { internal double SumSource; @@ -445,6 +460,16 @@ public sealed class Aberr : ITValuePublisher, IDisposable internal double LastValidValue; internal int BufferIndex; internal int TickCount; + + public bool Equals(ScalarState other) => + SumSource.Equals(other.SumSource) && SumDeviation.Equals(other.SumDeviation) && + LastValidValue.Equals(other.LastValidValue) && BufferIndex == other.BufferIndex && + TickCount == other.TickCount; + + public override bool Equals(object? obj) => false; + public override int GetHashCode() => HashCode.Combine(SumSource, SumDeviation, LastValidValue, BufferIndex, TickCount); + public static bool operator ==(ScalarState left, ScalarState right) => left.Equals(right); + public static bool operator !=(ScalarState left, ScalarState right) => !left.Equals(right); } /// @@ -455,6 +480,17 @@ public sealed class Aberr : ITValuePublisher, IDisposable { internal readonly Span Source = source; internal readonly Span Deviation = deviation; + + public bool Equals(WorkBuffers other) => + Unsafe.AreSame(ref MemoryMarshal.GetReference(Source), ref MemoryMarshal.GetReference(other.Source)) && + Source.Length == other.Source.Length && + Unsafe.AreSame(ref MemoryMarshal.GetReference(Deviation), ref MemoryMarshal.GetReference(other.Deviation)) && + Deviation.Length == other.Deviation.Length; + + public override bool Equals(object? obj) => false; + public override int GetHashCode() => HashCode.Combine(Source.Length, Deviation.Length); + public static bool operator ==(WorkBuffers left, WorkBuffers right) => left.Equals(right); + public static bool operator !=(WorkBuffers left, WorkBuffers right) => !left.Equals(right); } /// diff --git a/lib/channels/accbands/AccBands.cs b/lib/channels/accbands/AccBands.cs index d9279d98..88438164 100644 --- a/lib/channels/accbands/AccBands.cs +++ b/lib/channels/accbands/AccBands.cs @@ -1,4 +1,5 @@ using System.Buffers; +using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -475,14 +476,14 @@ public sealed class AccBands : ITValuePublisher, IDisposable /// [StructLayout(LayoutKind.Auto)] #pragma warning disable S1104 // Fields should not have public accessibility - public ref struct BatchOutputs + public readonly ref struct BatchOutputs { /// Output middle band (SMA of close) - public Span Middle; + public readonly Span Middle; /// Output upper band - public Span Upper; + public readonly Span Upper; /// Output lower band - public Span Lower; + public readonly Span Lower; #pragma warning restore S1104 /// @@ -494,6 +495,19 @@ public sealed class AccBands : ITValuePublisher, IDisposable Upper = upper; Lower = lower; } + + public bool Equals(BatchOutputs other) => + Unsafe.AreSame(ref MemoryMarshal.GetReference(Middle), ref MemoryMarshal.GetReference(other.Middle)) && + Middle.Length == other.Middle.Length && + Unsafe.AreSame(ref MemoryMarshal.GetReference(Upper), ref MemoryMarshal.GetReference(other.Upper)) && + Upper.Length == other.Upper.Length && + Unsafe.AreSame(ref MemoryMarshal.GetReference(Lower), ref MemoryMarshal.GetReference(other.Lower)) && + Lower.Length == other.Lower.Length; + + public override bool Equals(object? obj) => false; + public override int GetHashCode() => HashCode.Combine(Middle.Length, Upper.Length, Lower.Length); + public static bool operator ==(BatchOutputs left, BatchOutputs right) => left.Equals(right); + public static bool operator !=(BatchOutputs left, BatchOutputs right) => !left.Equals(right); } /// @@ -501,14 +515,14 @@ public sealed class AccBands : ITValuePublisher, IDisposable /// [StructLayout(LayoutKind.Auto)] #pragma warning disable S1104 // Fields should not have public accessibility - public ref struct BatchInputs + public readonly ref struct BatchInputs { /// High price values - public ReadOnlySpan High; + public readonly ReadOnlySpan High; /// Low price values - public ReadOnlySpan Low; + public readonly ReadOnlySpan Low; /// Close price values - public ReadOnlySpan Close; + public readonly ReadOnlySpan Close; #pragma warning restore S1104 /// @@ -520,12 +534,26 @@ public sealed class AccBands : ITValuePublisher, IDisposable Low = low; Close = close; } + + public bool Equals(BatchInputs other) => + Unsafe.AreSame(ref MemoryMarshal.GetReference(High), ref MemoryMarshal.GetReference(other.High)) && + High.Length == other.High.Length && + Unsafe.AreSame(ref MemoryMarshal.GetReference(Low), ref MemoryMarshal.GetReference(other.Low)) && + Low.Length == other.Low.Length && + Unsafe.AreSame(ref MemoryMarshal.GetReference(Close), ref MemoryMarshal.GetReference(other.Close)) && + Close.Length == other.Close.Length; + + public override bool Equals(object? obj) => false; + public override int GetHashCode() => HashCode.Combine(High.Length, Low.Length, Close.Length); + public static bool operator ==(BatchInputs left, BatchInputs right) => left.Equals(right); + public static bool operator !=(BatchInputs left, BatchInputs right) => !left.Equals(right); } /// /// Internal state for scalar calculation. /// [StructLayout(LayoutKind.Auto)] + [SuppressMessage("NDepend", "ND1903:StructuresShouldBeImmutable", Justification = "Mutable calculation state accumulator by design")] private ref struct ScalarState { internal double SumAdjHigh; @@ -536,6 +564,17 @@ public sealed class AccBands : ITValuePublisher, IDisposable internal double LastValidClose; internal int BufferIndex; internal int TickCount; + + public bool Equals(ScalarState other) => + SumAdjHigh.Equals(other.SumAdjHigh) && SumAdjLow.Equals(other.SumAdjLow) && + SumClose.Equals(other.SumClose) && LastValidHigh.Equals(other.LastValidHigh) && + LastValidLow.Equals(other.LastValidLow) && LastValidClose.Equals(other.LastValidClose) && + BufferIndex == other.BufferIndex && TickCount == other.TickCount; + + public override bool Equals(object? obj) => false; + public override int GetHashCode() => HashCode.Combine(SumAdjHigh, SumAdjLow, SumClose, BufferIndex, TickCount); + public static bool operator ==(ScalarState left, ScalarState right) => left.Equals(right); + public static bool operator !=(ScalarState left, ScalarState right) => !left.Equals(right); } /// @@ -547,6 +586,19 @@ public sealed class AccBands : ITValuePublisher, IDisposable internal readonly Span AdjHigh = adjHigh; internal readonly Span AdjLow = adjLow; internal readonly Span Close = close; + + public bool Equals(WorkBuffers other) => + Unsafe.AreSame(ref MemoryMarshal.GetReference(AdjHigh), ref MemoryMarshal.GetReference(other.AdjHigh)) && + AdjHigh.Length == other.AdjHigh.Length && + Unsafe.AreSame(ref MemoryMarshal.GetReference(AdjLow), ref MemoryMarshal.GetReference(other.AdjLow)) && + AdjLow.Length == other.AdjLow.Length && + Unsafe.AreSame(ref MemoryMarshal.GetReference(Close), ref MemoryMarshal.GetReference(other.Close)) && + Close.Length == other.Close.Length; + + public override bool Equals(object? obj) => false; + public override int GetHashCode() => HashCode.Combine(AdjHigh.Length, AdjLow.Length, Close.Length); + public static bool operator ==(WorkBuffers left, WorkBuffers right) => left.Equals(right); + public static bool operator !=(WorkBuffers left, WorkBuffers right) => !left.Equals(right); } /// diff --git a/lib/channels/apz/Apz.cs b/lib/channels/apz/Apz.cs index 11d79623..6c779cfd 100644 --- a/lib/channels/apz/Apz.cs +++ b/lib/channels/apz/Apz.cs @@ -1,3 +1,4 @@ +using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -412,14 +413,14 @@ public sealed class Apz : ITValuePublisher /// [StructLayout(LayoutKind.Auto)] #pragma warning disable S1104 // Fields should not have public accessibility - public ref struct BatchOutputs + public readonly ref struct BatchOutputs { /// Output middle band (double-smoothed EMA of price) - public Span Middle; + public readonly Span Middle; /// Output upper band - public Span Upper; + public readonly Span Upper; /// Output lower band - public Span Lower; + public readonly Span Lower; #pragma warning restore S1104 /// @@ -431,12 +432,26 @@ public sealed class Apz : ITValuePublisher Upper = upper; Lower = lower; } + + public bool Equals(BatchOutputs other) => + Unsafe.AreSame(ref MemoryMarshal.GetReference(Middle), ref MemoryMarshal.GetReference(other.Middle)) && + Middle.Length == other.Middle.Length && + Unsafe.AreSame(ref MemoryMarshal.GetReference(Upper), ref MemoryMarshal.GetReference(other.Upper)) && + Upper.Length == other.Upper.Length && + Unsafe.AreSame(ref MemoryMarshal.GetReference(Lower), ref MemoryMarshal.GetReference(other.Lower)) && + Lower.Length == other.Lower.Length; + + public override bool Equals(object? obj) => false; + public override int GetHashCode() => HashCode.Combine(Middle.Length, Upper.Length, Lower.Length); + public static bool operator ==(BatchOutputs left, BatchOutputs right) => left.Equals(right); + public static bool operator !=(BatchOutputs left, BatchOutputs right) => !left.Equals(right); } /// /// Internal state for scalar calculation. /// [StructLayout(LayoutKind.Auto)] + [SuppressMessage("NDepend", "ND1903:StructuresShouldBeImmutable", Justification = "Mutable calculation state accumulator by design")] private ref struct ScalarState { internal double Ema1Price; @@ -448,6 +463,18 @@ public sealed class Apz : ITValuePublisher internal double LastValidHigh; internal double LastValidLow; internal bool IsHot; + + public bool Equals(ScalarState other) => + Ema1Price.Equals(other.Ema1Price) && Ema2Price.Equals(other.Ema2Price) && + Ema1Range.Equals(other.Ema1Range) && Ema2Range.Equals(other.Ema2Range) && + E.Equals(other.E) && LastValidPrice.Equals(other.LastValidPrice) && + LastValidHigh.Equals(other.LastValidHigh) && LastValidLow.Equals(other.LastValidLow) && + IsHot == other.IsHot; + + public override bool Equals(object? obj) => false; + public override int GetHashCode() => HashCode.Combine(Ema1Price, Ema2Price, Ema1Range, Ema2Range, E, IsHot); + public static bool operator ==(ScalarState left, ScalarState right) => left.Equals(right); + public static bool operator !=(ScalarState left, ScalarState right) => !left.Equals(right); } /// diff --git a/lib/core/tests/IndicatorProperties.Tests.cs b/lib/core/tests/IndicatorProperties.Tests.cs index 9a065cf3..47bf81fe 100644 --- a/lib/core/tests/IndicatorProperties.Tests.cs +++ b/lib/core/tests/IndicatorProperties.Tests.cs @@ -3,7 +3,7 @@ using System.Linq; using Xunit; using QuanTAlib; -namespace QuanTAlib.Tests.Core; +namespace QuanTAlib.Tests; /// /// Tests verifying the structural stability of indicators across the repository. diff --git a/python/publish/win-x64/QuanTAlib.pdb b/python/publish/win-x64/QuanTAlib.pdb deleted file mode 100644 index 4bcb20da..00000000 Binary files a/python/publish/win-x64/QuanTAlib.pdb and /dev/null differ diff --git a/python/publish/win-x64/quantalib_native.dll b/python/publish/win-x64/quantalib_native.dll deleted file mode 100644 index 4be2d4fe..00000000 Binary files a/python/publish/win-x64/quantalib_native.dll and /dev/null differ diff --git a/python/publish/win-x64/quantalib_native.pdb b/python/publish/win-x64/quantalib_native.pdb deleted file mode 100644 index 6b8d2397..00000000 Binary files a/python/publish/win-x64/quantalib_native.pdb and /dev/null differ diff --git a/python/quantalib/__pycache__/__init__.cpython-313.pyc b/python/quantalib/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index 031d34d1..00000000 Binary files a/python/quantalib/__pycache__/__init__.cpython-313.pyc and /dev/null differ diff --git a/python/quantalib/__pycache__/_bridge.cpython-313.pyc b/python/quantalib/__pycache__/_bridge.cpython-313.pyc deleted file mode 100644 index 71ec3d86..00000000 Binary files a/python/quantalib/__pycache__/_bridge.cpython-313.pyc and /dev/null differ diff --git a/python/quantalib/__pycache__/_compat.cpython-313.pyc b/python/quantalib/__pycache__/_compat.cpython-313.pyc deleted file mode 100644 index a2f713ab..00000000 Binary files a/python/quantalib/__pycache__/_compat.cpython-313.pyc and /dev/null differ diff --git a/python/quantalib/__pycache__/_loader.cpython-313.pyc b/python/quantalib/__pycache__/_loader.cpython-313.pyc deleted file mode 100644 index f97864b2..00000000 Binary files a/python/quantalib/__pycache__/_loader.cpython-313.pyc and /dev/null differ diff --git a/python/quantalib/__pycache__/indicators.cpython-313.pyc b/python/quantalib/__pycache__/indicators.cpython-313.pyc deleted file mode 100644 index df969a96..00000000 Binary files a/python/quantalib/__pycache__/indicators.cpython-313.pyc and /dev/null differ diff --git a/python/quantalib/native/win_amd64/QuanTAlib.pdb b/python/quantalib/native/win_amd64/QuanTAlib.pdb deleted file mode 100644 index 9db8861e..00000000 Binary files a/python/quantalib/native/win_amd64/QuanTAlib.pdb and /dev/null differ diff --git a/python/quantalib/native/win_amd64/quantalib_native.dll b/python/quantalib/native/win_amd64/quantalib_native.dll deleted file mode 100644 index ebd67bf2..00000000 Binary files a/python/quantalib/native/win_amd64/quantalib_native.dll and /dev/null differ diff --git a/python/quantalib/native/win_amd64/quantalib_native.pdb b/python/quantalib/native/win_amd64/quantalib_native.pdb deleted file mode 100644 index 15ac7198..00000000 Binary files a/python/quantalib/native/win_amd64/quantalib_native.pdb and /dev/null differ diff --git a/python/quantalib/quantalib.dll b/python/quantalib/quantalib.dll deleted file mode 100644 index 8d0b8e75..00000000 Binary files a/python/quantalib/quantalib.dll and /dev/null differ diff --git a/python/tests/__pycache__/test_compat.cpython-313-pytest-9.0.2.pyc b/python/tests/__pycache__/test_compat.cpython-313-pytest-9.0.2.pyc deleted file mode 100644 index 4ae1ac1a..00000000 Binary files a/python/tests/__pycache__/test_compat.cpython-313-pytest-9.0.2.pyc and /dev/null differ diff --git a/python/tests/__pycache__/test_golden.cpython-313-pytest-9.0.2.pyc b/python/tests/__pycache__/test_golden.cpython-313-pytest-9.0.2.pyc deleted file mode 100644 index d50b031c..00000000 Binary files a/python/tests/__pycache__/test_golden.cpython-313-pytest-9.0.2.pyc and /dev/null differ diff --git a/python/tests/__pycache__/test_pandas_ta_parity.cpython-313-pytest-9.0.2.pyc b/python/tests/__pycache__/test_pandas_ta_parity.cpython-313-pytest-9.0.2.pyc deleted file mode 100644 index 52ee36c0..00000000 Binary files a/python/tests/__pycache__/test_pandas_ta_parity.cpython-313-pytest-9.0.2.pyc and /dev/null differ diff --git a/python/tests/__pycache__/test_pandas_ta_parity_batch_01.cpython-313-pytest-9.0.2.pyc b/python/tests/__pycache__/test_pandas_ta_parity_batch_01.cpython-313-pytest-9.0.2.pyc deleted file mode 100644 index 8b84f395..00000000 Binary files a/python/tests/__pycache__/test_pandas_ta_parity_batch_01.cpython-313-pytest-9.0.2.pyc and /dev/null differ diff --git a/python/tests/__pycache__/test_shapes.cpython-313-pytest-9.0.2.pyc b/python/tests/__pycache__/test_shapes.cpython-313-pytest-9.0.2.pyc deleted file mode 100644 index d6e25d0a..00000000 Binary files a/python/tests/__pycache__/test_shapes.cpython-313-pytest-9.0.2.pyc and /dev/null differ diff --git a/python/tests/__pycache__/test_shapes.cpython-313.pyc b/python/tests/__pycache__/test_shapes.cpython-313.pyc deleted file mode 100644 index 0b511797..00000000 Binary files a/python/tests/__pycache__/test_shapes.cpython-313.pyc and /dev/null differ diff --git a/python/tests/__pycache__/test_smoke.cpython-313-pytest-9.0.2.pyc b/python/tests/__pycache__/test_smoke.cpython-313-pytest-9.0.2.pyc deleted file mode 100644 index c67646fd..00000000 Binary files a/python/tests/__pycache__/test_smoke.cpython-313-pytest-9.0.2.pyc and /dev/null differ diff --git a/python/tests/__pycache__/test_status_codes.cpython-313-pytest-9.0.2.pyc b/python/tests/__pycache__/test_status_codes.cpython-313-pytest-9.0.2.pyc deleted file mode 100644 index 4ce1542a..00000000 Binary files a/python/tests/__pycache__/test_status_codes.cpython-313-pytest-9.0.2.pyc and /dev/null differ