From 12c4d3625458c830a2746a1f277fb684e9c498cb Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Mon, 21 Sep 2026 22:43:26 +0800 Subject: Add returns and charts slice (3d-9b) --- tests/FundLab.Web.Tests/ChartTests.fs | 47 +++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'tests/FundLab.Web.Tests/ChartTests.fs') diff --git a/tests/FundLab.Web.Tests/ChartTests.fs b/tests/FundLab.Web.Tests/ChartTests.fs index cede2d2..0382b0a 100644 --- a/tests/FundLab.Web.Tests/ChartTests.fs +++ b/tests/FundLab.Web.Tests/ChartTests.fs @@ -21,3 +21,50 @@ module ChartTests = Assert.Equal(1.0, points[1].y) Assert.Equal(0.4, points[2].y) Assert.Equal("2026-01-03", points[2].navDate) + + [] + let ``series points keep the shared date axis and normalize each series`` () = + let dates = [ "2026-01-01"; "2026-01-02"; "2026-01-03" ] + + let values = + [ + "2026-01-01", "100.00" + "2026-01-02", "150.00" + "2026-01-03", "125.00" + ] + + let points = Chart.seriesPoints dates values + + Assert.Equal(3, points.Length) + Assert.Equal(0.0, points[0].x) + Assert.Equal(0.5, points[1].x) + Assert.Equal(1.0, points[2].x) + Assert.Equal(0.0, points[0].y) + Assert.Equal(1.0, points[1].y) + Assert.Equal(0.5, points[2].y) + Assert.Equal("150.00", points[1].value) + + [] + let ``series points skip missing dates instead of filling zero`` () = + let dates = [ "2026-01-01"; "2026-01-02"; "2026-01-03" ] + + let values = + [ + "2026-01-01", "100.00" + "2026-01-03", "125.00" + ] + + let points = Chart.seriesPoints dates values + + Assert.Equal(2, points.Length) + Assert.Equal(0.0, points[0].x) + Assert.Equal(1.0, points[1].x) + Assert.Equal("2026-01-03", points[1].label) + + [] + let ``a single point is centered and keeps no line`` () = + let points = Chart.seriesPoints [ "2026-01-01" ] [ "2026-01-01", "1.00000000" ] + + Assert.Equal(1, points.Length) + Assert.Equal(0.5, points[0].x) + Assert.Equal(0.5, points[0].y) -- cgit v1.2.3