| rev | 
   line source | 
| 
bsw/jbe@0
 | 
     1 #!/usr/bin/env lua
 | 
| 
bsw/jbe@0
 | 
     2 
 | 
| 
bsw/jbe@0
 | 
     3 member_count = 10000
 | 
| 
bsw/jbe@0
 | 
     4 area_count = 24
 | 
| 
bsw/jbe@0
 | 
     5 issue_count = 1000
 | 
| 
bsw/jbe@0
 | 
     6 policy_count = 3  -- do not change
 | 
| 
bsw/jbe@0
 | 
     7 
 | 
| 
bsw/jbe@0
 | 
     8 function write(...)
 | 
| 
bsw/jbe@0
 | 
     9   io.stdout:write(...)
 | 
| 
bsw/jbe@0
 | 
    10 end
 | 
| 
bsw/jbe@0
 | 
    11 function writeln(...)
 | 
| 
bsw/jbe@0
 | 
    12   write(...)
 | 
| 
bsw/jbe@0
 | 
    13   write("\n")
 | 
| 
bsw/jbe@0
 | 
    14 end
 | 
| 
bsw/jbe@0
 | 
    15 
 | 
| 
bsw/jbe@0
 | 
    16 math.randomseed(os.time())
 | 
| 
bsw/jbe@0
 | 
    17 
 | 
| 
bsw/jbe@0
 | 
    18 writeln('BEGIN;')
 | 
| 
bsw/jbe@0
 | 
    19 
 | 
| 
bsw/jbe@0
 | 
    20 for i = 2, member_count do
 | 
| 
bsw/jbe@0
 | 
    21   writeln('INSERT INTO "member" ("login", "name", "ident_number") VALUES (', "'testuser", i, "', 'Benutzer #", i, "', 'TEST", i, "');")
 | 
| 
bsw/jbe@0
 | 
    22 end
 | 
| 
bsw/jbe@0
 | 
    23 
 | 
| 
bsw/jbe@0
 | 
    24 for i = 1, member_count do
 | 
| 
bsw/jbe@0
 | 
    25   local is_linked = {}
 | 
| 
bsw/jbe@0
 | 
    26   while math.random(4) > 1 do
 | 
| 
bsw/jbe@0
 | 
    27     local k = math.random(member_count)
 | 
| 
bsw/jbe@0
 | 
    28     if not is_linked[k] then
 | 
| 
bsw/jbe@0
 | 
    29       local public = math.random(2) == 1 and "TRUE" or "FALSE"
 | 
| 
bsw/jbe@0
 | 
    30       writeln('INSERT INTO "contact" ("member_id", "other_member_id", "public") VALUES (', i, ", ", k, ", ", public, ");")
 | 
| 
bsw/jbe@0
 | 
    31       is_linked[k] = true
 | 
| 
bsw/jbe@0
 | 
    32     end
 | 
| 
bsw/jbe@0
 | 
    33   end
 | 
| 
bsw/jbe@0
 | 
    34 end
 | 
| 
bsw/jbe@0
 | 
    35 
 | 
| 
bsw/jbe@0
 | 
    36 for i = 2, area_count do
 | 
| 
bsw/jbe@0
 | 
    37   writeln('INSERT INTO "area" ("name") VALUES (', "'Area #", i, "');")
 | 
| 
bsw/jbe@0
 | 
    38 end
 | 
| 
bsw/jbe@0
 | 
    39 
 | 
| 
bsw/jbe@0
 | 
    40 local memberships = {}
 | 
| 
bsw/jbe@0
 | 
    41 
 | 
| 
bsw/jbe@0
 | 
    42 for i = 1, area_count do
 | 
| 
bsw/jbe@0
 | 
    43   memberships[i] = {}
 | 
| 
bsw/jbe@0
 | 
    44   for j = 1, member_count do
 | 
| 
bsw/jbe@0
 | 
    45     if math.random(4) == 1 then
 | 
| 
bsw/jbe@0
 | 
    46       memberships[i][j] = true
 | 
| 
bsw/jbe@0
 | 
    47       local autoreject = math.random(2) == 1 and "TRUE" or "FALSE"
 | 
| 
bsw/jbe@0
 | 
    48       writeln('INSERT INTO "membership" ("member_id", "area_id", "autoreject") VALUES (', j, ", ", i, ", ", autoreject, ");")
 | 
| 
bsw/jbe@0
 | 
    49     end
 | 
| 
bsw/jbe@0
 | 
    50   end
 | 
| 
bsw/jbe@0
 | 
    51 end
 | 
| 
bsw/jbe@0
 | 
    52 
 | 
| 
bsw/jbe@0
 | 
    53 do
 | 
| 
bsw/jbe@0
 | 
    54   local issue_initiative_count = {}
 | 
| 
bsw/jbe@0
 | 
    55   local initiative_draft_count = {}
 | 
| 
bsw/jbe@0
 | 
    56   local initiative_idx = 1
 | 
