From b05c2dc0a260d749f4d84c699d07e6366e80b621 Mon Sep 17 00:00:00 2001 From: Sven van Heugten Date: Mon, 27 Apr 2026 22:51:25 +0200 Subject: [PATCH] Add example project --- example-tests/Example.Tests/Calculator.fs | 10 +++++++++ .../Example.Tests/CalculatorTests.fs | 22 +++++++++++++++++++ .../Example.Tests/Example.Tests.fsproj | 21 ++++++++++++++++++ .../Example.Tests/MutationCaseAttribute.fs | 13 +++++++++++ 4 files changed, 66 insertions(+) create mode 100644 example-tests/Example.Tests/Calculator.fs create mode 100644 example-tests/Example.Tests/CalculatorTests.fs create mode 100644 example-tests/Example.Tests/Example.Tests.fsproj create mode 100644 example-tests/Example.Tests/MutationCaseAttribute.fs diff --git a/example-tests/Example.Tests/Calculator.fs b/example-tests/Example.Tests/Calculator.fs new file mode 100644 index 0000000..cfcce3b --- /dev/null +++ b/example-tests/Example.Tests/Calculator.fs @@ -0,0 +1,10 @@ +namespace Example + +module Calculator = + let addOne value = value + 1 + + let absoluteDifference left right = + if left >= right then left - right else right - left + + let isLeapYear year = + year % 4 = 0 && (year % 100 <> 0 || year % 400 = 0) diff --git a/example-tests/Example.Tests/CalculatorTests.fs b/example-tests/Example.Tests/CalculatorTests.fs new file mode 100644 index 0000000..f05ee54 --- /dev/null +++ b/example-tests/Example.Tests/CalculatorTests.fs @@ -0,0 +1,22 @@ +namespace Example.Tests + +open Example +open Mutannot +open Xunit + +type CalculatorTests() = + [] + [] + member _.AddOne_increments() = + Assert.Equal(42, Calculator.addOne 41) + + [] + [] + member _.AbsoluteDifference_preserves_order() = + Assert.Equal(7, Calculator.absoluteDifference 10 3) + + [] + [ 0", "year % 100 = 0")>] + member _.LeapYear_handles_centuries() = + Assert.True(Calculator.isLeapYear 2000) + Assert.False(Calculator.isLeapYear 1900) diff --git a/example-tests/Example.Tests/Example.Tests.fsproj b/example-tests/Example.Tests/Example.Tests.fsproj new file mode 100644 index 0000000..c8c7dce --- /dev/null +++ b/example-tests/Example.Tests/Example.Tests.fsproj @@ -0,0 +1,21 @@ + + + net10.0 + false + + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + diff --git a/example-tests/Example.Tests/MutationCaseAttribute.fs b/example-tests/Example.Tests/MutationCaseAttribute.fs new file mode 100644 index 0000000..12e6475 --- /dev/null +++ b/example-tests/Example.Tests/MutationCaseAttribute.fs @@ -0,0 +1,13 @@ +namespace Mutannot + +open System + +[] +type MutationCaseAttribute(id: string, file: string, line: int, find: string, replace: string) = + inherit Attribute() + + member _.Id = id + member _.File = file + member _.Line = line + member _.Find = find + member _.Replace = replace