@Test
public void testMatrixVector() throws Exception {

  final String shader = "#version 300 es\n"
      + "void main() {"
      + "  mat4x2 As[5];"
      + "  int x = 17;"
      + "  int y = -22;"
      + "  int z = 100;"
      + "  As[x][y][z] = 2.0;"
      + "}";
  final String expected = "#version 300 es\n"
      + "void main() {"
      + "  mat4x2 As[5];"
      + "  int x = 17;"
      + "  int y = -22;"
      + "  int z = 100;"
      + "  As[" + Constants.GLF_MAKE_IN_BOUNDS_INT + "(x, 5)]"
      + "    /* column */ [" + Constants.GLF_MAKE_IN_BOUNDS_INT + "(y, 4)]"
      + "    /* row */ [" + Constants.GLF_MAKE_IN_BOUNDS_INT + "(z, 2)] = 2.0;"
      + "}";
  final TranslationUnit tu = ParseHelper.parse(shader);
  MakeArrayAccessesInBounds.makeInBounds(tu);
  assertEquals(PrettyPrinterVisitor.prettyPrintAsString(ParseHelper.parse(expected)),
        PrettyPrinterVisitor.prettyPrintAsString(tu));
}