#!/usr/bin/perl

use warnings;
use strict;
use Getopt::Long;
use Cwd "abs_path";
use File::Basename;
use File::Slurper "read_text";
use Path::Tiny;
use IPC::Run 'run';

print "shape, length, query, time\n";
for (my $i = 1; $i < 20; $i += 2) {
  my $query = "[*]";
  my $field = "1" x $i;
  my $inner = int(20_000_000 / ($i+1));
  my @array = ($field)x$inner;
  my $in = join(",", @array);

  my $max_trial = 10;
  my $times = 0;
  for (my $trial = 0; $trial < $max_trial; $trial++) {
    run ["./jsonq", "-s", "/dev/stdin", $query], \$in, \my $out, or die "[ERROR] JSONQ: $?";
    foreach my $line (split /\n/, $out) {
      $line =~ /^duration \(streaming query evaluation\) = ([0-9\.]+) ms/ || next;
      $times += $1;
    }
  }
  $times /= $max_trial;
  my $length = length $in;
  print "[len $i] x $inner, $length, $query, ${times}ms\n";
}
