Untitled
unknown
fsharp
2 years ago
1.5 kB
2
Indexable
module Tests open FunctionDatastructures.LazyQueue open Xunit [<Fact>] let ``Test isEmpty with empty queue`` () = let q = empty () let actual = isEmpty q Assert.True actual [<Fact>] let ``Test isEmpty with non-empty queue`` () = let q = cons 1 (empty ()) let actual = isEmpty q Assert.False actual [<Fact>] let ``Test cons`` () = let q1 = empty () let q2 = cons 1 q1 let actual1 = isEmpty q1 let actual2 = isEmpty q2 Assert.True actual1 Assert.False actual2 [<Fact>] let ``empty queue should be empty``() = let queue = empty () Assert.True (isEmpty queue) [<Fact>] let ``cons should add an element to the queue``() = let queue = empty () |> cons 1 Assert.False (isEmpty queue) [<Fact>] let ``head should return the first element of the queue``() = let queue = empty () |> cons 1 |> cons 2 Assert.Equal (head queue, 2) [<Fact>] let ``tail should return a new queue with the first element removed``() = let queue = empty () |> cons 1 |> cons 2 let newQueue = tail queue Assert.False (isEmpty newQueue) Assert.Equal (head newQueue, 1) //[<Fact>] //let ``head should throw an exception if the queue is empty``() = // let queue = empty () // Assert.Throws (fun () -> head queue) |> ignore //[<Fact>] //let ``tail should throw an exception if the queue has only one element``() = // let queue = empty () |> cons 1 // Assert.Throws (fun () -> tail queue) |> ignore
Editor is loading...