Bot & Automation
Treding Forex Ai
/root/hermes-projects/Treding Forex Ai
tests/math.test.ts
text
import { describe, expect, it } from "vitest";
import { averageTrueRange, exponentialMovingAverage, relativeStrengthIndex } from "../src/utils/math";
import type { Candle } from "../src/domain/types";
describe("indicator helpers", () => {
it("calculates EMA for a known increasing series", () => {
const ema = exponentialMovingAverage([1, 2, 3, 4, 5], 3);
expect(ema).toBeGreaterThan(3);
expect(ema).toBeLessThan(5);
});
it("returns neutral RSI for insufficient data", () => {
expect(relativeStrengthIndex([1, 2, 3], 14)).toBe(50);
});
it("calculates ATR above zero when candles move", () => {
const candles: Candle[] = [
{ time: "1", open: 1, high: 2, low: 0.5, close: 1.5, volume: 10 },
{ time: "2", open: 1.5, high: 2.5, low: 1.2, close: 2, volume: 10 },
{ time: "3", open: 2, high: 3, low: 1.8, close: 2.6, volume: 10 }
];
expect(averageTrueRange(candles, 2)).toBeGreaterThan(0);
});
});