aboutsummaryrefslogtreecommitdiffstats
path: root/test/Helpers.ml
diff options
context:
space:
mode:
Diffstat (limited to 'test/Helpers.ml')
-rw-r--r--test/Helpers.ml29
1 files changed, 15 insertions, 14 deletions
diff --git a/test/Helpers.ml b/test/Helpers.ml
index f812a3a..ecd3985 100644
--- a/test/Helpers.ml
+++ b/test/Helpers.ml
@@ -18,6 +18,15 @@ let condition_as_failure = function
let pp_value ppf v = Format.pp_print_string ppf (Concepts.Value.to_string v)
let value = Alcotest.testable pp_value Concepts.Value.equal
+(* the titles a relation of books holds, in order *)
+let titles relation =
+ let open Utilities.Result in
+ let* _, tuples = Protocols.Relation.read relation in
+ Ok
+ ( tuples
+ |> List.map (fun tuple -> BatMap.String.find "title" tuple.Concepts.Tuple.attributes)
+ |> List.sort compare )
+
module Storage = struct
module type CONFIGURATOR = sig
val configure : string -> Rnt.Concepts.Configuration.term
@@ -40,21 +49,13 @@ module Storage = struct
let relation conn attributes tuples =
let open Utilities.Result in
- let* value =
- SI.with_transaction conn (fun tx ->
- let* schematics = store_schema tx attributes in
- let* _ = SR.TupleSet.empty_under tx in
- let* node =
- List.fold_left
- (fun node tuple ->
- let* node = node in
- SR.TupleSet.insert tx (Concepts.Tuple.hash tuple) tuple node )
- (Ok SR.TupleSet.empty) tuples
- in
- let relation = {SR.schematics; tuples= SR.TupleSet.hash_of node} in
- let* _ = SI.store_blob tx (SR.encode relation) in
- Ok relation )
+ let description =
+ BatMap.String.of_list
+ (List.map
+ (fun a -> a, {Protocols.Schematics.domain= "string"; provenance= []})
+ attributes )
in
+ let* value = SI.with_transaction conn (fun tx -> SR.store tx description tuples) in
SR.load conn value
let with_connection f dir () =