| 
bsw/jbe@0
 | 
    57   local draft_count = 0
 | 
| 
bsw/jbe@0
 | 
    58   for i = 1, issue_count do
 | 
| 
bsw/jbe@0
 | 
    59     local area = math.random(area_count)
 | 
| 
bsw/jbe@0
 | 
    60     writeln('INSERT INTO "issue" ("area_id", "policy_id") VALUES (', area, ", ", math.random(policy_count), ");")
 | 
| 
bsw/jbe@0
 | 
    61     issue_initiative_count[i] = 1
 | 
| 
bsw/jbe@0
 | 
    62     while math.random(3) > 1 do
 | 
| 
bsw/jbe@0
 | 
    63       issue_initiative_count[i] = issue_initiative_count[i] + 1
 | 
| 
bsw/jbe@0
 | 
    64     end
 | 
| 
bsw/jbe@0
 | 
    65     for j = 1, issue_initiative_count[i] do
 | 
| 
bsw/jbe@0
 | 
    66       writeln('INSERT INTO "initiative" ("issue_id", "name") VALUES (', i, ", 'Initiative #", initiative_idx, "');")
 | 
| 
bsw/jbe@0
 | 
    67       initiative_draft_count[i] = 1
 | 
| 
bsw/jbe@0
 | 
    68       while math.random(4) > 1 do
 | 
| 
bsw/jbe@0
 | 
    69         initiative_draft_count[i] = initiative_draft_count[i] + 1
 | 
| 
bsw/jbe@0
 | 
    70       end
 | 
| 
bsw/jbe@0
 | 
    71       local initiators = {}
 | 
| 
bsw/jbe@0
 | 
    72       local is_used = {}
 | 
| 
bsw/jbe@0
 | 
    73       repeat
 | 
| 
bsw/jbe@0
 | 
    74         local member = math.random(member_count)
 | 
| 
bsw/jbe@0
 | 
    75         if not is_used[member] then
 | 
| 
bsw/jbe@0
 | 
    76           initiators[#initiators+1] = member
 | 
| 
bsw/jbe@0
 | 
    77           is_used[member] = true
 | 
| 
bsw/jbe@0
 | 
    78         end
 | 
| 
bsw/jbe@0
 | 
    79       until math.random(2) == 1
 | 
| 
bsw/jbe@0
 | 
    80       for k = 1, initiative_draft_count[i] do
 | 
| 
bsw/jbe@0
 | 
    81         draft_count = draft_count + 1
 | 
| 
bsw/jbe@0
 | 
    82         writeln('INSERT INTO "draft" ("initiative_id", "author_id", "content") VALUES (', initiative_idx, ", ", initiators[math.random(#initiators)], ", 'Lorem ipsum... (#", draft_count, ")');")
 | 
| 
bsw/jbe@0
 | 
    83       end
 | 
| 
bsw/jbe@0
 | 
    84       for k = 1, #initiators do
 | 
| 
bsw/jbe@0
 | 
    85         local member = math.random(member_count)
 | 
| 
bsw/jbe@0
 | 
    86         writeln('INSERT INTO "initiator" ("member_id", "initiative_id") VALUES (', initiators[k], ", ", initiative_idx, ");")
 | 
| 
bsw/jbe@0
 | 
    87         if math.random(50) > 1 then
 | 
| 
bsw/jbe@0
 | 
    88           writeln('INSERT INTO "supporter" ("member_id", "initiative_id", "draft_id") VALUES (', initiators[k], ", ", initiative_idx, ", ", draft_count - math.random(initiative_draft_count[i]) + 1, ");")
 | 
| 
bsw/jbe@0
 | 
    89         end
 | 
| 
bsw/jbe@0
 | 
    90       end
 | 
| 
bsw/jbe@0
 | 
    91       local probability = math.random(99) + 1
 | 
| 
bsw/jbe@0
 | 
    92       for k = 1, member_count do
 | 
| 
bsw/jbe@0
 | 
    93         if not is_used[k] and (memberships[area][k] and math.random(probability) <= 4 or math.random(probability) == 1) then
 | 
| 
bsw/jbe@0
 | 
    94           writeln('INSERT INTO "supporter" ("member_id", "initiative_id", "draft_id") VALUES (', k, ", ", initiative_idx, ", ", draft_count - math.random(initiative_draft_count[i]) + 1, ");")
 | 
| 
bsw/jbe@0
 | 
    95         end
 | 
| 
bsw/jbe@0
 | 
    96       end
 | 
| 
bsw/jbe@0
 | 
    97       initiative_idx = initiative_idx + 1
 | 
| 
bsw/jbe@0
 | 
    98     end
 | 
| 
bsw/jbe@0
 | 
    99   end
 | 
| 
bsw/jbe@0
 | 
   100 end
 | 
| 
bsw/jbe@0
 | 
   101 
 | 
| 
bsw/jbe@0
 | 
   102 writeln('END;')
 |