#!/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, query, time\n";
for (my $i = 10; $i < 100; $i += 10) {
  my $query = "[1-$i]";
  my $inner = 1_000_000;
  my $outer = 100;
  my @array = (1)x$inner;
  my $in = join(",", @array);
  $in = "[$in]";
  my @arr2d = ($in) x $outer;
  $in = join(",", @arr2d);
  $in = "[$in]";

  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;
  print "[${outer}][${inner}], $query, ${times}ms\n";
}
