// This file was auto-generated based on version 1.0.0 of the canonical data. module PalindromeProductsTest open FsUnit.Xunit open Xunit open PalindromeProducts [<Fact>] let ``Finds the smallest palindrome from single digit factors`` () = smallest 1 9 |> should equal (Some (1, [(1, 1)])) [<Fact(Skip = "Remove to run test")>] let ``Finds the largest palindrome from single digit factors`` () = largest 1 9 |> should equal (Some (9, [(1, 9); (3, 3)])) [<Fact(Skip = "Remove to run test")>] let ``Find the smallest palindrome from double digit factors`` () = smallest 10 99 |> should equal (Some (121, [(11, 11)])) [<Fact(Skip = "Remove to run test")>] let ``Find the largest palindrome from double digit factors`` () = largest 10 99 |> should equal (Some (9009, [(91, 99)])) [<Fact(Skip = "Remove to run test")>] let ``Find smallest palindrome from triple digit factors`` () = smallest 100 999 |> should equal (Some (10201, [(101, 101)])) [<Fact(Skip = "Remove to run test")>] let ``Find the largest palindrome from triple digit factors`` () = largest 100 999 |> should equal (Some (906609, [(913, 993)])) [<Fact(Skip = "Remove to run test")>] let ``Find smallest palindrome from four digit factors`` () = smallest 1000 9999 |> should equal (Some (1002001, [(1001, 1001)])) [<Fact(Skip = "Remove to run test")>] let ``Find the largest palindrome from four digit factors`` () = largest 1000 9999 |> should equal (Some (99000099, [(9901, 9999)])) [<Fact(Skip = "Remove to run test")>] let ``Empty result for smallest if no palindrome in the range`` () = smallest 1002 1003 |> should equal None [<Fact(Skip = "Remove to run test")>] let ``Empty result for largest if no palindrome in the range`` () = largest 15 15 |> should equal None [<Fact(Skip = "Remove to run test")>] let ``Error result for smallest if min is more than max`` () = smallest 10000 1 |> should equal None [<Fact(Skip = "Remove to run test")>] let ``Error result for largest if min is more than max`` () = largest 2 1 |> should equal None