Sha256: e98ad93141019bd98c79df53eb6b74eda3f07590235d96230c57c493954e6eb6

Contents?: true

Size: 1.52 KB

Versions: 76

Compression:

Stored size: 1.52 KB

Contents

module ZipperTest

open Xunit
open FsUnit.Xunit

open Zipper

let empty = None
let bt v l r = tree v l r |> Some

let leaf v = bt v None None

let t1 = tree 1 (bt 2 empty    (leaf 3)) (leaf 4)
let t2 = tree 1 (bt 5 empty    (leaf 3)) (leaf 4)
let t3 = tree 1 (bt 2 (leaf 5) (leaf 3)) (leaf 4)
let t4 = tree 1 (leaf 2)                 (leaf 4)

[<Fact>]
let ``Data is retained``() =
    toTree (fromTree t1) |> should equal t1

[<Fact(Skip = "Remove to run test")>]
let ``left, right and value``() =
    t1 |> fromTree |> left |> Option.get |> right |> Option.get |> value |> should equal 3

[<Fact(Skip = "Remove to run test")>]
let ``Dead end``() =
    t1 |> fromTree |> left |> Option.get |> left |> should equal None

[<Fact(Skip = "Remove to run test")>]
let ``Tree from deep focus``() =
    t1 |> fromTree |> left |> Option.get |> right |> Option.get |> toTree |> should equal t1

[<Fact(Skip = "Remove to run test")>]
let ``setValue``() =
    t1 |> fromTree |> left |> Option.get |> setValue 5 |> toTree |> should equal t2

[<Fact(Skip = "Remove to run test")>]
let ``setLeft with Some``() =
    t1 |> fromTree |> left |> Option.get |> setLeft (tree 5 None None |> Some) |> toTree |> should equal t3

[<Fact(Skip = "Remove to run test")>]
let ``setRight with None``() =
    t1 |> fromTree |> left |> Option.get |> setRight None |> toTree |> should equal t4

[<Fact(Skip = "Remove to run test")>]
let ``Different paths to same zipper``() =
    t1 |> fromTree |> left |> Option.get |> up |> Option.get |> right |> should equal (t1 |> fromTree |> right)

Version data entries

76 entries across 76 versions & 1 rubygems

Version Path
trackler-2.2.1.98 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.97 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.96 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.95 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.94 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.93 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.92 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.91 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.90 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.89 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.88 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.87 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.86 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.85 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.84 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.83 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.82 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.81 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.80 tracks/fsharp/exercises/zipper/ZipperTest.fs
trackler-2.2.1.79 tracks/fsharp/exercises/zipper/ZipperTest.fs