#version 450

#extension GL_EXT_expect_assume: enable

layout (local_size_x = 8) in;

readonly buffer roblock {
  bool b;
  bvec2 bv2;
  bvec3 bv3;
  bvec4 bv4;
  int i;
  ivec2 iv2;
  ivec3 iv3;
  ivec4 iv4;
  uint ui;
  uvec2 uv2;
  uvec3 uv3;
  uvec4 uv4;
} ro;

void main() {
  int x = 0;

  if (expectEXT(ro.b, true) == true ||
      expectEXT(ro.bv2, bvec2(true, false)) == bvec2(true, false) ||
      expectEXT(ro.bv3, bvec3(true, false, true)) == bvec3(true, false, true) ||
      expectEXT(ro.bv4, bvec4(false, true, false, true)) == bvec4(false, true, false, true)) {
    x++;
  }
  if (expectEXT(ro.i, 10) == 10 ||
      expectEXT(ro.iv2, ivec2(11, -22)) == ivec2(11, -22) ||
      expectEXT(ro.iv3, ivec3(11, -22, 33)) == ivec3(11, -22, 33) ||
      expectEXT(ro.iv4, ivec4(11, -22, 33, 44)) == ivec4(11, -22, 33, 44)) {
    x++;
  }
  if (expectEXT(ro.ui, 10) == 10 ||
      expectEXT(ro.uv2, uvec2(11, 22)) == uvec2(11, 22) ||
      expectEXT(ro.uv3, uvec3(11, 22, 33)) == uvec3(11, 22, 33) ||
      expectEXT(ro.uv4, uvec4(11, 22, 33, 44)) == uvec4(11, 22, 33, 44)) {
    x++;
  }
}
