16 lines
559 B
OCaml
16 lines
559 B
OCaml
open Fieldglass
|
|
|
|
let sample : (string * bool, string) lens' =
|
|
lens ~view:fst ~set:(fun value (_, other) -> value, other)
|
|
|
|
let () = assert (view sample ("colour", true) = "colour")
|
|
|
|
let () =
|
|
let source = "colour", true in
|
|
assert (set sample "grey" source = ("grey", true));
|
|
assert (set sample (view sample source) source = source);
|
|
assert (set sample "blue" (set sample "grey" source) = set sample "blue" source);
|
|
let calls = ref 0 in
|
|
assert (over sample ~f:(fun text -> incr calls; text ^ "s") source = ("colours", true));
|
|
assert (!calls = 1)
|