You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by da...@apache.org on 2020/03/03 21:51:13 UTC

[couchdb] 01/02: WIP: trying permute

This is an automated email from the ASF dual-hosted git repository.

davisp pushed a commit to branch prototype/fdb-layer-couch-views-size-tests
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit 010c88d74621f19be3f9437a8e2578e968f26b46
Author: Paul J. Davis <pa...@gmail.com>
AuthorDate: Tue Mar 3 14:55:47 2020 -0600

    WIP: trying permute
---
 src/couch_views/test/couch_views_size_test.erl | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/couch_views/test/couch_views_size_test.erl b/src/couch_views/test/couch_views_size_test.erl
index 16a6708..f442fb7 100644
--- a/src/couch_views/test/couch_views_size_test.erl
+++ b/src/couch_views/test/couch_views_size_test.erl
@@ -85,6 +85,8 @@ generate_sets() ->
 
 generate_transitions() ->
     Sets = generate_sets(),
+    %Pairs0 = [{Set1, Set2} || Set1 <- Sets, Set2 <- Sets],
+    %Pairs = lists:sublist(Pairs0, 3),
     Pairs = [{Set1, Set2} || Set1 <- Sets, Set2 <- Sets],
     lists:flatmap(fun({{N1, D1, R1} = S1, {N2, D2, R2} = S2}) ->
         lists:foldl(fun(DeltaN, DNAcc) ->
@@ -164,12 +166,12 @@ check_transition(Db, {Set1, Set2, Transition}) ->
 
     fabric2_fdb:transactional(Db, fun(TxDb) ->
         Doc = make_doc(DocId, InitJSONKVs),
-        couch_views_indexer:write_doc(TxDb, Sig, Doc, [1])
+        couch_views_fdb:write_doc(TxDb, Sig, [1], Doc)
     end),
 
     fabric2_fdb:transactional(Db, fun(TxDb) ->
         Doc = make_doc(DocId, FinalJSONKVs),
-        couch_views_indexer:write_doc(TxDb, Sig, Doc, [1])
+        couch_views_fdb:write_doc(TxDb, Sig, [1], Doc)
     end),
 
     validate_index(Db, Sig).
@@ -181,20 +183,20 @@ make_doc(DocId, []) ->
             #{
                 id => DocId,
                 deleted => true,
-                results => []
+                results => [[]]
             };
         false ->
             #{
                 id => DocId,
                 deleted => false,
-                results => []
+                results => [[]]
             }
     end;
 make_doc(DocId, Results) ->
     #{
         id => DocId,
         deleted => false,
-        results => Results
+        results => [Results]
     }.
 
 
@@ -213,7 +215,7 @@ init_set({N, D, R}, Labels) ->
 
 reduce_set({DeltaN, DeltaD, DeltaR}, {Unique, Dupes}) ->
     NewDupes = lists:sublist(Dupes, DeltaD),
-    NewUnique = lists:sublist(Unique, DeltaN),
+    NewUnique = lists:sublist(Unique, DeltaN - DeltaD),
     {NewUnique, [{Key, DeltaR} || {Key, _} <- NewDupes]}.
 
 
@@ -222,6 +224,8 @@ fill_set({N, D, R}, {Unique, Dupes}, Labels) ->
     {NewDupes, RestLabels} = fill_keys(AddDupes, Labels, Dupes),
 
     AddUnique = N - length(Unique) - length(NewDupes),
+    ?debugFmt("~n~n~p ~p ~p", [N, length(Unique), length(NewDupes)]),
+    ?debugFmt("~p ~p ~p~n", [AddUnique, RestLabels, Unique]),
     {NewUnique, _} = fill_keys(AddUnique, RestLabels, Unique),
     % Sanity assertions
     N = length(NewUnique) + length(NewDupes),
@@ -235,8 +239,10 @@ fill_set({N, D, R}, {Unique, Dupes}, Labels) ->
 
 
 fill_keys(0, Labels, Acc) ->
+    ?debugFmt("wtf?", []),
     {Acc, Labels};
 fill_keys(Count, [Label | RestLabels], Acc) when Count > 0 ->
+    ?debugFmt("WHUT: ~p", [Count]),
     fill_keys(Count - 1, RestLabels, [Label | Acc]).
 
 
@@ -249,11 +255,11 @@ unlabel({Unique, Dupes}, Bindings) ->
 
 unlabel_item(Label, Bindings) when is_atom(Label) ->
     NewBindings = maybe_bind(Label, Bindings),
-    KV = maps:get(Label, Bindings),
+    KV = maps:get(Label, NewBindings),
     {[KV], NewBindings};
 unlabel_item({Label, Count}, Bindings) when is_atom(Label), is_integer(Count) ->
     NewBindings = maybe_bind(Label, Bindings),
-    {K, _} = KV = maps:get(Label, Bindings),
+    {K, _} = KV = maps:get(Label, NewBindings),
     ToAdd = lists:map(fun(_) ->
         {K, gen_value()}
     end,  lists:seq(1, Count - 1)),