<html>
<head>
  <title>query-chooser-sk demo</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
  <script src="/res/common/js/common.js"></script>
  <script src="/res/imp/bower_components/wcstamp/src/stamp.js"></script>
  <script type="text/javascript" charset="utf-8">
    // Mock out sk.get() to return random numbers for matches.
    sk.get = function(url) {
      return new Promise(function (resolve, reject) {
        var n = Math.floor(Math.random() * 100);
        resolve('{"matches":' + n + '}');
        });
    };
  </script>
  <script src="/res/imp/bower_components/webcomponentsjs/webcomponents-lite.js"></script>
  <link rel=import href="/res/imp/bower_components/polymer/polymer.html">
  <link rel=import href="query-chooser.html">
</head>
<body>
  <h1>Query Chooser</h1>

  <query-chooser-sk id=chooser showparams='["config", "type", "test"]'></query-chooser-sk>

  <script type="text/javascript" charset="utf-8">
    var paramset = {
        "config": ["565", "8888"],
        "type": ["CPU", "GPU"],
        "units": ["ms", "bytes"],
        "test": [
          "DeferredSurfaceCopy_discardable",
          "DeferredSurfaceCopy_nonDiscardable",
          "GLInstancedArraysBench_instance",
          "GLInstancedArraysBench_one_0",
          "GLInstancedArraysBench_one_1",
          "GLInstancedArraysBench_one_2",
          "GLInstancedArraysBench_one_4",
          "GLInstancedArraysBench_one_8",
          "GLInstancedArraysBench_two_0",
          "GLInstancedArraysBench_two_1",
          "GLInstancedArraysBench_two_2",
          "GLInstancedArraysBench_two_4",
          "GLInstancedArraysBench_two_8",
          "GLVec4ScalarBench_scalar_1_stage",
          "GLVec4ScalarBench_scalar_2_stage",
                                    ],
      };
    $$$('#chooser').query.setParamSet(paramset);
  </script>
</body>
</html>
