use glam::{
dvec2, dvec3, dvec4, ivec2, ivec3, ivec4, swizzles::*, uvec2, uvec3, uvec4, vec2, vec3, vec3a,
vec4,
};
#[test]
fn test_vec4_swizzles() {
let v = vec4(1_f32, 2_f32, 3_f32, 4_f32);
assert_eq!(v, v.xyzw());
assert_eq!(v.xxxx(), vec4(1_f32, 1_f32, 1_f32, 1_f32));
assert_eq!(v.xxxy(), vec4(1_f32, 1_f32, 1_f32, 2_f32));
assert_eq!(v.xxxz(), vec4(1_f32, 1_f32, 1_f32, 3_f32));
assert_eq!(v.xxxw(), vec4(1_f32, 1_f32, 1_f32, 4_f32));
assert_eq!(v.xxyx(), vec4(1_f32, 1_f32, 2_f32, 1_f32));
assert_eq!(v.xxyy(), vec4(1_f32, 1_f32, 2_f32, 2_f32));
assert_eq!(v.xxyz(), vec4(1_f32, 1_f32, 2_f32, 3_f32));
assert_eq!(v.xxyw(), vec4(1_f32, 1_f32, 2_f32, 4_f32));
assert_eq!(v.xxzx(), vec4(1_f32, 1_f32, 3_f32, 1_f32));
assert_eq!(v.xxzy(), vec4(1_f32, 1_f32, 3_f32, 2_f32));
assert_eq!(v.xxzz(), vec4(1_f32, 1_f32, 3_f32, 3_f32));
assert_eq!(v.xxzw(), vec4(1_f32, 1_f32, 3_f32, 4_f32));
assert_eq!(v.xxwx(), vec4(1_f32, 1_f32, 4_f32, 1_f32));
assert_eq!(v.xxwy(), vec4(1_f32, 1_f32, 4_f32, 2_f32));
assert_eq!(v.xxwz(), vec4(1_f32, 1_f32, 4_f32, 3_f32));
assert_eq!(v.xxww(), vec4(1_f32, 1_f32, 4_f32, 4_f32));
assert_eq!(v.xyxx(), vec4(1_f32, 2_f32, 1_f32, 1_f32));
assert_eq!(v.xyxy(), vec4(1_f32, 2_f32, 1_f32, 2_f32));
assert_eq!(v.xyxz(), vec4(1_f32, 2_f32, 1_f32, 3_f32));
assert_eq!(v.xyxw(), vec4(1_f32, 2_f32, 1_f32, 4_f32));
assert_eq!(v.xyyx(), vec4(1_f32, 2_f32, 2_f32, 1_f32));
assert_eq!(v.xyyy(), vec4(1_f32, 2_f32, 2_f32, 2_f32));
assert_eq!(v.xyyz(), vec4(1_f32, 2_f32, 2_f32, 3_f32));
assert_eq!(v.xyyw(), vec4(1_f32, 2_f32, 2_f32, 4_f32));
assert_eq!(v.xyzx(), vec4(1_f32, 2_f32, 3_f32, 1_f32));
assert_eq!(v.xyzy(), vec4(1_f32, 2_f32, 3_f32, 2_f32));
assert_eq!(v.xyzz(), vec4(1_f32, 2_f32, 3_f32, 3_f32));
assert_eq!(v.xywx(), vec4(1_f32, 2_f32, 4_f32, 1_f32));
assert_eq!(v.xywy(), vec4(1_f32, 2_f32, 4_f32, 2_f32));
assert_eq!(v.xywz(), vec4(1_f32, 2_f32, 4_f32, 3_f32));
assert_eq!(v.xyww(), vec4(1_f32, 2_f32, 4_f32, 4_f32));
assert_eq!(v.xzxx(), vec4(1_f32, 3_f32, 1_f32, 1_f32));
assert_eq!(v.xzxy(), vec4(1_f32, 3_f32, 1_f32, 2_f32));
assert_eq!(v.xzxz(), vec4(1_f32, 3_f32, 1_f32, 3_f32));
assert_eq!(v.xzxw(), vec4(1_f32, 3_f32, 1_f32, 4_f32));
assert_eq!(v.xzyx(), vec4(1_f32, 3_f32, 2_f32, 1_f32));
assert_eq!(v.xzyy(), vec4(1_f32, 3_f32, 2_f32, 2_f32));
assert_eq!(v.xzyz(), vec4(1_f32, 3_f32, 2_f32, 3_f32));
assert_eq!(v.xzyw(), vec4(1_f32, 3_f32, 2_f32, 4_f32));
assert_eq!(v.xzzx(), vec4(1_f32, 3_f32, 3_f32, 1_f32));
assert_eq!(v.xzzy(), vec4(1_f32, 3_f32, 3_f32, 2_f32));
assert_eq!(v.xzzz(), vec4(1_f32, 3_f32, 3_f32, 3_f32));
assert_eq!(v.xzzw(), vec4(1_f32, 3_f32, 3_f32, 4_f32));
assert_eq!(v.xzwx(), vec4(1_f32, 3_f32, 4_f32, 1_f32));
assert_eq!(v.xzwy(), vec4(1_f32, 3_f32, 4_f32, 2_f32));
assert_eq!(v.xzwz(), vec4(1_f32, 3_f32, 4_f32, 3_f32));
assert_eq!(v.xzww(), vec4(1_f32, 3_f32, 4_f32, 4_f32));
assert_eq!(v.xwxx(), vec4(1_f32, 4_f32, 1_f32, 1_f32));
assert_eq!(v.xwxy(), vec4(1_f32, 4_f32, 1_f32, 2_f32));
assert_eq!(v.xwxz(), vec4(1_f32, 4_f32, 1_f32, 3_f32));
assert_eq!(v.xwxw(), vec4(1_f32, 4_f32, 1_f32, 4_f32));
assert_eq!(v.xwyx(), vec4(1_f32, 4_f32, 2_f32, 1_f32));
assert_eq!(v.xwyy(), vec4(1_f32, 4_f32, 2_f32, 2_f32));
assert_eq!(v.xwyz(), vec4(1_f32, 4_f32, 2_f32, 3_f32));
assert_eq!(v.xwyw(), vec4(1_f32, 4_f32, 2_f32, 4_f32));
assert_eq!(v.xwzx(), vec4(1_f32, 4_f32, 3_f32, 1_f32));
assert_eq!(v.xwzy(), vec4(1_f32, 4_f32, 3_f32, 2_f32));
assert_eq!(v.xwzz(), vec4(1_f32, 4_f32, 3_f32, 3_f32));
assert_eq!(v.xwzw(), vec4(1_f32, 4_f32, 3_f32, 4_f32));
assert_eq!(v.xwwx(), vec4(1_f32, 4_f32, 4_f32, 1_f32));
assert_eq!(v.xwwy(), vec4(1_f32, 4_f32, 4_f32, 2_f32));
assert_eq!(v.xwwz(), vec4(1_f32, 4_f32, 4_f32, 3_f32));
assert_eq!(v.xwww(), vec4(1_f32, 4_f32, 4_f32, 4_f32));
assert_eq!(v.yxxx(), vec4(2_f32, 1_f32, 1_f32, 1_f32));
assert_eq!(v.yxxy(), vec4(2_f32, 1_f32, 1_f32, 2_f32));
assert_eq!(v.yxxz(), vec4(2_f32, 1_f32, 1_f32, 3_f32));
assert_eq!(v.yxxw(), vec4(2_f32, 1_f32, 1_f32, 4_f32));
assert_eq!(v.yxyx(), vec4(2_f32, 1_f32, 2_f32, 1_f32));
assert_eq!(v.yxyy(), vec4(2_f32, 1_f32, 2_f32, 2_f32));
assert_eq!(v.yxyz(), vec4(2_f32, 1_f32, 2_f32, 3_f32));
assert_eq!(v.yxyw(), vec4(2_f32, 1_f32, 2_f32, 4_f32));
assert_eq!(v.yxzx(), vec4(2_f32, 1_f32, 3_f32, 1_f32));
assert_eq!(v.yxzy(), vec4(2_f32, 1_f32, 3_f32, 2_f32));
assert_eq!(v.yxzz(), vec4(2_f32, 1_f32, 3_f32, 3_f32));
assert_eq!(v.yxzw(), vec4(2_f32, 1_f32, 3_f32, 4_f32));
assert_eq!(v.yxwx(), vec4(2_f32, 1_f32, 4_f32, 1_f32));
assert_eq!(v.yxwy(), vec4(2_f32, 1_f32, 4_f32, 2_f32));
assert_eq!(v.yxwz(), vec4(2_f32, 1_f32, 4_f32, 3_f32));
assert_eq!(v.yxww(), vec4(2_f32, 1_f32, 4_f32, 4_f32));
assert_eq!(v.yyxx(), vec4(2_f32, 2_f32, 1_f32, 1_f32));
assert_eq!(v.yyxy(), vec4(2_f32, 2_f32, 1_f32, 2_f32));
assert_eq!(v.yyxz(), vec4(2_f32, 2_f32, 1_f32, 3_f32));
assert_eq!(v.yyxw(), vec4(2_f32, 2_f32, 1_f32, 4_f32));
assert_eq!(v.yyyx(), vec4(2_f32, 2_f32, 2_f32, 1_f32));
assert_eq!(v.yyyy(), vec4(2_f32, 2_f32, 2_f32, 2_f32));
assert_eq!(v.yyyz(), vec4(2_f32, 2_f32, 2_f32, 3_f32));
assert_eq!(v.yyyw(), vec4(2_f32, 2_f32, 2_f32, 4_f32));
assert_eq!(v.yyzx(), vec4(2_f32, 2_f32, 3_f32, 1_f32));
assert_eq!(v.yyzy(), vec4(2_f32, 2_f32, 3_f32, 2_f32));
assert_eq!(v.yyzz(), vec4(2_f32, 2_f32, 3_f32, 3_f32));
assert_eq!(v.yyzw(), vec4(2_f32, 2_f32, 3_f32, 4_f32));
assert_eq!(v.yywx(), vec4(2_f32, 2_f32, 4_f32, 1_f32));
assert_eq!(v.yywy(), vec4(2_f32, 2_f32, 4_f32, 2_f32));
assert_eq!(v.yywz(), vec4(2_f32, 2_f32, 4_f32, 3_f32));
assert_eq!(v.yyww(), vec4(2_f32, 2_f32, 4_f32, 4_f32));
assert_eq!(v.yzxx(), vec4(2_f32, 3_f32, 1_f32, 1_f32));
assert_eq!(v.yzxy(), vec4(2_f32, 3_f32, 1_f32, 2_f32));
assert_eq!(v.yzxz(), vec4(2_f32, 3_f32, 1_f32, 3_f32));
assert_eq!(v.yzxw(), vec4(2_f32, 3_f32, 1_f32, 4_f32));
assert_eq!(v.yzyx(), vec4(2_f32, 3_f32, 2_f32, 1_f32));
assert_eq!(v.yzyy(), vec4(2_f32, 3_f32, 2_f32, 2_f32));
assert_eq!(v.yzyz(), vec4(2_f32, 3_f32, 2_f32, 3_f32));
assert_eq!(v.yzyw(), vec4(2_f32, 3_f32, 2_f32, 4_f32));
assert_eq!(v.yzzx(), vec4(2_f32, 3_f32, 3_f32, 1_f32));
assert_eq!(v.yzzy(), vec4(2_f32, 3_f32, 3_f32, 2_f32));
assert_eq!(v.yzzz(), vec4(2_f32, 3_f32, 3_f32, 3_f32));
assert_eq!(v.yzzw(), vec4(2_f32, 3_f32, 3_f32, 4_f32));
assert_eq!(v.yzwx(), vec4(2_f32, 3_f32, 4_f32, 1_f32));
assert_eq!(v.yzwy(), vec4(2_f32, 3_f32, 4_f32, 2_f32));
assert_eq!(v.yzwz(), vec4(2_f32, 3_f32, 4_f32, 3_f32));
assert_eq!(v.yzww(), vec4(2_f32, 3_f32, 4_f32, 4_f32));
assert_eq!(v.ywxx(), vec4(2_f32, 4_f32, 1_f32, 1_f32));
assert_eq!(v.ywxy(), vec4(2_f32, 4_f32, 1_f32, 2_f32));
assert_eq!(v.ywxz(), vec4(2_f32, 4_f32, 1_f32, 3_f32));
assert_eq!(v.ywxw(), vec4(2_f32, 4_f32, 1_f32, 4_f32));
assert_eq!(v.ywyx(), vec4(2_f32, 4_f32, 2_f32, 1_f32));
assert_eq!(v.ywyy(), vec4(2_f32, 4_f32, 2_f32, 2_f32));
assert_eq!(v.ywyz(), vec4(2_f32, 4_f32, 2_f32, 3_f32));
assert_eq!(v.ywyw(), vec4(2_f32, 4_f32, 2_f32, 4_f32));
assert_eq!(v.ywzx(), vec4(2_f32, 4_f32, 3_f32, 1_f32));
assert_eq!(v.ywzy(), vec4(2_f32, 4_f32, 3_f32, 2_f32));
assert_eq!(v.ywzz(), vec4(2_f32, 4_f32, 3_f32, 3_f32));
assert_eq!(v.ywzw(), vec4(2_f32, 4_f32, 3_f32, 4_f32));
assert_eq!(v.ywwx(), vec4(2_f32, 4_f32, 4_f32, 1_f32));
assert_eq!(v.ywwy(), vec4(2_f32, 4_f32, 4_f32, 2_f32));
assert_eq!(v.ywwz(), vec4(2_f32, 4_f32, 4_f32, 3_f32));
assert_eq!(v.ywww(), vec4(2_f32, 4_f32, 4_f32, 4_f32));
assert_eq!(v.zxxx(), vec4(3_f32, 1_f32, 1_f32, 1_f32));
assert_eq!(v.zxxy(), vec4(3_f32, 1_f32, 1_f32, 2_f32));
assert_eq!(v.zxxz(), vec4(3_f32, 1_f32, 1_f32, 3_f32));
assert_eq!(v.zxxw(), vec4(3_f32, 1_f32, 1_f32, 4_f32));
assert_eq!(v.zxyx(), vec4(3_f32, 1_f32, 2_f32, 1_f32));
assert_eq!(v.zxyy(), vec4(3_f32, 1_f32, 2_f32, 2_f32));
assert_eq!(v.zxyz(), vec4(3_f32, 1_f32, 2_f32, 3_f32));
assert_eq!(v.zxyw(), vec4(3_f32, 1_f32, 2_f32, 4_f32));
assert_eq!(v.zxzx(), vec4(3_f32, 1_f32, 3_f32, 1_f32));
assert_eq!(v.zxzy(), vec4(3_f32, 1_f32, 3_f32, 2_f32));
assert_eq!(v.zxzz(), vec4(3_f32, 1_f32, 3_f32, 3_f32));
assert_eq!(v.zxzw(), vec4(3_f32, 1_f32, 3_f32, 4_f32));
assert_eq!(v.zxwx(), vec4(3_f32, 1_f32, 4_f32, 1_f32));
assert_eq!(v.zxwy(), vec4(3_f32, 1_f32, 4_f32, 2_f32));
assert_eq!(v.zxwz(), vec4(3_f32, 1_f32, 4_f32, 3_f32));
assert_eq!(v.zxww(), vec4(3_f32, 1_f32, 4_f32, 4_f32));
assert_eq!(v.zyxx(), vec4(3_f32, 2_f32, 1_f32, 1_f32));
assert_eq!(v.zyxy(), vec4(3_f32, 2_f32, 1_f32, 2_f32));
assert_eq!(v.zyxz(), vec4(3_f32, 2_f32, 1_f32, 3_f32));
assert_eq!(v.zyxw(), vec4(3_f32, 2_f32, 1_f32, 4_f32));
assert_eq!(v.zyyx(), vec4(3_f32, 2_f32, 2_f32, 1_f32));
assert_eq!(v.zyyy(), vec4(3_f32, 2_f32, 2_f32, 2_f32));
assert_eq!(v.zyyz(), vec4(3_f32, 2_f32, 2_f32, 3_f32));
assert_eq!(v.zyyw(), vec4(3_f32, 2_f32, 2_f32, 4_f32));
assert_eq!(v.zyzx(), vec4(3_f32, 2_f32, 3_f32, 1_f32));
assert_eq!(v.zyzy(), vec4(3_f32, 2_f32, 3_f32, 2_f32));
assert_eq!(v.zyzz(), vec4(3_f32, 2_f32, 3_f32, 3_f32));
assert_eq!(v.zyzw(), vec4(3_f32, 2_f32, 3_f32, 4_f32));
assert_eq!(v.zywx(), vec4(3_f32, 2_f32, 4_f32, 1_f32));
assert_eq!(v.zywy(), vec4(3_f32, 2_f32, 4_f32, 2_f32));
assert_eq!(v.zywz(), vec4(3_f32, 2_f32, 4_f32, 3_f32));
assert_eq!(v.zyww(), vec4(3_f32, 2_f32, 4_f32, 4_f32));
assert_eq!(v.zzxx(), vec4(3_f32, 3_f32, 1_f32, 1_f32));
assert_eq!(v.zzxy(), vec4(3_f32, 3_f32, 1_f32, 2_f32));
assert_eq!(v.zzxz(), vec4(3_f32, 3_f32, 1_f32, 3_f32));
assert_eq!(v.zzxw(), vec4(3_f32, 3_f32, 1_f32, 4_f32));
assert_eq!(v.zzyx(), vec4(3_f32, 3_f32, 2_f32, 1_f32));
assert_eq!(v.zzyy(), vec4(3_f32, 3_f32, 2_f32, 2_f32));
assert_eq!(v.zzyz(), vec4(3_f32, 3_f32, 2_f32, 3_f32));
assert_eq!(v.zzyw(), vec4(3_f32, 3_f32, 2_f32, 4_f32));
assert_eq!(v.zzzx(), vec4(3_f32, 3_f32, 3_f32, 1_f32));
assert_eq!(v.zzzy(), vec4(3_f32, 3_f32, 3_f32, 2_f32));
assert_eq!(v.zzzz(), vec4(3_f32, 3_f32, 3_f32, 3_f32));
assert_eq!(v.zzzw(), vec4(3_f32, 3_f32, 3_f32, 4_f32));
assert_eq!(v.zzwx(), vec4(3_f32, 3_f32, 4_f32, 1_f32));
assert_eq!(v.zzwy(), vec4(3_f32, 3_f32, 4_f32, 2_f32));
assert_eq!(v.zzwz(), vec4(3_f32, 3_f32, 4_f32, 3_f32));
assert_eq!(v.zzww(), vec4(3_f32, 3_f32, 4_f32, 4_f32));
assert_eq!(v.zwxx(), vec4(3_f32, 4_f32, 1_f32, 1_f32));
assert_eq!(v.zwxy(), vec4(3_f32, 4_f32, 1_f32, 2_f32));
assert_eq!(v.zwxz(), vec4(3_f32, 4_f32, 1_f32, 3_f32));
assert_eq!(v.zwxw(), vec4(3_f32, 4_f32, 1_f32, 4_f32));
assert_eq!(v.zwyx(), vec4(3_f32, 4_f32, 2_f32, 1_f32));
assert_eq!(v.zwyy(), vec4(3_f32, 4_f32, 2_f32, 2_f32));
assert_eq!(v.zwyz(), vec4(3_f32, 4_f32, 2_f32, 3_f32));
assert_eq!(v.zwyw(), vec4(3_f32, 4_f32, 2_f32, 4_f32));
assert_eq!(v.zwzx(), vec4(3_f32, 4_f32, 3_f32, 1_f32));
assert_eq!(v.zwzy(), vec4(3_f32, 4_f32, 3_f32, 2_f32));
assert_eq!(v.zwzz(), vec4(3_f32, 4_f32, 3_f32, 3_f32));
assert_eq!(v.zwzw(), vec4(3_f32, 4_f32, 3_f32, 4_f32));
assert_eq!(v.zwwx(), vec4(3_f32, 4_f32, 4_f32, 1_f32));
assert_eq!(v.zwwy(), vec4(3_f32, 4_f32, 4_f32, 2_f32));
assert_eq!(v.zwwz(), vec4(3_f32, 4_f32, 4_f32, 3_f32));
assert_eq!(v.zwww(), vec4(3_f32, 4_f32, 4_f32, 4_f32));
assert_eq!(v.wxxx(), vec4(4_f32, 1_f32, 1_f32, 1_f32));
assert_eq!(v.wxxy(), vec4(4_f32, 1_f32, 1_f32, 2_f32));
assert_eq!(v.wxxz(), vec4(4_f32, 1_f32, 1_f32, 3_f32));
assert_eq!(v.wxxw(), vec4(4_f32, 1_f32, 1_f32, 4_f32));
assert_eq!(v.wxyx(), vec4(4_f32, 1_f32, 2_f32, 1_f32));
assert_eq!(v.wxyy(), vec4(4_f32, 1_f32, 2_f32, 2_f32));
assert_eq!(v.wxyz(), vec4(4_f32, 1_f32, 2_f32, 3_f32));
assert_eq!(v.wxyw(), vec4(4_f32, 1_f32, 2_f32, 4_f32));
assert_eq!(v.wxzx(), vec4(4_f32, 1_f32, 3_f32, 1_f32));
assert_eq!(v.wxzy(), vec4(4_f32, 1_f32, 3_f32, 2_f32));
assert_eq!(v.wxzz(), vec4(4_f32, 1_f32, 3_f32, 3_f32));
assert_eq!(v.wxzw(), vec4(4_f32, 1_f32, 3_f32, 4_f32));
assert_eq!(v.wxwx(), vec4(4_f32, 1_f32, 4_f32, 1_f32));
assert_eq!(v.wxwy(), vec4(4_f32, 1_f32, 4_f32, 2_f32));
assert_eq!(v.wxwz(), vec4(4_f32, 1_f32, 4_f32, 3_f32));
assert_eq!(v.wxww(), vec4(4_f32, 1_f32, 4_f32, 4_f32));
assert_eq!(v.wyxx(), vec4(4_f32, 2_f32, 1_f32, 1_f32));
assert_eq!(v.wyxy(), vec4(4_f32, 2_f32, 1_f32, 2_f32));
assert_eq!(v.wyxz(), vec4(4_f32, 2_f32, 1_f32, 3_f32));
assert_eq!(v.wyxw(), vec4(4_f32, 2_f32, 1_f32, 4_f32));
assert_eq!(v.wyyx(), vec4(4_f32, 2_f32, 2_f32, 1_f32));
assert_eq!(v.wyyy(), vec4(4_f32, 2_f32, 2_f32, 2_f32));
assert_eq!(v.wyyz(), vec4(4_f32, 2_f32, 2_f32, 3_f32));
assert_eq!(v.wyyw(), vec4(4_f32, 2_f32, 2_f32, 4_f32));
assert_eq!(v.wyzx(), vec4(4_f32, 2_f32, 3_f32, 1_f32));
assert_eq!(v.wyzy(), vec4(4_f32, 2_f32, 3_f32, 2_f32));
assert_eq!(v.wyzz(), vec4(4_f32, 2_f32, 3_f32, 3_f32));
assert_eq!(v.wyzw(), vec4(4_f32, 2_f32, 3_f32, 4_f32));
assert_eq!(v.wywx(), vec4(4_f32, 2_f32, 4_f32, 1_f32));
assert_eq!(v.wywy(), vec4(4_f32, 2_f32, 4_f32, 2_f32));
assert_eq!(v.wywz(), vec4(4_f32, 2_f32, 4_f32, 3_f32));
assert_eq!(v.wyww(), vec4(4_f32, 2_f32, 4_f32, 4_f32));
assert_eq!(v.wzxx(), vec4(4_f32, 3_f32, 1_f32, 1_f32));
assert_eq!(v.wzxy(), vec4(4_f32, 3_f32, 1_f32, 2_f32));
assert_eq!(v.wzxz(), vec4(4_f32, 3_f32, 1_f32, 3_f32));
assert_eq!(v.wzxw(), vec4(4_f32, 3_f32, 1_f32, 4_f32));
assert_eq!(v.wzyx(), vec4(4_f32, 3_f32, 2_f32, 1_f32));
assert_eq!(v.wzyy(), vec4(4_f32, 3_f32, 2_f32, 2_f32));
assert_eq!(v.wzyz(), vec4(4_f32, 3_f32, 2_f32, 3_f32));
assert_eq!(v.wzyw(), vec4(4_f32, 3_f32, 2_f32, 4_f32));
assert_eq!(v.wzzx(), vec4(4_f32, 3_f32, 3_f32, 1_f32));
assert_eq!(v.wzzy(), vec4(4_f32, 3_f32, 3_f32, 2_f32));
assert_eq!(v.wzzz(), vec4(4_f32, 3_f32, 3_f32, 3_f32));
assert_eq!(v.wzzw(), vec4(4_f32, 3_f32, 3_f32, 4_f32));
assert_eq!(v.wzwx(), vec4(4_f32, 3_f32, 4_f32, 1_f32));
assert_eq!(v.wzwy(), vec4(4_f32, 3_f32, 4_f32, 2_f32));
assert_eq!(v.wzwz(), vec4(4_f32, 3_f32, 4_f32, 3_f32));
assert_eq!(v.wzww(), vec4(4_f32, 3_f32, 4_f32, 4_f32));
assert_eq!(v.wwxx(), vec4(4_f32, 4_f32, 1_f32, 1_f32));
assert_eq!(v.wwxy(), vec4(4_f32, 4_f32, 1_f32, 2_f32));
assert_eq!(v.wwxz(), vec4(4_f32, 4_f32, 1_f32, 3_f32));
assert_eq!(v.wwxw(), vec4(4_f32, 4_f32, 1_f32, 4_f32));
assert_eq!(v.wwyx(), vec4(4_f32, 4_f32, 2_f32, 1_f32));
assert_eq!(v.wwyy(), vec4(4_f32, 4_f32, 2_f32, 2_f32));
assert_eq!(v.wwyz(), vec4(4_f32, 4_f32, 2_f32, 3_f32));
assert_eq!(v.wwyw(), vec4(4_f32, 4_f32, 2_f32, 4_f32));
assert_eq!(v.wwzx(), vec4(4_f32, 4_f32, 3_f32, 1_f32));
assert_eq!(v.wwzy(), vec4(4_f32, 4_f32, 3_f32, 2_f32));
assert_eq!(v.wwzz(), vec4(4_f32, 4_f32, 3_f32, 3_f32));
assert_eq!(v.wwzw(), vec4(4_f32, 4_f32, 3_f32, 4_f32));
assert_eq!(v.wwwx(), vec4(4_f32, 4_f32, 4_f32, 1_f32));
assert_eq!(v.wwwy(), vec4(4_f32, 4_f32, 4_f32, 2_f32));
assert_eq!(v.wwwz(), vec4(4_f32, 4_f32, 4_f32, 3_f32));
assert_eq!(v.wwww(), vec4(4_f32, 4_f32, 4_f32, 4_f32));
assert_eq!(v.xxx(), vec3(1_f32, 1_f32, 1_f32));
assert_eq!(v.xxy(), vec3(1_f32, 1_f32, 2_f32));
assert_eq!(v.xxz(), vec3(1_f32, 1_f32, 3_f32));
assert_eq!(v.xxw(), vec3(1_f32, 1_f32, 4_f32));
assert_eq!(v.xyx(), vec3(1_f32, 2_f32, 1_f32));
assert_eq!(v.xyy(), vec3(1_f32, 2_f32, 2_f32));
assert_eq!(v.xyz(), vec3(1_f32, 2_f32, 3_f32));
assert_eq!(v.xyw(), vec3(1_f32, 2_f32, 4_f32));
assert_eq!(v.xzx(), vec3(1_f32, 3_f32, 1_f32));
assert_eq!(v.xzy(), vec3(1_f32, 3_f32, 2_f32));
assert_eq!(v.xzz(), vec3(1_f32, 3_f32, 3_f32));
assert_eq!(v.xzw(), vec3(1_f32, 3_f32, 4_f32));
assert_eq!(v.xwx(), vec3(1_f32, 4_f32, 1_f32));
assert_eq!(v.xwy(), vec3(1_f32, 4_f32, 2_f32));
assert_eq!(v.xwz(), vec3(1_f32, 4_f32, 3_f32));
assert_eq!(v.xww(), vec3(1_f32, 4_f32, 4_f32));
assert_eq!(v.yxx(), vec3(2_f32, 1_f32, 1_f32));
assert_eq!(v.yxy(), vec3(2_f32, 1_f32, 2_f32));
assert_eq!(v.yxz(), vec3(2_f32, 1_f32, 3_f32));
assert_eq!(v.yxw(), vec3(2_f32, 1_f32, 4_f32));
assert_eq!(v.yyx(), vec3(2_f32, 2_f32, 1_f32));
assert_eq!(v.yyy(), vec3(2_f32, 2_f32, 2_f32));
assert_eq!(v.yyz(), vec3(2_f32, 2_f32, 3_f32));
assert_eq!(v.yyw(), vec3(2_f32, 2_f32, 4_f32));
assert_eq!(v.yzx(), vec3(2_f32, 3_f32, 1_f32));
assert_eq!(v.yzy(), vec3(2_f32, 3_f32, 2_f32));
assert_eq!(v.yzz(), vec3(2_f32, 3_f32, 3_f32));
assert_eq!(v.yzw(), vec3(2_f32, 3_f32, 4_f32));
assert_eq!(v.ywx(), vec3(2_f32, 4_f32, 1_f32));
assert_eq!(v.ywy(), vec3(2_f32, 4_f32, 2_f32));
assert_eq!(v.ywz(), vec3(2_f32, 4_f32, 3_f32));
assert_eq!(v.yww(), vec3(2_f32, 4_f32, 4_f32));
assert_eq!(v.zxx(), vec3(3_f32, 1_f32, 1_f32));
assert_eq!(v.zxy(), vec3(3_f32, 1_f32, 2_f32));
assert_eq!(v.zxz(), vec3(3_f32, 1_f32, 3_f32));
assert_eq!(v.zxw(), vec3(3_f32, 1_f32, 4_f32));
assert_eq!(v.zyx(), vec3(3_f32, 2_f32, 1_f32));
assert_eq!(v.zyy(), vec3(3_f32, 2_f32, 2_f32));
assert_eq!(v.zyz(), vec3(3_f32, 2_f32, 3_f32));
assert_eq!(v.zyw(), vec3(3_f32, 2_f32, 4_f32));
assert_eq!(v.zzx(), vec3(3_f32, 3_f32, 1_f32));
assert_eq!(v.zzy(), vec3(3_f32, 3_f32, 2_f32));
assert_eq!(v.zzz(), vec3(3_f32, 3_f32, 3_f32));
assert_eq!(v.zzw(), vec3(3_f32, 3_f32, 4_f32));
assert_eq!(v.zwx(), vec3(3_f32, 4_f32, 1_f32));
assert_eq!(v.zwy(), vec3(3_f32, 4_f32, 2_f32));
assert_eq!(v.zwz(), vec3(3_f32, 4_f32, 3_f32));
assert_eq!(v.zww(), vec3(3_f32, 4_f32, 4_f32));
assert_eq!(v.wxx(), vec3(4_f32, 1_f32, 1_f32));
assert_eq!(v.wxy(), vec3(4_f32, 1_f32, 2_f32));
assert_eq!(v.wxz(), vec3(4_f32, 1_f32, 3_f32));
assert_eq!(v.wxw(), vec3(4_f32, 1_f32, 4_f32));
assert_eq!(v.wyx(), vec3(4_f32, 2_f32, 1_f32));
assert_eq!(v.wyy(), vec3(4_f32, 2_f32, 2_f32));
assert_eq!(v.wyz(), vec3(4_f32, 2_f32, 3_f32));
assert_eq!(v.wyw(), vec3(4_f32, 2_f32, 4_f32));
assert_eq!(v.wzx(), vec3(4_f32, 3_f32, 1_f32));
assert_eq!(v.wzy(), vec3(4_f32, 3_f32, 2_f32));
assert_eq!(v.wzz(), vec3(4_f32, 3_f32, 3_f32));
assert_eq!(v.wzw(), vec3(4_f32, 3_f32, 4_f32));
assert_eq!(v.wwx(), vec3(4_f32, 4_f32, 1_f32));
assert_eq!(v.wwy(), vec3(4_f32, 4_f32, 2_f32));
assert_eq!(v.wwz(), vec3(4_f32, 4_f32, 3_f32));
assert_eq!(v.www(), vec3(4_f32, 4_f32, 4_f32));
assert_eq!(v.xx(), vec2(1_f32, 1_f32));
assert_eq!(v.xy(), vec2(1_f32, 2_f32));
assert_eq!(v.xz(), vec2(1_f32, 3_f32));
assert_eq!(v.xw(), vec2(1_f32, 4_f32));
assert_eq!(v.yx(), vec2(2_f32, 1_f32));
assert_eq!(v.yy(), vec2(2_f32, 2_f32));
assert_eq!(v.yz(), vec2(2_f32, 3_f32));
assert_eq!(v.yw(), vec2(2_f32, 4_f32));
assert_eq!(v.zx(), vec2(3_f32, 1_f32));
assert_eq!(v.zy(), vec2(3_f32, 2_f32));
assert_eq!(v.zz(), vec2(3_f32, 3_f32));
assert_eq!(v.zw(), vec2(3_f32, 4_f32));
assert_eq!(v.wx(), vec2(4_f32, 1_f32));
assert_eq!(v.wy(), vec2(4_f32, 2_f32));
assert_eq!(v.wz(), vec2(4_f32, 3_f32));
assert_eq!(v.ww(), vec2(4_f32, 4_f32));
}
#[test]
fn test_vec3a_swizzles() {
let v = vec3a(1_f32, 2_f32, 3_f32);
assert_eq!(v, v.xyz());
assert_eq!(v.xxxx(), vec4(1_f32, 1_f32, 1_f32, 1_f32));
assert_eq!(v.xxxy(), vec4(1_f32, 1_f32, 1_f32, 2_f32));
assert_eq!(v.xxxz(), vec4(1_f32, 1_f32, 1_f32, 3_f32));
assert_eq!(v.xxyx(), vec4(1_f32, 1_f32, 2_f32, 1_f32));
assert_eq!(v.xxyy(), vec4(1_f32, 1_f32, 2_f32, 2_f32));
assert_eq!(v.xxyz(), vec4(1_f32, 1_f32, 2_f32, 3_f32));
assert_eq!(v.xxzx(), vec4(1_f32, 1_f32, 3_f32, 1_f32));
assert_eq!(v.xxzy(), vec4(1_f32, 1_f32, 3_f32, 2_f32));
assert_eq!(v.xxzz(), vec4(1_f32, 1_f32, 3_f32, 3_f32));
assert_eq!(v.xyxx(), vec4(1_f32, 2_f32, 1_f32, 1_f32));
assert_eq!(v.xyxy(), vec4(1_f32, 2_f32, 1_f32, 2_f32));
assert_eq!(v.xyxz(), vec4(1_f32, 2_f32, 1_f32, 3_f32));
assert_eq!(v.xyyx(), vec4(1_f32, 2_f32, 2_f32, 1_f32));
assert_eq!(v.xyyy(), vec4(1_f32, 2_f32, 2_f32, 2_f32));
assert_eq!(v.xyyz(), vec4(1_f32, 2_f32, 2_f32, 3_f32));
assert_eq!(v.xyzx(), vec4(1_f32, 2_f32, 3_f32, 1_f32));
assert_eq!(v.xyzy(), vec4(1_f32, 2_f32, 3_f32, 2_f32));
assert_eq!(v.xyzz(), vec4(1_f32, 2_f32, 3_f32, 3_f32));
assert_eq!(v.xzxx(), vec4(1_f32, 3_f32, 1_f32, 1_f32));
assert_eq!(v.xzxy(), vec4(1_f32, 3_f32, 1_f32, 2_f32));
assert_eq!(v.xzxz(), vec4(1_f32, 3_f32, 1_f32, 3_f32));
assert_eq!(v.xzyx(), vec4(1_f32, 3_f32, 2_f32, 1_f32));
assert_eq!(v.xzyy(), vec4(1_f32, 3_f32, 2_f32, 2_f32));
assert_eq!(v.xzyz(), vec4(1_f32, 3_f32, 2_f32, 3_f32));
assert_eq!(v.xzzx(), vec4(1_f32, 3_f32, 3_f32, 1_f32));
assert_eq!(v.xzzy(), vec4(1_f32, 3_f32, 3_f32, 2_f32));
assert_eq!(v.xzzz(), vec4(1_f32, 3_f32, 3_f32, 3_f32));
assert_eq!(v.yxxx(), vec4(2_f32, 1_f32, 1_f32, 1_f32));
assert_eq!(v.yxxy(), vec4(2_f32, 1_f32, 1_f32, 2_f32));
assert_eq!(v.yxxz(), vec4(2_f32, 1_f32, 1_f32, 3_f32));
assert_eq!(v.yxyx(), vec4(2_f32, 1_f32, 2_f32, 1_f32));
assert_eq!(v.yxyy(), vec4(2_f32, 1_f32, 2_f32, 2_f32));
assert_eq!(v.yxyz(), vec4(2_f32, 1_f32, 2_f32, 3_f32));
assert_eq!(v.yxzx(), vec4(2_f32, 1_f32, 3_f32, 1_f32));
assert_eq!(v.yxzy(), vec4(2_f32, 1_f32, 3_f32, 2_f32));
assert_eq!(v.yxzz(), vec4(2_f32, 1_f32, 3_f32, 3_f32));
assert_eq!(v.yyxx(), vec4(2_f32, 2_f32, 1_f32, 1_f32));
assert_eq!(v.yyxy(), vec4(2_f32, 2_f32, 1_f32, 2_f32));
assert_eq!(v.yyxz(), vec4(2_f32, 2_f32, 1_f32, 3_f32));
assert_eq!(v.yyyx(), vec4(2_f32, 2_f32, 2_f32, 1_f32));
assert_eq!(v.yyyy(), vec4(2_f32, 2_f32, 2_f32, 2_f32));
assert_eq!(v.yyyz(), vec4(2_f32, 2_f32, 2_f32, 3_f32));
assert_eq!(v.yyzx(), vec4(2_f32, 2_f32, 3_f32, 1_f32));
assert_eq!(v.yyzy(), vec4(2_f32, 2_f32, 3_f32, 2_f32));
assert_eq!(v.yyzz(), vec4(2_f32, 2_f32, 3_f32, 3_f32));
assert_eq!(v.yzxx(), vec4(2_f32, 3_f32, 1_f32, 1_f32));
assert_eq!(v.yzxy(), vec4(2_f32, 3_f32, 1_f32, 2_f32));
assert_eq!(v.yzxz(), vec4(2_f32, 3_f32, 1_f32, 3_f32));
assert_eq!(v.yzyx(), vec4(2_f32, 3_f32, 2_f32, 1_f32));
assert_eq!(v.yzyy(), vec4(2_f32, 3_f32, 2_f32, 2_f32));
assert_eq!(v.yzyz(), vec4(2_f32, 3_f32, 2_f32, 3_f32));
assert_eq!(v.yzzx(), vec4(2_f32, 3_f32, 3_f32, 1_f32));
assert_eq!(v.yzzy(), vec4(2_f32, 3_f32, 3_f32, 2_f32));
assert_eq!(v.yzzz(), vec4(2_f32, 3_f32, 3_f32, 3_f32));
assert_eq!(v.zxxx(), vec4(3_f32, 1_f32, 1_f32, 1_f32));
assert_eq!(v.zxxy(), vec4(3_f32, 1_f32, 1_f32, 2_f32));
assert_eq!(v.zxxz(), vec4(3_f32, 1_f32, 1_f32, 3_f32));
assert_eq!(v.zxyx(), vec4(3_f32, 1_f32, 2_f32, 1_f32));
assert_eq!(v.zxyy(), vec4(3_f32, 1_f32, 2_f32, 2_f32));
assert_eq!(v.zxyz(), vec4(3_f32, 1_f32, 2_f32, 3_f32));
assert_eq!(v.zxzx(), vec4(3_f32, 1_f32, 3_f32, 1_f32));
assert_eq!(v.zxzy(), vec4(3_f32, 1_f32, 3_f32, 2_f32));
assert_eq!(v.zxzz(), vec4(3_f32, 1_f32, 3_f32, 3_f32));
assert_eq!(v.zyxx(), vec4(3_f32, 2_f32, 1_f32, 1_f32));
assert_eq!(v.zyxy(), vec4(3_f32, 2_f32, 1_f32, 2_f32));
assert_eq!(v.zyxz(), vec4(3_f32, 2_f32, 1_f32, 3_f32));
assert_eq!(v.zyyx(), vec4(3_f32, 2_f32, 2_f32, 1_f32));
assert_eq!(v.zyyy(), vec4(3_f32, 2_f32, 2_f32, 2_f32));
assert_eq!(v.zyyz(), vec4(3_f32, 2_f32, 2_f32, 3_f32));
assert_eq!(v.zyzx(), vec4(3_f32, 2_f32, 3_f32, 1_f32));
assert_eq!(v.zyzy(), vec4(3_f32, 2_f32, 3_f32, 2_f32));
assert_eq!(v.zyzz(), vec4(3_f32, 2_f32, 3_f32, 3_f32));
assert_eq!(v.zzxx(), vec4(3_f32, 3_f32, 1_f32, 1_f32));
assert_eq!(v.zzxy(), vec4(3_f32, 3_f32, 1_f32, 2_f32));
assert_eq!(v.zzxz(), vec4(3_f32, 3_f32, 1_f32, 3_f32));
assert_eq!(v.zzyx(), vec4(3_f32, 3_f32, 2_f32, 1_f32));
assert_eq!(v.zzyy(), vec4(3_f32, 3_f32, 2_f32, 2_f32));
assert_eq!(v.zzyz(), vec4(3_f32, 3_f32, 2_f32, 3_f32));
assert_eq!(v.zzzx(), vec4(3_f32, 3_f32, 3_f32, 1_f32));
assert_eq!(v.zzzy(), vec4(3_f32, 3_f32, 3_f32, 2_f32));
assert_eq!(v.zzzz(), vec4(3_f32, 3_f32, 3_f32, 3_f32));
assert_eq!(v.xxx(), vec3a(1_f32, 1_f32, 1_f32));
assert_eq!(v.xxy(), vec3a(1_f32, 1_f32, 2_f32));
assert_eq!(v.xxz(), vec3a(1_f32, 1_f32, 3_f32));
assert_eq!(v.xyx(), vec3a(1_f32, 2_f32, 1_f32));
assert_eq!(v.xyy(), vec3a(1_f32, 2_f32, 2_f32));
assert_eq!(v.xzx(), vec3a(1_f32, 3_f32, 1_f32));
assert_eq!(v.xzy(), vec3a(1_f32, 3_f32, 2_f32));
assert_eq!(v.xzz(), vec3a(1_f32, 3_f32, 3_f32));
assert_eq!(v.yxx(), vec3a(2_f32, 1_f32, 1_f32));
assert_eq!(v.yxy(), vec3a(2_f32, 1_f32, 2_f32));
assert_eq!(v.yxz(), vec3a(2_f32, 1_f32, 3_f32));
assert_eq!(v.yyx(), vec3a(2_f32, 2_f32, 1_f32));
assert_eq!(v.yyy(), vec3a(2_f32, 2_f32, 2_f32));
assert_eq!(v.yyz(), vec3a(2_f32, 2_f32, 3_f32));
assert_eq!(v.yzx(), vec3a(2_f32, 3_f32, 1_f32));
assert_eq!(v.yzy(), vec3a(2_f32, 3_f32, 2_f32));
assert_eq!(v.yzz(), vec3a(2_f32, 3_f32, 3_f32));
assert_eq!(v.zxx(), vec3a(3_f32, 1_f32, 1_f32));
assert_eq!(v.zxy(), vec3a(3_f32, 1_f32, 2_f32));
assert_eq!(v.zxz(), vec3a(3_f32, 1_f32, 3_f32));
assert_eq!(v.zyx(), vec3a(3_f32, 2_f32, 1_f32));
assert_eq!(v.zyy(), vec3a(3_f32, 2_f32, 2_f32));
assert_eq!(v.zyz(), vec3a(3_f32, 2_f32, 3_f32));
assert_eq!(v.zzx(), vec3a(3_f32, 3_f32, 1_f32));
assert_eq!(v.zzy(), vec3a(3_f32, 3_f32, 2_f32));
assert_eq!(v.zzz(), vec3a(3_f32, 3_f32, 3_f32));
assert_eq!(v.xx(), vec2(1_f32, 1_f32));
assert_eq!(v.xy(), vec2(1_f32, 2_f32));
assert_eq!(v.xz(), vec2(1_f32, 3_f32));
assert_eq!(v.yx(), vec2(2_f32, 1_f32));
assert_eq!(v.yy(), vec2(2_f32, 2_f32));
assert_eq!(v.yz(), vec2(2_f32, 3_f32));
assert_eq!(v.zx(), vec2(3_f32, 1_f32));
assert_eq!(v.zy(), vec2(3_f32, 2_f32));
assert_eq!(v.zz(), vec2(3_f32, 3_f32));
}
#[test]
fn test_vec3_swizzles() {
let v = vec3(1_f32, 2_f32, 3_f32);
assert_eq!(v, v.xyz());
assert_eq!(v.xxxx(), vec4(1_f32, 1_f32, 1_f32, 1_f32));
assert_eq!(v.xxxy(), vec4(1_f32, 1_f32, 1_f32, 2_f32));
assert_eq!(v.xxxz(), vec4(1_f32, 1_f32, 1_f32, 3_f32));
assert_eq!(v.xxyx(), vec4(1_f32, 1_f32, 2_f32, 1_f32));
assert_eq!(v.xxyy(), vec4(1_f32, 1_f32, 2_f32, 2_f32));
assert_eq!(v.xxyz(), vec4(1_f32, 1_f32, 2_f32, 3_f32));
assert_eq!(v.xxzx(), vec4(1_f32, 1_f32, 3_f32, 1_f32));
assert_eq!(v.xxzy(), vec4(1_f32, 1_f32, 3_f32, 2_f32));
assert_eq!(v.xxzz(), vec4(1_f32, 1_f32, 3_f32, 3_f32));
assert_eq!(v.xyxx(), vec4(1_f32, 2_f32, 1_f32, 1_f32));
assert_eq!(v.xyxy(), vec4(1_f32, 2_f32, 1_f32, 2_f32));
assert_eq!(v.xyxz(), vec4(1_f32, 2_f32, 1_f32, 3_f32));
assert_eq!(v.xyyx(), vec4(1_f32, 2_f32, 2_f32, 1_f32));
assert_eq!(v.xyyy(), vec4(1_f32, 2_f32, 2_f32, 2_f32));
assert_eq!(v.xyyz(), vec4(1_f32, 2_f32, 2_f32, 3_f32));
assert_eq!(v.xyzx(), vec4(1_f32, 2_f32, 3_f32, 1_f32));
assert_eq!(v.xyzy(), vec4(1_f32, 2_f32, 3_f32, 2_f32));
assert_eq!(v.xyzz(), vec4(1_f32, 2_f32, 3_f32, 3_f32));
assert_eq!(v.xzxx(), vec4(1_f32, 3_f32, 1_f32, 1_f32));
assert_eq!(v.xzxy(), vec4(1_f32, 3_f32, 1_f32, 2_f32));
assert_eq!(v.xzxz(), vec4(1_f32, 3_f32, 1_f32, 3_f32));
assert_eq!(v.xzyx(), vec4(1_f32, 3_f32, 2_f32, 1_f32));
assert_eq!(v.xzyy(), vec4(1_f32, 3_f32, 2_f32, 2_f32));
assert_eq!(v.xzyz(), vec4(1_f32, 3_f32, 2_f32, 3_f32));
assert_eq!(v.xzzx(), vec4(1_f32, 3_f32, 3_f32, 1_f32));
assert_eq!(v.xzzy(), vec4(1_f32, 3_f32, 3_f32, 2_f32));
assert_eq!(v.xzzz(), vec4(1_f32, 3_f32, 3_f32, 3_f32));
assert_eq!(v.yxxx(), vec4(2_f32, 1_f32, 1_f32, 1_f32));
assert_eq!(v.yxxy(), vec4(2_f32, 1_f32, 1_f32, 2_f32));
assert_eq!(v.yxxz(), vec4(2_f32, 1_f32, 1_f32, 3_f32));
assert_eq!(v.yxyx(), vec4(2_f32, 1_f32, 2_f32, 1_f32));
assert_eq!(v.yxyy(), vec4(2_f32, 1_f32, 2_f32, 2_f32));
assert_eq!(v.yxyz(), vec4(2_f32, 1_f32, 2_f32, 3_f32));
assert_eq!(v.yxzx(), vec4(2_f32, 1_f32, 3_f32, 1_f32));
assert_eq!(v.yxzy(), vec4(2_f32, 1_f32, 3_f32, 2_f32));
assert_eq!(v.yxzz(), vec4(2_f32, 1_f32, 3_f32, 3_f32));
assert_eq!(v.yyxx(), vec4(2_f32, 2_f32, 1_f32, 1_f32));
assert_eq!(v.yyxy(), vec4(2_f32, 2_f32, 1_f32, 2_f32));
assert_eq!(v.yyxz(), vec4(2_f32, 2_f32, 1_f32, 3_f32));
assert_eq!(v.yyyx(), vec4(2_f32, 2_f32, 2_f32, 1_f32));
assert_eq!(v.yyyy(), vec4(2_f32, 2_f32, 2_f32, 2_f32));
assert_eq!(v.yyyz(), vec4(2_f32, 2_f32, 2_f32, 3_f32));
assert_eq!(v.yyzx(), vec4(2_f32, 2_f32, 3_f32, 1_f32));
assert_eq!(v.yyzy(), vec4(2_f32, 2_f32, 3_f32, 2_f32));
assert_eq!(v.yyzz(), vec4(2_f32, 2_f32, 3_f32, 3_f32));
assert_eq!(v.yzxx(), vec4(2_f32, 3_f32, 1_f32, 1_f32));
assert_eq!(v.yzxy(), vec4(2_f32, 3_f32, 1_f32, 2_f32));
assert_eq!(v.yzxz(), vec4(2_f32, 3_f32, 1_f32, 3_f32));
assert_eq!(v.yzyx(), vec4(2_f32, 3_f32, 2_f32, 1_f32));
assert_eq!(v.yzyy(), vec4(2_f32, 3_f32, 2_f32, 2_f32));
assert_eq!(v.yzyz(), vec4(2_f32, 3_f32, 2_f32, 3_f32));
assert_eq!(v.yzzx(), vec4(2_f32, 3_f32, 3_f32, 1_f32));
assert_eq!(v.yzzy(), vec4(2_f32, 3_f32, 3_f32, 2_f32));
assert_eq!(v.yzzz(), vec4(2_f32, 3_f32, 3_f32, 3_f32));
assert_eq!(v.zxxx(), vec4(3_f32, 1_f32, 1_f32, 1_f32));
assert_eq!(v.zxxy(), vec4(3_f32, 1_f32, 1_f32, 2_f32));
assert_eq!(v.zxxz(), vec4(3_f32, 1_f32, 1_f32, 3_f32));
assert_eq!(v.zxyx(), vec4(3_f32, 1_f32, 2_f32, 1_f32));
assert_eq!(v.zxyy(), vec4(3_f32, 1_f32, 2_f32, 2_f32));
assert_eq!(v.zxyz(), vec4(3_f32, 1_f32, 2_f32, 3_f32));
assert_eq!(v.zxzx(), vec4(3_f32, 1_f32, 3_f32, 1_f32));
assert_eq!(v.zxzy(), vec4(3_f32, 1_f32, 3_f32, 2_f32));
assert_eq!(v.zxzz(), vec4(3_f32, 1_f32, 3_f32, 3_f32));
assert_eq!(v.zyxx(), vec4(3_f32, 2_f32, 1_f32, 1_f32));
assert_eq!(v.zyxy(), vec4(3_f32, 2_f32, 1_f32, 2_f32));
assert_eq!(v.zyxz(), vec4(3_f32, 2_f32, 1_f32, 3_f32));
assert_eq!(v.zyyx(), vec4(3_f32, 2_f32, 2_f32, 1_f32));
assert_eq!(v.zyyy(), vec4(3_f32, 2_f32, 2_f32, 2_f32));
assert_eq!(v.zyyz(), vec4(3_f32, 2_f32, 2_f32, 3_f32));
assert_eq!(v.zyzx(), vec4(3_f32, 2_f32, 3_f32, 1_f32));
assert_eq!(v.zyzy(), vec4(3_f32, 2_f32, 3_f32, 2_f32));
assert_eq!(v.zyzz(), vec4(3_f32, 2_f32, 3_f32, 3_f32));
assert_eq!(v.zzxx(), vec4(3_f32, 3_f32, 1_f32, 1_f32));
assert_eq!(v.zzxy(), vec4(3_f32, 3_f32, 1_f32, 2_f32));
assert_eq!(v.zzxz(), vec4(3_f32, 3_f32, 1_f32, 3_f32));
assert_eq!(v.zzyx(), vec4(3_f32, 3_f32, 2_f32, 1_f32));
assert_eq!(v.zzyy(), vec4(3_f32, 3_f32, 2_f32, 2_f32));
assert_eq!(v.zzyz(), vec4(3_f32, 3_f32, 2_f32, 3_f32));
assert_eq!(v.zzzx(), vec4(3_f32, 3_f32, 3_f32, 1_f32));
assert_eq!(v.zzzy(), vec4(3_f32, 3_f32, 3_f32, 2_f32));
assert_eq!(v.zzzz(), vec4(3_f32, 3_f32, 3_f32, 3_f32));
assert_eq!(v.xxx(), vec3(1_f32, 1_f32, 1_f32));
assert_eq!(v.xxy(), vec3(1_f32, 1_f32, 2_f32));
assert_eq!(v.xxz(), vec3(1_f32, 1_f32, 3_f32));
assert_eq!(v.xyx(), vec3(1_f32, 2_f32, 1_f32));
assert_eq!(v.xyy(), vec3(1_f32, 2_f32, 2_f32));
assert_eq!(v.xzx(), vec3(1_f32, 3_f32, 1_f32));
assert_eq!(v.xzy(), vec3(1_f32, 3_f32, 2_f32));
assert_eq!(v.xzz(), vec3(1_f32, 3_f32, 3_f32));
assert_eq!(v.yxx(), vec3(2_f32, 1_f32, 1_f32));
assert_eq!(v.yxy(), vec3(2_f32, 1_f32, 2_f32));
assert_eq!(v.yxz(), vec3(2_f32, 1_f32, 3_f32));
assert_eq!(v.yyx(), vec3(2_f32, 2_f32, 1_f32));
assert_eq!(v.yyy(), vec3(2_f32, 2_f32, 2_f32));
assert_eq!(v.yyz(), vec3(2_f32, 2_f32, 3_f32));
assert_eq!(v.yzx(), vec3(2_f32, 3_f32, 1_f32));
assert_eq!(v.yzy(), vec3(2_f32, 3_f32, 2_f32));
assert_eq!(v.yzz(), vec3(2_f32, 3_f32, 3_f32));
assert_eq!(v.zxx(), vec3(3_f32, 1_f32, 1_f32));
assert_eq!(v.zxy(), vec3(3_f32, 1_f32, 2_f32));
assert_eq!(v.zxz(), vec3(3_f32, 1_f32, 3_f32));
assert_eq!(v.zyx(), vec3(3_f32, 2_f32, 1_f32));
assert_eq!(v.zyy(), vec3(3_f32, 2_f32, 2_f32));
assert_eq!(v.zyz(), vec3(3_f32, 2_f32, 3_f32));
assert_eq!(v.zzx(), vec3(3_f32, 3_f32, 1_f32));
assert_eq!(v.zzy(), vec3(3_f32, 3_f32, 2_f32));
assert_eq!(v.zzz(), vec3(3_f32, 3_f32, 3_f32));
assert_eq!(v.xx(), vec2(1_f32, 1_f32));
assert_eq!(v.xy(), vec2(1_f32, 2_f32));
assert_eq!(v.xz(), vec2(1_f32, 3_f32));
assert_eq!(v.yx(), vec2(2_f32, 1_f32));
assert_eq!(v.yy(), vec2(2_f32, 2_f32));
assert_eq!(v.yz(), vec2(2_f32, 3_f32));
assert_eq!(v.zx(), vec2(3_f32, 1_f32));
assert_eq!(v.zy(), vec2(3_f32, 2_f32));
assert_eq!(v.zz(), vec2(3_f32, 3_f32));
}
#[test]
fn test_vec2_swizzles() {
let v = vec2(1_f32, 2_f32);
assert_eq!(v, v.xy());
assert_eq!(v.xxxx(), vec4(1_f32, 1_f32, 1_f32, 1_f32));
assert_eq!(v.xxxy(), vec4(1_f32, 1_f32, 1_f32, 2_f32));
assert_eq!(v.xxyx(), vec4(1_f32, 1_f32, 2_f32, 1_f32));
assert_eq!(v.xxyy(), vec4(1_f32, 1_f32, 2_f32, 2_f32));
assert_eq!(v.xyxx(), vec4(1_f32, 2_f32, 1_f32, 1_f32));
assert_eq!(v.xyxy(), vec4(1_f32, 2_f32, 1_f32, 2_f32));
assert_eq!(v.xyyx(), vec4(1_f32, 2_f32, 2_f32, 1_f32));
assert_eq!(v.xyyy(), vec4(1_f32, 2_f32, 2_f32, 2_f32));
assert_eq!(v.yxxx(), vec4(2_f32, 1_f32, 1_f32, 1_f32));
assert_eq!(v.yxxy(), vec4(2_f32, 1_f32, 1_f32, 2_f32));
assert_eq!(v.yxyx(), vec4(2_f32, 1_f32, 2_f32, 1_f32));
assert_eq!(v.yxyy(), vec4(2_f32, 1_f32, 2_f32, 2_f32));
assert_eq!(v.yyxx(), vec4(2_f32, 2_f32, 1_f32, 1_f32));
assert_eq!(v.yyxy(), vec4(2_f32, 2_f32, 1_f32, 2_f32));
assert_eq!(v.yyyx(), vec4(2_f32, 2_f32, 2_f32, 1_f32));
assert_eq!(v.yyyy(), vec4(2_f32, 2_f32, 2_f32, 2_f32));
assert_eq!(v.xxx(), vec3(1_f32, 1_f32, 1_f32));
assert_eq!(v.xxy(), vec3(1_f32, 1_f32, 2_f32));
assert_eq!(v.xyx(), vec3(1_f32, 2_f32, 1_f32));
assert_eq!(v.xyy(), vec3(1_f32, 2_f32, 2_f32));
assert_eq!(v.yxx(), vec3(2_f32, 1_f32, 1_f32));
assert_eq!(v.yxy(), vec3(2_f32, 1_f32, 2_f32));
assert_eq!(v.yyx(), vec3(2_f32, 2_f32, 1_f32));
assert_eq!(v.yyy(), vec3(2_f32, 2_f32, 2_f32));
assert_eq!(v.xx(), vec2(1_f32, 1_f32));
assert_eq!(v.yx(), vec2(2_f32, 1_f32));
assert_eq!(v.yy(), vec2(2_f32, 2_f32));
}
#[test]
fn test_dvec4_swizzles() {
let v = dvec4(1_f64, 2_f64, 3_f64, 4_f64);
assert_eq!(v, v.xyzw());
assert_eq!(v.xxxx(), dvec4(1_f64, 1_f64, 1_f64, 1_f64));
assert_eq!(v.xxxy(), dvec4(1_f64, 1_f64, 1_f64, 2_f64));
assert_eq!(v.xxxz(), dvec4(1_f64, 1_f64, 1_f64, 3_f64));
assert_eq!(v.xxxw(), dvec4(1_f64, 1_f64, 1_f64, 4_f64));
assert_eq!(v.xxyx(), dvec4(1_f64, 1_f64, 2_f64, 1_f64));
assert_eq!(v.xxyy(), dvec4(1_f64, 1_f64, 2_f64, 2_f64));
assert_eq!(v.xxyz(), dvec4(1_f64, 1_f64, 2_f64, 3_f64));
assert_eq!(v.xxyw(), dvec4(1_f64, 1_f64, 2_f64, 4_f64));
assert_eq!(v.xxzx(), dvec4(1_f64, 1_f64, 3_f64, 1_f64));
assert_eq!(v.xxzy(), dvec4(1_f64, 1_f64, 3_f64, 2_f64));
assert_eq!(v.xxzz(), dvec4(1_f64, 1_f64, 3_f64, 3_f64));
assert_eq!(v.xxzw(), dvec4(1_f64, 1_f64, 3_f64, 4_f64));
assert_eq!(v.xxwx(), dvec4(1_f64, 1_f64, 4_f64, 1_f64));
assert_eq!(v.xxwy(), dvec4(1_f64, 1_f64, 4_f64, 2_f64));
assert_eq!(v.xxwz(), dvec4(1_f64, 1_f64, 4_f64, 3_f64));
assert_eq!(v.xxww(), dvec4(1_f64, 1_f64, 4_f64, 4_f64));
assert_eq!(v.xyxx(), dvec4(1_f64, 2_f64, 1_f64, 1_f64));
assert_eq!(v.xyxy(), dvec4(1_f64, 2_f64, 1_f64, 2_f64));
assert_eq!(v.xyxz(), dvec4(1_f64, 2_f64, 1_f64, 3_f64));
assert_eq!(v.xyxw(), dvec4(1_f64, 2_f64, 1_f64, 4_f64));
assert_eq!(v.xyyx(), dvec4(1_f64, 2_f64, 2_f64, 1_f64));
assert_eq!(v.xyyy(), dvec4(1_f64, 2_f64, 2_f64, 2_f64));
assert_eq!(v.xyyz(), dvec4(1_f64, 2_f64, 2_f64, 3_f64));
assert_eq!(v.xyyw(), dvec4(1_f64, 2_f64, 2_f64, 4_f64));
assert_eq!(v.xyzx(), dvec4(1_f64, 2_f64, 3_f64, 1_f64));
assert_eq!(v.xyzy(), dvec4(1_f64, 2_f64, 3_f64, 2_f64));
assert_eq!(v.xyzz(), dvec4(1_f64, 2_f64, 3_f64, 3_f64));
assert_eq!(v.xywx(), dvec4(1_f64, 2_f64, 4_f64, 1_f64));
assert_eq!(v.xywy(), dvec4(1_f64, 2_f64, 4_f64, 2_f64));
assert_eq!(v.xywz(), dvec4(1_f64, 2_f64, 4_f64, 3_f64));
assert_eq!(v.xyww(), dvec4(1_f64, 2_f64, 4_f64, 4_f64));
assert_eq!(v.xzxx(), dvec4(1_f64, 3_f64, 1_f64, 1_f64));
assert_eq!(v.xzxy(), dvec4(1_f64, 3_f64, 1_f64, 2_f64));
assert_eq!(v.xzxz(), dvec4(1_f64, 3_f64, 1_f64, 3_f64));
assert_eq!(v.xzxw(), dvec4(1_f64, 3_f64, 1_f64, 4_f64));
assert_eq!(v.xzyx(), dvec4(1_f64, 3_f64, 2_f64, 1_f64));
assert_eq!(v.xzyy(), dvec4(1_f64, 3_f64, 2_f64, 2_f64));
assert_eq!(v.xzyz(), dvec4(1_f64, 3_f64, 2_f64, 3_f64));
assert_eq!(v.xzyw(), dvec4(1_f64, 3_f64, 2_f64, 4_f64));
assert_eq!(v.xzzx(), dvec4(1_f64, 3_f64, 3_f64, 1_f64));
assert_eq!(v.xzzy(), dvec4(1_f64, 3_f64, 3_f64, 2_f64));
assert_eq!(v.xzzz(), dvec4(1_f64, 3_f64, 3_f64, 3_f64));
assert_eq!(v.xzzw(), dvec4(1_f64, 3_f64, 3_f64, 4_f64));
assert_eq!(v.xzwx(), dvec4(1_f64, 3_f64, 4_f64, 1_f64));
assert_eq!(v.xzwy(), dvec4(1_f64, 3_f64, 4_f64, 2_f64));
assert_eq!(v.xzwz(), dvec4(1_f64, 3_f64, 4_f64, 3_f64));
assert_eq!(v.xzww(), dvec4(1_f64, 3_f64, 4_f64, 4_f64));
assert_eq!(v.xwxx(), dvec4(1_f64, 4_f64, 1_f64, 1_f64));
assert_eq!(v.xwxy(), dvec4(1_f64, 4_f64, 1_f64, 2_f64));
assert_eq!(v.xwxz(), dvec4(1_f64, 4_f64, 1_f64, 3_f64));
assert_eq!(v.xwxw(), dvec4(1_f64, 4_f64, 1_f64, 4_f64));
assert_eq!(v.xwyx(), dvec4(1_f64, 4_f64, 2_f64, 1_f64));
assert_eq!(v.xwyy(), dvec4(1_f64, 4_f64, 2_f64, 2_f64));
assert_eq!(v.xwyz(), dvec4(1_f64, 4_f64, 2_f64, 3_f64));
assert_eq!(v.xwyw(), dvec4(1_f64, 4_f64, 2_f64, 4_f64));
assert_eq!(v.xwzx(), dvec4(1_f64, 4_f64, 3_f64, 1_f64));
assert_eq!(v.xwzy(), dvec4(1_f64, 4_f64, 3_f64, 2_f64));
assert_eq!(v.xwzz(), dvec4(1_f64, 4_f64, 3_f64, 3_f64));
assert_eq!(v.xwzw(), dvec4(1_f64, 4_f64, 3_f64, 4_f64));
assert_eq!(v.xwwx(), dvec4(1_f64, 4_f64, 4_f64, 1_f64));
assert_eq!(v.xwwy(), dvec4(1_f64, 4_f64, 4_f64, 2_f64));
assert_eq!(v.xwwz(), dvec4(1_f64, 4_f64, 4_f64, 3_f64));
assert_eq!(v.xwww(), dvec4(1_f64, 4_f64, 4_f64, 4_f64));
assert_eq!(v.yxxx(), dvec4(2_f64, 1_f64, 1_f64, 1_f64));
assert_eq!(v.yxxy(), dvec4(2_f64, 1_f64, 1_f64, 2_f64));
assert_eq!(v.yxxz(), dvec4(2_f64, 1_f64, 1_f64, 3_f64));
assert_eq!(v.yxxw(), dvec4(2_f64, 1_f64, 1_f64, 4_f64));
assert_eq!(v.yxyx(), dvec4(2_f64, 1_f64, 2_f64, 1_f64));
assert_eq!(v.yxyy(), dvec4(2_f64, 1_f64, 2_f64, 2_f64));
assert_eq!(v.yxyz(), dvec4(2_f64, 1_f64, 2_f64, 3_f64));
assert_eq!(v.yxyw(), dvec4(2_f64, 1_f64, 2_f64, 4_f64));
assert_eq!(v.yxzx(), dvec4(2_f64, 1_f64, 3_f64, 1_f64));
assert_eq!(v.yxzy(), dvec4(2_f64, 1_f64, 3_f64, 2_f64));
assert_eq!(v.yxzz(), dvec4(2_f64, 1_f64, 3_f64, 3_f64));
assert_eq!(v.yxzw(), dvec4(2_f64, 1_f64, 3_f64, 4_f64));
assert_eq!(v.yxwx(), dvec4(2_f64, 1_f64, 4_f64, 1_f64));
assert_eq!(v.yxwy(), dvec4(2_f64, 1_f64, 4_f64, 2_f64));
assert_eq!(v.yxwz(), dvec4(2_f64, 1_f64, 4_f64, 3_f64));
assert_eq!(v.yxww(), dvec4(2_f64, 1_f64, 4_f64, 4_f64));
assert_eq!(v.yyxx(), dvec4(2_f64, 2_f64, 1_f64, 1_f64));
assert_eq!(v.yyxy(), dvec4(2_f64, 2_f64, 1_f64, 2_f64));
assert_eq!(v.yyxz(), dvec4(2_f64, 2_f64, 1_f64, 3_f64));
assert_eq!(v.yyxw(), dvec4(2_f64, 2_f64, 1_f64, 4_f64));
assert_eq!(v.yyyx(), dvec4(2_f64, 2_f64, 2_f64, 1_f64));
assert_eq!(v.yyyy(), dvec4(2_f64, 2_f64, 2_f64, 2_f64));
assert_eq!(v.yyyz(), dvec4(2_f64, 2_f64, 2_f64, 3_f64));
assert_eq!(v.yyyw(), dvec4(2_f64, 2_f64, 2_f64, 4_f64));
assert_eq!(v.yyzx(), dvec4(2_f64, 2_f64, 3_f64, 1_f64));
assert_eq!(v.yyzy(), dvec4(2_f64, 2_f64, 3_f64, 2_f64));
assert_eq!(v.yyzz(), dvec4(2_f64, 2_f64, 3_f64, 3_f64));
assert_eq!(v.yyzw(), dvec4(2_f64, 2_f64, 3_f64, 4_f64));
assert_eq!(v.yywx(), dvec4(2_f64, 2_f64, 4_f64, 1_f64));
assert_eq!(v.yywy(), dvec4(2_f64, 2_f64, 4_f64, 2_f64));
assert_eq!(v.yywz(), dvec4(2_f64, 2_f64, 4_f64, 3_f64));
assert_eq!(v.yyww(), dvec4(2_f64, 2_f64, 4_f64, 4_f64));
assert_eq!(v.yzxx(), dvec4(2_f64, 3_f64, 1_f64, 1_f64));
assert_eq!(v.yzxy(), dvec4(2_f64, 3_f64, 1_f64, 2_f64));
assert_eq!(v.yzxz(), dvec4(2_f64, 3_f64, 1_f64, 3_f64));
assert_eq!(v.yzxw(), dvec4(2_f64, 3_f64, 1_f64, 4_f64));
assert_eq!(v.yzyx(), dvec4(2_f64, 3_f64, 2_f64, 1_f64));
assert_eq!(v.yzyy(), dvec4(2_f64, 3_f64, 2_f64, 2_f64));
assert_eq!(v.yzyz(), dvec4(2_f64, 3_f64, 2_f64, 3_f64));
assert_eq!(v.yzyw(), dvec4(2_f64, 3_f64, 2_f64, 4_f64));
assert_eq!(v.yzzx(), dvec4(2_f64, 3_f64, 3_f64, 1_f64));
assert_eq!(v.yzzy(), dvec4(2_f64, 3_f64, 3_f64, 2_f64));
assert_eq!(v.yzzz(), dvec4(2_f64, 3_f64, 3_f64, 3_f64));
assert_eq!(v.yzzw(), dvec4(2_f64, 3_f64, 3_f64, 4_f64));
assert_eq!(v.yzwx(), dvec4(2_f64, 3_f64, 4_f64, 1_f64));
assert_eq!(v.yzwy(), dvec4(2_f64, 3_f64, 4_f64, 2_f64));
assert_eq!(v.yzwz(), dvec4(2_f64, 3_f64, 4_f64, 3_f64));
assert_eq!(v.yzww(), dvec4(2_f64, 3_f64, 4_f64, 4_f64));
assert_eq!(v.ywxx(), dvec4(2_f64, 4_f64, 1_f64, 1_f64));
assert_eq!(v.ywxy(), dvec4(2_f64, 4_f64, 1_f64, 2_f64));
assert_eq!(v.ywxz(), dvec4(2_f64, 4_f64, 1_f64, 3_f64));
assert_eq!(v.ywxw(), dvec4(2_f64, 4_f64, 1_f64, 4_f64));
assert_eq!(v.ywyx(), dvec4(2_f64, 4_f64, 2_f64, 1_f64));
assert_eq!(v.ywyy(), dvec4(2_f64, 4_f64, 2_f64, 2_f64));
assert_eq!(v.ywyz(), dvec4(2_f64, 4_f64, 2_f64, 3_f64));
assert_eq!(v.ywyw(), dvec4(2_f64, 4_f64, 2_f64, 4_f64));
assert_eq!(v.ywzx(), dvec4(2_f64, 4_f64, 3_f64, 1_f64));
assert_eq!(v.ywzy(), dvec4(2_f64, 4_f64, 3_f64, 2_f64));
assert_eq!(v.ywzz(), dvec4(2_f64, 4_f64, 3_f64, 3_f64));
assert_eq!(v.ywzw(), dvec4(2_f64, 4_f64, 3_f64, 4_f64));
assert_eq!(v.ywwx(), dvec4(2_f64, 4_f64, 4_f64, 1_f64));
assert_eq!(v.ywwy(), dvec4(2_f64, 4_f64, 4_f64, 2_f64));
assert_eq!(v.ywwz(), dvec4(2_f64, 4_f64, 4_f64, 3_f64));
assert_eq!(v.ywww(), dvec4(2_f64, 4_f64, 4_f64, 4_f64));
assert_eq!(v.zxxx(), dvec4(3_f64, 1_f64, 1_f64, 1_f64));
assert_eq!(v.zxxy(), dvec4(3_f64, 1_f64, 1_f64, 2_f64));
assert_eq!(v.zxxz(), dvec4(3_f64, 1_f64, 1_f64, 3_f64));
assert_eq!(v.zxxw(), dvec4(3_f64, 1_f64, 1_f64, 4_f64));
assert_eq!(v.zxyx(), dvec4(3_f64, 1_f64, 2_f64, 1_f64));
assert_eq!(v.zxyy(), dvec4(3_f64, 1_f64, 2_f64, 2_f64));
assert_eq!(v.zxyz(), dvec4(3_f64, 1_f64, 2_f64, 3_f64));
assert_eq!(v.zxyw(), dvec4(3_f64, 1_f64, 2_f64, 4_f64));
assert_eq!(v.zxzx(), dvec4(3_f64, 1_f64, 3_f64, 1_f64));
assert_eq!(v.zxzy(), dvec4(3_f64, 1_f64, 3_f64, 2_f64));
assert_eq!(v.zxzz(), dvec4(3_f64, 1_f64, 3_f64, 3_f64));
assert_eq!(v.zxzw(), dvec4(3_f64, 1_f64, 3_f64, 4_f64));
assert_eq!(v.zxwx(), dvec4(3_f64, 1_f64, 4_f64, 1_f64));
assert_eq!(v.zxwy(), dvec4(3_f64, 1_f64, 4_f64, 2_f64));
assert_eq!(v.zxwz(), dvec4(3_f64, 1_f64, 4_f64, 3_f64));
assert_eq!(v.zxww(), dvec4(3_f64, 1_f64, 4_f64, 4_f64));
assert_eq!(v.zyxx(), dvec4(3_f64, 2_f64, 1_f64, 1_f64));
assert_eq!(v.zyxy(), dvec4(3_f64, 2_f64, 1_f64, 2_f64));
assert_eq!(v.zyxz(), dvec4(3_f64, 2_f64, 1_f64, 3_f64));
assert_eq!(v.zyxw(), dvec4(3_f64, 2_f64, 1_f64, 4_f64));
assert_eq!(v.zyyx(), dvec4(3_f64, 2_f64, 2_f64, 1_f64));
assert_eq!(v.zyyy(), dvec4(3_f64, 2_f64, 2_f64, 2_f64));
assert_eq!(v.zyyz(), dvec4(3_f64, 2_f64, 2_f64, 3_f64));
assert_eq!(v.zyyw(), dvec4(3_f64, 2_f64, 2_f64, 4_f64));
assert_eq!(v.zyzx(), dvec4(3_f64, 2_f64, 3_f64, 1_f64));
assert_eq!(v.zyzy(), dvec4(3_f64, 2_f64, 3_f64, 2_f64));
assert_eq!(v.zyzz(), dvec4(3_f64, 2_f64, 3_f64, 3_f64));
assert_eq!(v.zyzw(), dvec4(3_f64, 2_f64, 3_f64, 4_f64));
assert_eq!(v.zywx(), dvec4(3_f64, 2_f64, 4_f64, 1_f64));
assert_eq!(v.zywy(), dvec4(3_f64, 2_f64, 4_f64, 2_f64));
assert_eq!(v.zywz(), dvec4(3_f64, 2_f64, 4_f64, 3_f64));
assert_eq!(v.zyww(), dvec4(3_f64, 2_f64, 4_f64, 4_f64));
assert_eq!(v.zzxx(), dvec4(3_f64, 3_f64, 1_f64, 1_f64));
assert_eq!(v.zzxy(), dvec4(3_f64, 3_f64, 1_f64, 2_f64));
assert_eq!(v.zzxz(), dvec4(3_f64, 3_f64, 1_f64, 3_f64));
assert_eq!(v.zzxw(), dvec4(3_f64, 3_f64, 1_f64, 4_f64));
assert_eq!(v.zzyx(), dvec4(3_f64, 3_f64, 2_f64, 1_f64));
assert_eq!(v.zzyy(), dvec4(3_f64, 3_f64, 2_f64, 2_f64));
assert_eq!(v.zzyz(), dvec4(3_f64, 3_f64, 2_f64, 3_f64));
assert_eq!(v.zzyw(), dvec4(3_f64, 3_f64, 2_f64, 4_f64));
assert_eq!(v.zzzx(), dvec4(3_f64, 3_f64, 3_f64, 1_f64));
assert_eq!(v.zzzy(), dvec4(3_f64, 3_f64, 3_f64, 2_f64));
assert_eq!(v.zzzz(), dvec4(3_f64, 3_f64, 3_f64, 3_f64));
assert_eq!(v.zzzw(), dvec4(3_f64, 3_f64, 3_f64, 4_f64));
assert_eq!(v.zzwx(), dvec4(3_f64, 3_f64, 4_f64, 1_f64));
assert_eq!(v.zzwy(), dvec4(3_f64, 3_f64, 4_f64, 2_f64));
assert_eq!(v.zzwz(), dvec4(3_f64, 3_f64, 4_f64, 3_f64));
assert_eq!(v.zzww(), dvec4(3_f64, 3_f64, 4_f64, 4_f64));
assert_eq!(v.zwxx(), dvec4(3_f64, 4_f64, 1_f64, 1_f64));
assert_eq!(v.zwxy(), dvec4(3_f64, 4_f64, 1_f64, 2_f64));
assert_eq!(v.zwxz(), dvec4(3_f64, 4_f64, 1_f64, 3_f64));
assert_eq!(v.zwxw(), dvec4(3_f64, 4_f64, 1_f64, 4_f64));
assert_eq!(v.zwyx(), dvec4(3_f64, 4_f64, 2_f64, 1_f64));
assert_eq!(v.zwyy(), dvec4(3_f64, 4_f64, 2_f64, 2_f64));
assert_eq!(v.zwyz(), dvec4(3_f64, 4_f64, 2_f64, 3_f64));
assert_eq!(v.zwyw(), dvec4(3_f64, 4_f64, 2_f64, 4_f64));
assert_eq!(v.zwzx(), dvec4(3_f64, 4_f64, 3_f64, 1_f64));
assert_eq!(v.zwzy(), dvec4(3_f64, 4_f64, 3_f64, 2_f64));
assert_eq!(v.zwzz(), dvec4(3_f64, 4_f64, 3_f64, 3_f64));
assert_eq!(v.zwzw(), dvec4(3_f64, 4_f64, 3_f64, 4_f64));
assert_eq!(v.zwwx(), dvec4(3_f64, 4_f64, 4_f64, 1_f64));
assert_eq!(v.zwwy(), dvec4(3_f64, 4_f64, 4_f64, 2_f64));
assert_eq!(v.zwwz(), dvec4(3_f64, 4_f64, 4_f64, 3_f64));
assert_eq!(v.zwww(), dvec4(3_f64, 4_f64, 4_f64, 4_f64));
assert_eq!(v.wxxx(), dvec4(4_f64, 1_f64, 1_f64, 1_f64));
assert_eq!(v.wxxy(), dvec4(4_f64, 1_f64, 1_f64, 2_f64));
assert_eq!(v.wxxz(), dvec4(4_f64, 1_f64, 1_f64, 3_f64));
assert_eq!(v.wxxw(), dvec4(4_f64, 1_f64, 1_f64, 4_f64));
assert_eq!(v.wxyx(), dvec4(4_f64, 1_f64, 2_f64, 1_f64));
assert_eq!(v.wxyy(), dvec4(4_f64, 1_f64, 2_f64, 2_f64));
assert_eq!(v.wxyz(), dvec4(4_f64, 1_f64, 2_f64, 3_f64));
assert_eq!(v.wxyw(), dvec4(4_f64, 1_f64, 2_f64, 4_f64));
assert_eq!(v.wxzx(), dvec4(4_f64, 1_f64, 3_f64, 1_f64));
assert_eq!(v.wxzy(), dvec4(4_f64, 1_f64, 3_f64, 2_f64));
assert_eq!(v.wxzz(), dvec4(4_f64, 1_f64, 3_f64, 3_f64));
assert_eq!(v.wxzw(), dvec4(4_f64, 1_f64, 3_f64, 4_f64));
assert_eq!(v.wxwx(), dvec4(4_f64, 1_f64, 4_f64, 1_f64));
assert_eq!(v.wxwy(), dvec4(4_f64, 1_f64, 4_f64, 2_f64));
assert_eq!(v.wxwz(), dvec4(4_f64, 1_f64, 4_f64, 3_f64));
assert_eq!(v.wxww(), dvec4(4_f64, 1_f64, 4_f64, 4_f64));
assert_eq!(v.wyxx(), dvec4(4_f64, 2_f64, 1_f64, 1_f64));
assert_eq!(v.wyxy(), dvec4(4_f64, 2_f64, 1_f64, 2_f64));
assert_eq!(v.wyxz(), dvec4(4_f64, 2_f64, 1_f64, 3_f64));
assert_eq!(v.wyxw(), dvec4(4_f64, 2_f64, 1_f64, 4_f64));
assert_eq!(v.wyyx(), dvec4(4_f64, 2_f64, 2_f64, 1_f64));
assert_eq!(v.wyyy(), dvec4(4_f64, 2_f64, 2_f64, 2_f64));
assert_eq!(v.wyyz(), dvec4(4_f64, 2_f64, 2_f64, 3_f64));
assert_eq!(v.wyyw(), dvec4(4_f64, 2_f64, 2_f64, 4_f64));
assert_eq!(v.wyzx(), dvec4(4_f64, 2_f64, 3_f64, 1_f64));
assert_eq!(v.wyzy(), dvec4(4_f64, 2_f64, 3_f64, 2_f64));
assert_eq!(v.wyzz(), dvec4(4_f64, 2_f64, 3_f64, 3_f64));
assert_eq!(v.wyzw(), dvec4(4_f64, 2_f64, 3_f64, 4_f64));
assert_eq!(v.wywx(), dvec4(4_f64, 2_f64, 4_f64, 1_f64));
assert_eq!(v.wywy(), dvec4(4_f64, 2_f64, 4_f64, 2_f64));
assert_eq!(v.wywz(), dvec4(4_f64, 2_f64, 4_f64, 3_f64));
assert_eq!(v.wyww(), dvec4(4_f64, 2_f64, 4_f64, 4_f64));
assert_eq!(v.wzxx(), dvec4(4_f64, 3_f64, 1_f64, 1_f64));
assert_eq!(v.wzxy(), dvec4(4_f64, 3_f64, 1_f64, 2_f64));
assert_eq!(v.wzxz(), dvec4(4_f64, 3_f64, 1_f64, 3_f64));
assert_eq!(v.wzxw(), dvec4(4_f64, 3_f64, 1_f64, 4_f64));
assert_eq!(v.wzyx(), dvec4(4_f64, 3_f64, 2_f64, 1_f64));
assert_eq!(v.wzyy(), dvec4(4_f64, 3_f64, 2_f64, 2_f64));
assert_eq!(v.wzyz(), dvec4(4_f64, 3_f64, 2_f64, 3_f64));
assert_eq!(v.wzyw(), dvec4(4_f64, 3_f64, 2_f64, 4_f64));
assert_eq!(v.wzzx(), dvec4(4_f64, 3_f64, 3_f64, 1_f64));
assert_eq!(v.wzzy(), dvec4(4_f64, 3_f64, 3_f64, 2_f64));
assert_eq!(v.wzzz(), dvec4(4_f64, 3_f64, 3_f64, 3_f64));
assert_eq!(v.wzzw(), dvec4(4_f64, 3_f64, 3_f64, 4_f64));
assert_eq!(v.wzwx(), dvec4(4_f64, 3_f64, 4_f64, 1_f64));
assert_eq!(v.wzwy(), dvec4(4_f64, 3_f64, 4_f64, 2_f64));
assert_eq!(v.wzwz(), dvec4(4_f64, 3_f64, 4_f64, 3_f64));
assert_eq!(v.wzww(), dvec4(4_f64, 3_f64, 4_f64, 4_f64));
assert_eq!(v.wwxx(), dvec4(4_f64, 4_f64, 1_f64, 1_f64));
assert_eq!(v.wwxy(), dvec4(4_f64, 4_f64, 1_f64, 2_f64));
assert_eq!(v.wwxz(), dvec4(4_f64, 4_f64, 1_f64, 3_f64));
assert_eq!(v.wwxw(), dvec4(4_f64, 4_f64, 1_f64, 4_f64));
assert_eq!(v.wwyx(), dvec4(4_f64, 4_f64, 2_f64, 1_f64));
assert_eq!(v.wwyy(), dvec4(4_f64, 4_f64, 2_f64, 2_f64));
assert_eq!(v.wwyz(), dvec4(4_f64, 4_f64, 2_f64, 3_f64));
assert_eq!(v.wwyw(), dvec4(4_f64, 4_f64, 2_f64, 4_f64));
assert_eq!(v.wwzx(), dvec4(4_f64, 4_f64, 3_f64, 1_f64));
assert_eq!(v.wwzy(), dvec4(4_f64, 4_f64, 3_f64, 2_f64));
assert_eq!(v.wwzz(), dvec4(4_f64, 4_f64, 3_f64, 3_f64));
assert_eq!(v.wwzw(), dvec4(4_f64, 4_f64, 3_f64, 4_f64));
assert_eq!(v.wwwx(), dvec4(4_f64, 4_f64, 4_f64, 1_f64));
assert_eq!(v.wwwy(), dvec4(4_f64, 4_f64, 4_f64, 2_f64));
assert_eq!(v.wwwz(), dvec4(4_f64, 4_f64, 4_f64, 3_f64));
assert_eq!(v.wwww(), dvec4(4_f64, 4_f64, 4_f64, 4_f64));
assert_eq!(v.xxx(), dvec3(1_f64, 1_f64, 1_f64));
assert_eq!(v.xxy(), dvec3(1_f64, 1_f64, 2_f64));
assert_eq!(v.xxz(), dvec3(1_f64, 1_f64, 3_f64));
assert_eq!(v.xxw(), dvec3(1_f64, 1_f64, 4_f64));
assert_eq!(v.xyx(), dvec3(1_f64, 2_f64, 1_f64));
assert_eq!(v.xyy(), dvec3(1_f64, 2_f64, 2_f64));
assert_eq!(v.xyz(), dvec3(1_f64, 2_f64, 3_f64));
assert_eq!(v.xyw(), dvec3(1_f64, 2_f64, 4_f64));
assert_eq!(v.xzx(), dvec3(1_f64, 3_f64, 1_f64));
assert_eq!(v.xzy(), dvec3(1_f64, 3_f64, 2_f64));
assert_eq!(v.xzz(), dvec3(1_f64, 3_f64, 3_f64));
assert_eq!(v.xzw(), dvec3(1_f64, 3_f64, 4_f64));
assert_eq!(v.xwx(), dvec3(1_f64, 4_f64, 1_f64));
assert_eq!(v.xwy(), dvec3(1_f64, 4_f64, 2_f64));
assert_eq!(v.xwz(), dvec3(1_f64, 4_f64, 3_f64));
assert_eq!(v.xww(), dvec3(1_f64, 4_f64, 4_f64));
assert_eq!(v.yxx(), dvec3(2_f64, 1_f64, 1_f64));
assert_eq!(v.yxy(), dvec3(2_f64, 1_f64, 2_f64));
assert_eq!(v.yxz(), dvec3(2_f64, 1_f64, 3_f64));
assert_eq!(v.yxw(), dvec3(2_f64, 1_f64, 4_f64));
assert_eq!(v.yyx(), dvec3(2_f64, 2_f64, 1_f64));
assert_eq!(v.yyy(), dvec3(2_f64, 2_f64, 2_f64));
assert_eq!(v.yyz(), dvec3(2_f64, 2_f64, 3_f64));
assert_eq!(v.yyw(), dvec3(2_f64, 2_f64, 4_f64));
assert_eq!(v.yzx(), dvec3(2_f64, 3_f64, 1_f64));
assert_eq!(v.yzy(), dvec3(2_f64, 3_f64, 2_f64));
assert_eq!(v.yzz(), dvec3(2_f64, 3_f64, 3_f64));
assert_eq!(v.yzw(), dvec3(2_f64, 3_f64, 4_f64));
assert_eq!(v.ywx(), dvec3(2_f64, 4_f64, 1_f64));
assert_eq!(v.ywy(), dvec3(2_f64, 4_f64, 2_f64));
assert_eq!(v.ywz(), dvec3(2_f64, 4_f64, 3_f64));
assert_eq!(v.yww(), dvec3(2_f64, 4_f64, 4_f64));
assert_eq!(v.zxx(), dvec3(3_f64, 1_f64, 1_f64));
assert_eq!(v.zxy(), dvec3(3_f64, 1_f64, 2_f64));
assert_eq!(v.zxz(), dvec3(3_f64, 1_f64, 3_f64));
assert_eq!(v.zxw(), dvec3(3_f64, 1_f64, 4_f64));
assert_eq!(v.zyx(), dvec3(3_f64, 2_f64, 1_f64));
assert_eq!(v.zyy(), dvec3(3_f64, 2_f64, 2_f64));
assert_eq!(v.zyz(), dvec3(3_f64, 2_f64, 3_f64));
assert_eq!(v.zyw(), dvec3(3_f64, 2_f64, 4_f64));
assert_eq!(v.zzx(), dvec3(3_f64, 3_f64, 1_f64));
assert_eq!(v.zzy(), dvec3(3_f64, 3_f64, 2_f64));
assert_eq!(v.zzz(), dvec3(3_f64, 3_f64, 3_f64));
assert_eq!(v.zzw(), dvec3(3_f64, 3_f64, 4_f64));
assert_eq!(v.zwx(), dvec3(3_f64, 4_f64, 1_f64));
assert_eq!(v.zwy(), dvec3(3_f64, 4_f64, 2_f64));
assert_eq!(v.zwz(), dvec3(3_f64, 4_f64, 3_f64));
assert_eq!(v.zww(), dvec3(3_f64, 4_f64, 4_f64));
assert_eq!(v.wxx(), dvec3(4_f64, 1_f64, 1_f64));
assert_eq!(v.wxy(), dvec3(4_f64, 1_f64, 2_f64));
assert_eq!(v.wxz(), dvec3(4_f64, 1_f64, 3_f64));
assert_eq!(v.wxw(), dvec3(4_f64, 1_f64, 4_f64));
assert_eq!(v.wyx(), dvec3(4_f64, 2_f64, 1_f64));
assert_eq!(v.wyy(), dvec3(4_f64, 2_f64, 2_f64));
assert_eq!(v.wyz(), dvec3(4_f64, 2_f64, 3_f64));
assert_eq!(v.wyw(), dvec3(4_f64, 2_f64, 4_f64));
assert_eq!(v.wzx(), dvec3(4_f64, 3_f64, 1_f64));
assert_eq!(v.wzy(), dvec3(4_f64, 3_f64, 2_f64));
assert_eq!(v.wzz(), dvec3(4_f64, 3_f64, 3_f64));
assert_eq!(v.wzw(), dvec3(4_f64, 3_f64, 4_f64));
assert_eq!(v.wwx(), dvec3(4_f64, 4_f64, 1_f64));
assert_eq!(v.wwy(), dvec3(4_f64, 4_f64, 2_f64));
assert_eq!(v.wwz(), dvec3(4_f64, 4_f64, 3_f64));
assert_eq!(v.www(), dvec3(4_f64, 4_f64, 4_f64));
assert_eq!(v.xx(), dvec2(1_f64, 1_f64));
assert_eq!(v.xy(), dvec2(1_f64, 2_f64));
assert_eq!(v.xz(), dvec2(1_f64, 3_f64));
assert_eq!(v.xw(), dvec2(1_f64, 4_f64));
assert_eq!(v.yx(), dvec2(2_f64, 1_f64));
assert_eq!(v.yy(), dvec2(2_f64, 2_f64));
assert_eq!(v.yz(), dvec2(2_f64, 3_f64));
assert_eq!(v.yw(), dvec2(2_f64, 4_f64));
assert_eq!(v.zx(), dvec2(3_f64, 1_f64));
assert_eq!(v.zy(), dvec2(3_f64, 2_f64));
assert_eq!(v.zz(), dvec2(3_f64, 3_f64));
assert_eq!(v.zw(), dvec2(3_f64, 4_f64));
assert_eq!(v.wx(), dvec2(4_f64, 1_f64));
assert_eq!(v.wy(), dvec2(4_f64, 2_f64));
assert_eq!(v.wz(), dvec2(4_f64, 3_f64));
assert_eq!(v.ww(), dvec2(4_f64, 4_f64));
}
#[test]
fn test_dvec3_swizzles() {
let v = dvec3(1_f64, 2_f64, 3_f64);
assert_eq!(v, v.xyz());
assert_eq!(v.xxxx(), dvec4(1_f64, 1_f64, 1_f64, 1_f64));
assert_eq!(v.xxxy(), dvec4(1_f64, 1_f64, 1_f64, 2_f64));
assert_eq!(v.xxxz(), dvec4(1_f64, 1_f64, 1_f64, 3_f64));
assert_eq!(v.xxyx(), dvec4(1_f64, 1_f64, 2_f64, 1_f64));
assert_eq!(v.xxyy(), dvec4(1_f64, 1_f64, 2_f64, 2_f64));
assert_eq!(v.xxyz(), dvec4(1_f64, 1_f64, 2_f64, 3_f64));
assert_eq!(v.xxzx(), dvec4(1_f64, 1_f64, 3_f64, 1_f64));
assert_eq!(v.xxzy(), dvec4(1_f64, 1_f64, 3_f64, 2_f64));
assert_eq!(v.xxzz(), dvec4(1_f64, 1_f64, 3_f64, 3_f64));
assert_eq!(v.xyxx(), dvec4(1_f64, 2_f64, 1_f64, 1_f64));
assert_eq!(v.xyxy(), dvec4(1_f64, 2_f64, 1_f64, 2_f64));
assert_eq!(v.xyxz(), dvec4(1_f64, 2_f64, 1_f64, 3_f64));
assert_eq!(v.xyyx(), dvec4(1_f64, 2_f64, 2_f64, 1_f64));
assert_eq!(v.xyyy(), dvec4(1_f64, 2_f64, 2_f64, 2_f64));
assert_eq!(v.xyyz(), dvec4(1_f64, 2_f64, 2_f64, 3_f64));
assert_eq!(v.xyzx(), dvec4(1_f64, 2_f64, 3_f64, 1_f64));
assert_eq!(v.xyzy(), dvec4(1_f64, 2_f64, 3_f64, 2_f64));
assert_eq!(v.xyzz(), dvec4(1_f64, 2_f64, 3_f64, 3_f64));
assert_eq!(v.xzxx(), dvec4(1_f64, 3_f64, 1_f64, 1_f64));
assert_eq!(v.xzxy(), dvec4(1_f64, 3_f64, 1_f64, 2_f64));
assert_eq!(v.xzxz(), dvec4(1_f64, 3_f64, 1_f64, 3_f64));
assert_eq!(v.xzyx(), dvec4(1_f64, 3_f64, 2_f64, 1_f64));
assert_eq!(v.xzyy(), dvec4(1_f64, 3_f64, 2_f64, 2_f64));
assert_eq!(v.xzyz(), dvec4(1_f64, 3_f64, 2_f64, 3_f64));
assert_eq!(v.xzzx(), dvec4(1_f64, 3_f64, 3_f64, 1_f64));
assert_eq!(v.xzzy(), dvec4(1_f64, 3_f64, 3_f64, 2_f64));
assert_eq!(v.xzzz(), dvec4(1_f64, 3_f64, 3_f64, 3_f64));
assert_eq!(v.yxxx(), dvec4(2_f64, 1_f64, 1_f64, 1_f64));
assert_eq!(v.yxxy(), dvec4(2_f64, 1_f64, 1_f64, 2_f64));
assert_eq!(v.yxxz(), dvec4(2_f64, 1_f64, 1_f64, 3_f64));
assert_eq!(v.yxyx(), dvec4(2_f64, 1_f64, 2_f64, 1_f64));
assert_eq!(v.yxyy(), dvec4(2_f64, 1_f64, 2_f64, 2_f64));
assert_eq!(v.yxyz(), dvec4(2_f64, 1_f64, 2_f64, 3_f64));
assert_eq!(v.yxzx(), dvec4(2_f64, 1_f64, 3_f64, 1_f64));
assert_eq!(v.yxzy(), dvec4(2_f64, 1_f64, 3_f64, 2_f64));
assert_eq!(v.yxzz(), dvec4(2_f64, 1_f64, 3_f64, 3_f64));
assert_eq!(v.yyxx(), dvec4(2_f64, 2_f64, 1_f64, 1_f64));
assert_eq!(v.yyxy(), dvec4(2_f64, 2_f64, 1_f64, 2_f64));
assert_eq!(v.yyxz(), dvec4(2_f64, 2_f64, 1_f64, 3_f64));
assert_eq!(v.yyyx(), dvec4(2_f64, 2_f64, 2_f64, 1_f64));
assert_eq!(v.yyyy(), dvec4(2_f64, 2_f64, 2_f64, 2_f64));
assert_eq!(v.yyyz(), dvec4(2_f64, 2_f64, 2_f64, 3_f64));
assert_eq!(v.yyzx(), dvec4(2_f64, 2_f64, 3_f64, 1_f64));
assert_eq!(v.yyzy(), dvec4(2_f64, 2_f64, 3_f64, 2_f64));
assert_eq!(v.yyzz(), dvec4(2_f64, 2_f64, 3_f64, 3_f64));
assert_eq!(v.yzxx(), dvec4(2_f64, 3_f64, 1_f64, 1_f64));
assert_eq!(v.yzxy(), dvec4(2_f64, 3_f64, 1_f64, 2_f64));
assert_eq!(v.yzxz(), dvec4(2_f64, 3_f64, 1_f64, 3_f64));
assert_eq!(v.yzyx(), dvec4(2_f64, 3_f64, 2_f64, 1_f64));
assert_eq!(v.yzyy(), dvec4(2_f64, 3_f64, 2_f64, 2_f64));
assert_eq!(v.yzyz(), dvec4(2_f64, 3_f64, 2_f64, 3_f64));
assert_eq!(v.yzzx(), dvec4(2_f64, 3_f64, 3_f64, 1_f64));
assert_eq!(v.yzzy(), dvec4(2_f64, 3_f64, 3_f64, 2_f64));
assert_eq!(v.yzzz(), dvec4(2_f64, 3_f64, 3_f64, 3_f64));
assert_eq!(v.zxxx(), dvec4(3_f64, 1_f64, 1_f64, 1_f64));
assert_eq!(v.zxxy(), dvec4(3_f64, 1_f64, 1_f64, 2_f64));
assert_eq!(v.zxxz(), dvec4(3_f64, 1_f64, 1_f64, 3_f64));
assert_eq!(v.zxyx(), dvec4(3_f64, 1_f64, 2_f64, 1_f64));
assert_eq!(v.zxyy(), dvec4(3_f64, 1_f64, 2_f64, 2_f64));
assert_eq!(v.zxyz(), dvec4(3_f64, 1_f64, 2_f64, 3_f64));
assert_eq!(v.zxzx(), dvec4(3_f64, 1_f64, 3_f64, 1_f64));
assert_eq!(v.zxzy(), dvec4(3_f64, 1_f64, 3_f64, 2_f64));
assert_eq!(v.zxzz(), dvec4(3_f64, 1_f64, 3_f64, 3_f64));
assert_eq!(v.zyxx(), dvec4(3_f64, 2_f64, 1_f64, 1_f64));
assert_eq!(v.zyxy(), dvec4(3_f64, 2_f64, 1_f64, 2_f64));
assert_eq!(v.zyxz(), dvec4(3_f64, 2_f64, 1_f64, 3_f64));
assert_eq!(v.zyyx(), dvec4(3_f64, 2_f64, 2_f64, 1_f64));
assert_eq!(v.zyyy(), dvec4(3_f64, 2_f64, 2_f64, 2_f64));
assert_eq!(v.zyyz(), dvec4(3_f64, 2_f64, 2_f64, 3_f64));
assert_eq!(v.zyzx(), dvec4(3_f64, 2_f64, 3_f64, 1_f64));
assert_eq!(v.zyzy(), dvec4(3_f64, 2_f64, 3_f64, 2_f64));
assert_eq!(v.zyzz(), dvec4(3_f64, 2_f64, 3_f64, 3_f64));
assert_eq!(v.zzxx(), dvec4(3_f64, 3_f64, 1_f64, 1_f64));
assert_eq!(v.zzxy(), dvec4(3_f64, 3_f64, 1_f64, 2_f64));
assert_eq!(v.zzxz(), dvec4(3_f64, 3_f64, 1_f64, 3_f64));
assert_eq!(v.zzyx(), dvec4(3_f64, 3_f64, 2_f64, 1_f64));
assert_eq!(v.zzyy(), dvec4(3_f64, 3_f64, 2_f64, 2_f64));
assert_eq!(v.zzyz(), dvec4(3_f64, 3_f64, 2_f64, 3_f64));
assert_eq!(v.zzzx(), dvec4(3_f64, 3_f64, 3_f64, 1_f64));
assert_eq!(v.zzzy(), dvec4(3_f64, 3_f64, 3_f64, 2_f64));
assert_eq!(v.zzzz(), dvec4(3_f64, 3_f64, 3_f64, 3_f64));
assert_eq!(v.xxx(), dvec3(1_f64, 1_f64, 1_f64));
assert_eq!(v.xxy(), dvec3(1_f64, 1_f64, 2_f64));
assert_eq!(v.xxz(), dvec3(1_f64, 1_f64, 3_f64));
assert_eq!(v.xyx(), dvec3(1_f64, 2_f64, 1_f64));
assert_eq!(v.xyy(), dvec3(1_f64, 2_f64, 2_f64));
assert_eq!(v.xzx(), dvec3(1_f64, 3_f64, 1_f64));
assert_eq!(v.xzy(), dvec3(1_f64, 3_f64, 2_f64));
assert_eq!(v.xzz(), dvec3(1_f64, 3_f64, 3_f64));
assert_eq!(v.yxx(), dvec3(2_f64, 1_f64, 1_f64));
assert_eq!(v.yxy(), dvec3(2_f64, 1_f64, 2_f64));
assert_eq!(v.yxz(), dvec3(2_f64, 1_f64, 3_f64));
assert_eq!(v.yyx(), dvec3(2_f64, 2_f64, 1_f64));
assert_eq!(v.yyy(), dvec3(2_f64, 2_f64, 2_f64));
assert_eq!(v.yyz(), dvec3(2_f64, 2_f64, 3_f64));
assert_eq!(v.yzx(), dvec3(2_f64, 3_f64, 1_f64));
assert_eq!(v.yzy(), dvec3(2_f64, 3_f64, 2_f64));
assert_eq!(v.yzz(), dvec3(2_f64, 3_f64, 3_f64));
assert_eq!(v.zxx(), dvec3(3_f64, 1_f64, 1_f64));
assert_eq!(v.zxy(), dvec3(3_f64, 1_f64, 2_f64));
assert_eq!(v.zxz(), dvec3(3_f64, 1_f64, 3_f64));
assert_eq!(v.zyx(), dvec3(3_f64, 2_f64, 1_f64));
assert_eq!(v.zyy(), dvec3(3_f64, 2_f64, 2_f64));
assert_eq!(v.zyz(), dvec3(3_f64, 2_f64, 3_f64));
assert_eq!(v.zzx(), dvec3(3_f64, 3_f64, 1_f64));
assert_eq!(v.zzy(), dvec3(3_f64, 3_f64, 2_f64));
assert_eq!(v.zzz(), dvec3(3_f64, 3_f64, 3_f64));
assert_eq!(v.xx(), dvec2(1_f64, 1_f64));
assert_eq!(v.xy(), dvec2(1_f64, 2_f64));
assert_eq!(v.xz(), dvec2(1_f64, 3_f64));
assert_eq!(v.yx(), dvec2(2_f64, 1_f64));
assert_eq!(v.yy(), dvec2(2_f64, 2_f64));
assert_eq!(v.yz(), dvec2(2_f64, 3_f64));
assert_eq!(v.zx(), dvec2(3_f64, 1_f64));
assert_eq!(v.zy(), dvec2(3_f64, 2_f64));
assert_eq!(v.zz(), dvec2(3_f64, 3_f64));
}
#[test]
fn test_dvec2_swizzles() {
let v = dvec2(1_f64, 2_f64);
assert_eq!(v, v.xy());
assert_eq!(v.xxxx(), dvec4(1_f64, 1_f64, 1_f64, 1_f64));
assert_eq!(v.xxxy(), dvec4(1_f64, 1_f64, 1_f64, 2_f64));
assert_eq!(v.xxyx(), dvec4(1_f64, 1_f64, 2_f64, 1_f64));
assert_eq!(v.xxyy(), dvec4(1_f64, 1_f64, 2_f64, 2_f64));
assert_eq!(v.xyxx(), dvec4(1_f64, 2_f64, 1_f64, 1_f64));
assert_eq!(v.xyxy(), dvec4(1_f64, 2_f64, 1_f64, 2_f64));
assert_eq!(v.xyyx(), dvec4(1_f64, 2_f64, 2_f64, 1_f64));
assert_eq!(v.xyyy(), dvec4(1_f64, 2_f64, 2_f64, 2_f64));
assert_eq!(v.yxxx(), dvec4(2_f64, 1_f64, 1_f64, 1_f64));
assert_eq!(v.yxxy(), dvec4(2_f64, 1_f64, 1_f64, 2_f64));
assert_eq!(v.yxyx(), dvec4(2_f64, 1_f64, 2_f64, 1_f64));
assert_eq!(v.yxyy(), dvec4(2_f64, 1_f64, 2_f64, 2_f64));
assert_eq!(v.yyxx(), dvec4(2_f64, 2_f64, 1_f64, 1_f64));
assert_eq!(v.yyxy(), dvec4(2_f64, 2_f64, 1_f64, 2_f64));
assert_eq!(v.yyyx(), dvec4(2_f64, 2_f64, 2_f64, 1_f64));
assert_eq!(v.yyyy(), dvec4(2_f64, 2_f64, 2_f64, 2_f64));
assert_eq!(v.xxx(), dvec3(1_f64, 1_f64, 1_f64));
assert_eq!(v.xxy(), dvec3(1_f64, 1_f64, 2_f64));
assert_eq!(v.xyx(), dvec3(1_f64, 2_f64, 1_f64));
assert_eq!(v.xyy(), dvec3(1_f64, 2_f64, 2_f64));
assert_eq!(v.yxx(), dvec3(2_f64, 1_f64, 1_f64));
assert_eq!(v.yxy(), dvec3(2_f64, 1_f64, 2_f64));
assert_eq!(v.yyx(), dvec3(2_f64, 2_f64, 1_f64));
assert_eq!(v.yyy(), dvec3(2_f64, 2_f64, 2_f64));
assert_eq!(v.xx(), dvec2(1_f64, 1_f64));
assert_eq!(v.yx(), dvec2(2_f64, 1_f64));
assert_eq!(v.yy(), dvec2(2_f64, 2_f64));
}
#[test]
fn test_ivec4_swizzles() {
let v = ivec4(1_i32, 2_i32, 3_i32, 4_i32);
assert_eq!(v, v.xyzw());
assert_eq!(v.xxxx(), ivec4(1_i32, 1_i32, 1_i32, 1_i32));
assert_eq!(v.xxxy(), ivec4(1_i32, 1_i32, 1_i32, 2_i32));
assert_eq!(v.xxxz(), ivec4(1_i32, 1_i32, 1_i32, 3_i32));
assert_eq!(v.xxxw(), ivec4(1_i32, 1_i32, 1_i32, 4_i32));
assert_eq!(v.xxyx(), ivec4(1_i32, 1_i32, 2_i32, 1_i32));
assert_eq!(v.xxyy(), ivec4(1_i32, 1_i32, 2_i32, 2_i32));
assert_eq!(v.xxyz(), ivec4(1_i32, 1_i32, 2_i32, 3_i32));
assert_eq!(v.xxyw(), ivec4(1_i32, 1_i32, 2_i32, 4_i32));
assert_eq!(v.xxzx(), ivec4(1_i32, 1_i32, 3_i32, 1_i32));
assert_eq!(v.xxzy(), ivec4(1_i32, 1_i32, 3_i32, 2_i32));
assert_eq!(v.xxzz(), ivec4(1_i32, 1_i32, 3_i32, 3_i32));
assert_eq!(v.xxzw(), ivec4(1_i32, 1_i32, 3_i32, 4_i32));
assert_eq!(v.xxwx(), ivec4(1_i32, 1_i32, 4_i32, 1_i32));
assert_eq!(v.xxwy(), ivec4(1_i32, 1_i32, 4_i32, 2_i32));
assert_eq!(v.xxwz(), ivec4(1_i32, 1_i32, 4_i32, 3_i32));
assert_eq!(v.xxww(), ivec4(1_i32, 1_i32, 4_i32, 4_i32));
assert_eq!(v.xyxx(), ivec4(1_i32, 2_i32, 1_i32, 1_i32));
assert_eq!(v.xyxy(), ivec4(1_i32, 2_i32, 1_i32, 2_i32));
assert_eq!(v.xyxz(), ivec4(1_i32, 2_i32, 1_i32, 3_i32));
assert_eq!(v.xyxw(), ivec4(1_i32, 2_i32, 1_i32, 4_i32));
assert_eq!(v.xyyx(), ivec4(1_i32, 2_i32, 2_i32, 1_i32));
assert_eq!(v.xyyy(), ivec4(1_i32, 2_i32, 2_i32, 2_i32));
assert_eq!(v.xyyz(), ivec4(1_i32, 2_i32, 2_i32, 3_i32));
assert_eq!(v.xyyw(), ivec4(1_i32, 2_i32, 2_i32, 4_i32));
assert_eq!(v.xyzx(), ivec4(1_i32, 2_i32, 3_i32, 1_i32));
assert_eq!(v.xyzy(), ivec4(1_i32, 2_i32, 3_i32, 2_i32));
assert_eq!(v.xyzz(), ivec4(1_i32, 2_i32, 3_i32, 3_i32));
assert_eq!(v.xywx(), ivec4(1_i32, 2_i32, 4_i32, 1_i32));
assert_eq!(v.xywy(), ivec4(1_i32, 2_i32, 4_i32, 2_i32));
assert_eq!(v.xywz(), ivec4(1_i32, 2_i32, 4_i32, 3_i32));
assert_eq!(v.xyww(), ivec4(1_i32, 2_i32, 4_i32, 4_i32));
assert_eq!(v.xzxx(), ivec4(1_i32, 3_i32, 1_i32, 1_i32));
assert_eq!(v.xzxy(), ivec4(1_i32, 3_i32, 1_i32, 2_i32));
assert_eq!(v.xzxz(), ivec4(1_i32, 3_i32, 1_i32, 3_i32));
assert_eq!(v.xzxw(), ivec4(1_i32, 3_i32, 1_i32, 4_i32));
assert_eq!(v.xzyx(), ivec4(1_i32, 3_i32, 2_i32, 1_i32));
assert_eq!(v.xzyy(), ivec4(1_i32, 3_i32, 2_i32, 2_i32));
assert_eq!(v.xzyz(), ivec4(1_i32, 3_i32, 2_i32, 3_i32));
assert_eq!(v.xzyw(), ivec4(1_i32, 3_i32, 2_i32, 4_i32));
assert_eq!(v.xzzx(), ivec4(1_i32, 3_i32, 3_i32, 1_i32));
assert_eq!(v.xzzy(), ivec4(1_i32, 3_i32, 3_i32, 2_i32));
assert_eq!(v.xzzz(), ivec4(1_i32, 3_i32, 3_i32, 3_i32));
assert_eq!(v.xzzw(), ivec4(1_i32, 3_i32, 3_i32, 4_i32));
assert_eq!(v.xzwx(), ivec4(1_i32, 3_i32, 4_i32, 1_i32));
assert_eq!(v.xzwy(), ivec4(1_i32, 3_i32, 4_i32, 2_i32));
assert_eq!(v.xzwz(), ivec4(1_i32, 3_i32, 4_i32, 3_i32));
assert_eq!(v.xzww(), ivec4(1_i32, 3_i32, 4_i32, 4_i32));
assert_eq!(v.xwxx(), ivec4(1_i32, 4_i32, 1_i32, 1_i32));
assert_eq!(v.xwxy(), ivec4(1_i32, 4_i32, 1_i32, 2_i32));
assert_eq!(v.xwxz(), ivec4(1_i32, 4_i32, 1_i32, 3_i32));
assert_eq!(v.xwxw(), ivec4(1_i32, 4_i32, 1_i32, 4_i32));
assert_eq!(v.xwyx(), ivec4(1_i32, 4_i32, 2_i32, 1_i32));
assert_eq!(v.xwyy(), ivec4(1_i32, 4_i32, 2_i32, 2_i32));
assert_eq!(v.xwyz(), ivec4(1_i32, 4_i32, 2_i32, 3_i32));
assert_eq!(v.xwyw(), ivec4(1_i32, 4_i32, 2_i32, 4_i32));
assert_eq!(v.xwzx(), ivec4(1_i32, 4_i32, 3_i32, 1_i32));
assert_eq!(v.xwzy(), ivec4(1_i32, 4_i32, 3_i32, 2_i32));
assert_eq!(v.xwzz(), ivec4(1_i32, 4_i32, 3_i32, 3_i32));
assert_eq!(v.xwzw(), ivec4(1_i32, 4_i32, 3_i32, 4_i32));
assert_eq!(v.xwwx(), ivec4(1_i32, 4_i32, 4_i32, 1_i32));
assert_eq!(v.xwwy(), ivec4(1_i32, 4_i32, 4_i32, 2_i32));
assert_eq!(v.xwwz(), ivec4(1_i32, 4_i32, 4_i32, 3_i32));
assert_eq!(v.xwww(), ivec4(1_i32, 4_i32, 4_i32, 4_i32));
assert_eq!(v.yxxx(), ivec4(2_i32, 1_i32, 1_i32, 1_i32));
assert_eq!(v.yxxy(), ivec4(2_i32, 1_i32, 1_i32, 2_i32));
assert_eq!(v.yxxz(), ivec4(2_i32, 1_i32, 1_i32, 3_i32));
assert_eq!(v.yxxw(), ivec4(2_i32, 1_i32, 1_i32, 4_i32));
assert_eq!(v.yxyx(), ivec4(2_i32, 1_i32, 2_i32, 1_i32));
assert_eq!(v.yxyy(), ivec4(2_i32, 1_i32, 2_i32, 2_i32));
assert_eq!(v.yxyz(), ivec4(2_i32, 1_i32, 2_i32, 3_i32));
assert_eq!(v.yxyw(), ivec4(2_i32, 1_i32, 2_i32, 4_i32));
assert_eq!(v.yxzx(), ivec4(2_i32, 1_i32, 3_i32, 1_i32));
assert_eq!(v.yxzy(), ivec4(2_i32, 1_i32, 3_i32, 2_i32));
assert_eq!(v.yxzz(), ivec4(2_i32, 1_i32, 3_i32, 3_i32));
assert_eq!(v.yxzw(), ivec4(2_i32, 1_i32, 3_i32, 4_i32));
assert_eq!(v.yxwx(), ivec4(2_i32, 1_i32, 4_i32, 1_i32));
assert_eq!(v.yxwy(), ivec4(2_i32, 1_i32, 4_i32, 2_i32));
assert_eq!(v.yxwz(), ivec4(2_i32, 1_i32, 4_i32, 3_i32));
assert_eq!(v.yxww(), ivec4(2_i32, 1_i32, 4_i32, 4_i32));
assert_eq!(v.yyxx(), ivec4(2_i32, 2_i32, 1_i32, 1_i32));
assert_eq!(v.yyxy(), ivec4(2_i32, 2_i32, 1_i32, 2_i32));
assert_eq!(v.yyxz(), ivec4(2_i32, 2_i32, 1_i32, 3_i32));
assert_eq!(v.yyxw(), ivec4(2_i32, 2_i32, 1_i32, 4_i32));
assert_eq!(v.yyyx(), ivec4(2_i32, 2_i32, 2_i32, 1_i32));
assert_eq!(v.yyyy(), ivec4(2_i32, 2_i32, 2_i32, 2_i32));
assert_eq!(v.yyyz(), ivec4(2_i32, 2_i32, 2_i32, 3_i32));
assert_eq!(v.yyyw(), ivec4(2_i32, 2_i32, 2_i32, 4_i32));
assert_eq!(v.yyzx(), ivec4(2_i32, 2_i32, 3_i32, 1_i32));
assert_eq!(v.yyzy(), ivec4(2_i32, 2_i32, 3_i32, 2_i32));
assert_eq!(v.yyzz(), ivec4(2_i32, 2_i32, 3_i32, 3_i32));
assert_eq!(v.yyzw(), ivec4(2_i32, 2_i32, 3_i32, 4_i32));
assert_eq!(v.yywx(), ivec4(2_i32, 2_i32, 4_i32, 1_i32));
assert_eq!(v.yywy(), ivec4(2_i32, 2_i32, 4_i32, 2_i32));
assert_eq!(v.yywz(), ivec4(2_i32, 2_i32, 4_i32, 3_i32));
assert_eq!(v.yyww(), ivec4(2_i32, 2_i32, 4_i32, 4_i32));
assert_eq!(v.yzxx(), ivec4(2_i32, 3_i32, 1_i32, 1_i32));
assert_eq!(v.yzxy(), ivec4(2_i32, 3_i32, 1_i32, 2_i32));
assert_eq!(v.yzxz(), ivec4(2_i32, 3_i32, 1_i32, 3_i32));
assert_eq!(v.yzxw(), ivec4(2_i32, 3_i32, 1_i32, 4_i32));
assert_eq!(v.yzyx(), ivec4(2_i32, 3_i32, 2_i32, 1_i32));
assert_eq!(v.yzyy(), ivec4(2_i32, 3_i32, 2_i32, 2_i32));
assert_eq!(v.yzyz(), ivec4(2_i32, 3_i32, 2_i32, 3_i32));
assert_eq!(v.yzyw(), ivec4(2_i32, 3_i32, 2_i32, 4_i32));
assert_eq!(v.yzzx(), ivec4(2_i32, 3_i32, 3_i32, 1_i32));
assert_eq!(v.yzzy(), ivec4(2_i32, 3_i32, 3_i32, 2_i32));
assert_eq!(v.yzzz(), ivec4(2_i32, 3_i32, 3_i32, 3_i32));
assert_eq!(v.yzzw(), ivec4(2_i32, 3_i32, 3_i32, 4_i32));
assert_eq!(v.yzwx(), ivec4(2_i32, 3_i32, 4_i32, 1_i32));
assert_eq!(v.yzwy(), ivec4(2_i32, 3_i32, 4_i32, 2_i32));
assert_eq!(v.yzwz(), ivec4(2_i32, 3_i32, 4_i32, 3_i32));
assert_eq!(v.yzww(), ivec4(2_i32, 3_i32, 4_i32, 4_i32));
assert_eq!(v.ywxx(), ivec4(2_i32, 4_i32, 1_i32, 1_i32));
assert_eq!(v.ywxy(), ivec4(2_i32, 4_i32, 1_i32, 2_i32));
assert_eq!(v.ywxz(), ivec4(2_i32, 4_i32, 1_i32, 3_i32));
assert_eq!(v.ywxw(), ivec4(2_i32, 4_i32, 1_i32, 4_i32));
assert_eq!(v.ywyx(), ivec4(2_i32, 4_i32, 2_i32, 1_i32));
assert_eq!(v.ywyy(), ivec4(2_i32, 4_i32, 2_i32, 2_i32));
assert_eq!(v.ywyz(), ivec4(2_i32, 4_i32, 2_i32, 3_i32));
assert_eq!(v.ywyw(), ivec4(2_i32, 4_i32, 2_i32, 4_i32));
assert_eq!(v.ywzx(), ivec4(2_i32, 4_i32, 3_i32, 1_i32));
assert_eq!(v.ywzy(), ivec4(2_i32, 4_i32, 3_i32, 2_i32));
assert_eq!(v.ywzz(), ivec4(2_i32, 4_i32, 3_i32, 3_i32));
assert_eq!(v.ywzw(), ivec4(2_i32, 4_i32, 3_i32, 4_i32));
assert_eq!(v.ywwx(), ivec4(2_i32, 4_i32, 4_i32, 1_i32));
assert_eq!(v.ywwy(), ivec4(2_i32, 4_i32, 4_i32, 2_i32));
assert_eq!(v.ywwz(), ivec4(2_i32, 4_i32, 4_i32, 3_i32));
assert_eq!(v.ywww(), ivec4(2_i32, 4_i32, 4_i32, 4_i32));
assert_eq!(v.zxxx(), ivec4(3_i32, 1_i32, 1_i32, 1_i32));
assert_eq!(v.zxxy(), ivec4(3_i32, 1_i32, 1_i32, 2_i32));
assert_eq!(v.zxxz(), ivec4(3_i32, 1_i32, 1_i32, 3_i32));
assert_eq!(v.zxxw(), ivec4(3_i32, 1_i32, 1_i32, 4_i32));
assert_eq!(v.zxyx(), ivec4(3_i32, 1_i32, 2_i32, 1_i32));
assert_eq!(v.zxyy(), ivec4(3_i32, 1_i32, 2_i32, 2_i32));
assert_eq!(v.zxyz(), ivec4(3_i32, 1_i32, 2_i32, 3_i32));
assert_eq!(v.zxyw(), ivec4(3_i32, 1_i32, 2_i32, 4_i32));
assert_eq!(v.zxzx(), ivec4(3_i32, 1_i32, 3_i32, 1_i32));
assert_eq!(v.zxzy(), ivec4(3_i32, 1_i32, 3_i32, 2_i32));
assert_eq!(v.zxzz(), ivec4(3_i32, 1_i32, 3_i32, 3_i32));
assert_eq!(v.zxzw(), ivec4(3_i32, 1_i32, 3_i32, 4_i32));
assert_eq!(v.zxwx(), ivec4(3_i32, 1_i32, 4_i32, 1_i32));
assert_eq!(v.zxwy(), ivec4(3_i32, 1_i32, 4_i32, 2_i32));
assert_eq!(v.zxwz(), ivec4(3_i32, 1_i32, 4_i32, 3_i32));
assert_eq!(v.zxww(), ivec4(3_i32, 1_i32, 4_i32, 4_i32));
assert_eq!(v.zyxx(), ivec4(3_i32, 2_i32, 1_i32, 1_i32));
assert_eq!(v.zyxy(), ivec4(3_i32, 2_i32, 1_i32, 2_i32));
assert_eq!(v.zyxz(), ivec4(3_i32, 2_i32, 1_i32, 3_i32));
assert_eq!(v.zyxw(), ivec4(3_i32, 2_i32, 1_i32, 4_i32));
assert_eq!(v.zyyx(), ivec4(3_i32, 2_i32, 2_i32, 1_i32));
assert_eq!(v.zyyy(), ivec4(3_i32, 2_i32, 2_i32, 2_i32));
assert_eq!(v.zyyz(), ivec4(3_i32, 2_i32, 2_i32, 3_i32));
assert_eq!(v.zyyw(), ivec4(3_i32, 2_i32, 2_i32, 4_i32));
assert_eq!(v.zyzx(), ivec4(3_i32, 2_i32, 3_i32, 1_i32));
assert_eq!(v.zyzy(), ivec4(3_i32, 2_i32, 3_i32, 2_i32));
assert_eq!(v.zyzz(), ivec4(3_i32, 2_i32, 3_i32, 3_i32));
assert_eq!(v.zyzw(), ivec4(3_i32, 2_i32, 3_i32, 4_i32));
assert_eq!(v.zywx(), ivec4(3_i32, 2_i32, 4_i32, 1_i32));
assert_eq!(v.zywy(), ivec4(3_i32, 2_i32, 4_i32, 2_i32));
assert_eq!(v.zywz(), ivec4(3_i32, 2_i32, 4_i32, 3_i32));
assert_eq!(v.zyww(), ivec4(3_i32, 2_i32, 4_i32, 4_i32));
assert_eq!(v.zzxx(), ivec4(3_i32, 3_i32, 1_i32, 1_i32));
assert_eq!(v.zzxy(), ivec4(3_i32, 3_i32, 1_i32, 2_i32));
assert_eq!(v.zzxz(), ivec4(3_i32, 3_i32, 1_i32, 3_i32));
assert_eq!(v.zzxw(), ivec4(3_i32, 3_i32, 1_i32, 4_i32));
assert_eq!(v.zzyx(), ivec4(3_i32, 3_i32, 2_i32, 1_i32));
assert_eq!(v.zzyy(), ivec4(3_i32, 3_i32, 2_i32, 2_i32));
assert_eq!(v.zzyz(), ivec4(3_i32, 3_i32, 2_i32, 3_i32));
assert_eq!(v.zzyw(), ivec4(3_i32, 3_i32, 2_i32, 4_i32));
assert_eq!(v.zzzx(), ivec4(3_i32, 3_i32, 3_i32, 1_i32));
assert_eq!(v.zzzy(), ivec4(3_i32, 3_i32, 3_i32, 2_i32));
assert_eq!(v.zzzz(), ivec4(3_i32, 3_i32, 3_i32, 3_i32));
assert_eq!(v.zzzw(), ivec4(3_i32, 3_i32, 3_i32, 4_i32));
assert_eq!(v.zzwx(), ivec4(3_i32, 3_i32, 4_i32, 1_i32));
assert_eq!(v.zzwy(), ivec4(3_i32, 3_i32, 4_i32, 2_i32));
assert_eq!(v.zzwz(), ivec4(3_i32, 3_i32, 4_i32, 3_i32));
assert_eq!(v.zzww(), ivec4(3_i32, 3_i32, 4_i32, 4_i32));
assert_eq!(v.zwxx(), ivec4(3_i32, 4_i32, 1_i32, 1_i32));
assert_eq!(v.zwxy(), ivec4(3_i32, 4_i32, 1_i32, 2_i32));
assert_eq!(v.zwxz(), ivec4(3_i32, 4_i32, 1_i32, 3_i32));
assert_eq!(v.zwxw(), ivec4(3_i32, 4_i32, 1_i32, 4_i32));
assert_eq!(v.zwyx(), ivec4(3_i32, 4_i32, 2_i32, 1_i32));
assert_eq!(v.zwyy(), ivec4(3_i32, 4_i32, 2_i32, 2_i32));
assert_eq!(v.zwyz(), ivec4(3_i32, 4_i32, 2_i32, 3_i32));
assert_eq!(v.zwyw(), ivec4(3_i32, 4_i32, 2_i32, 4_i32));
assert_eq!(v.zwzx(), ivec4(3_i32, 4_i32, 3_i32, 1_i32));
assert_eq!(v.zwzy(), ivec4(3_i32, 4_i32, 3_i32, 2_i32));
assert_eq!(v.zwzz(), ivec4(3_i32, 4_i32, 3_i32, 3_i32));
assert_eq!(v.zwzw(), ivec4(3_i32, 4_i32, 3_i32, 4_i32));
assert_eq!(v.zwwx(), ivec4(3_i32, 4_i32, 4_i32, 1_i32));
assert_eq!(v.zwwy(), ivec4(3_i32, 4_i32, 4_i32, 2_i32));
assert_eq!(v.zwwz(), ivec4(3_i32, 4_i32, 4_i32, 3_i32));
assert_eq!(v.zwww(), ivec4(3_i32, 4_i32, 4_i32, 4_i32));
assert_eq!(v.wxxx(), ivec4(4_i32, 1_i32, 1_i32, 1_i32));
assert_eq!(v.wxxy(), ivec4(4_i32, 1_i32, 1_i32, 2_i32));
assert_eq!(v.wxxz(), ivec4(4_i32, 1_i32, 1_i32, 3_i32));
assert_eq!(v.wxxw(), ivec4(4_i32, 1_i32, 1_i32, 4_i32));
assert_eq!(v.wxyx(), ivec4(4_i32, 1_i32, 2_i32, 1_i32));
assert_eq!(v.wxyy(), ivec4(4_i32, 1_i32, 2_i32, 2_i32));
assert_eq!(v.wxyz(), ivec4(4_i32, 1_i32, 2_i32, 3_i32));
assert_eq!(v.wxyw(), ivec4(4_i32, 1_i32, 2_i32, 4_i32));
assert_eq!(v.wxzx(), ivec4(4_i32, 1_i32, 3_i32, 1_i32));
assert_eq!(v.wxzy(), ivec4(4_i32, 1_i32, 3_i32, 2_i32));
assert_eq!(v.wxzz(), ivec4(4_i32, 1_i32, 3_i32, 3_i32));
assert_eq!(v.wxzw(), ivec4(4_i32, 1_i32, 3_i32, 4_i32));
assert_eq!(v.wxwx(), ivec4(4_i32, 1_i32, 4_i32, 1_i32));
assert_eq!(v.wxwy(), ivec4(4_i32, 1_i32, 4_i32, 2_i32));
assert_eq!(v.wxwz(), ivec4(4_i32, 1_i32, 4_i32, 3_i32));
assert_eq!(v.wxww(), ivec4(4_i32, 1_i32, 4_i32, 4_i32));
assert_eq!(v.wyxx(), ivec4(4_i32, 2_i32, 1_i32, 1_i32));
assert_eq!(v.wyxy(), ivec4(4_i32, 2_i32, 1_i32, 2_i32));
assert_eq!(v.wyxz(), ivec4(4_i32, 2_i32, 1_i32, 3_i32));
assert_eq!(v.wyxw(), ivec4(4_i32, 2_i32, 1_i32, 4_i32));
assert_eq!(v.wyyx(), ivec4(4_i32, 2_i32, 2_i32, 1_i32));
assert_eq!(v.wyyy(), ivec4(4_i32, 2_i32, 2_i32, 2_i32));
assert_eq!(v.wyyz(), ivec4(4_i32, 2_i32, 2_i32, 3_i32));
assert_eq!(v.wyyw(), ivec4(4_i32, 2_i32, 2_i32, 4_i32));
assert_eq!(v.wyzx(), ivec4(4_i32, 2_i32, 3_i32, 1_i32));
assert_eq!(v.wyzy(), ivec4(4_i32, 2_i32, 3_i32, 2_i32));
assert_eq!(v.wyzz(), ivec4(4_i32, 2_i32, 3_i32, 3_i32));
assert_eq!(v.wyzw(), ivec4(4_i32, 2_i32, 3_i32, 4_i32));
assert_eq!(v.wywx(), ivec4(4_i32, 2_i32, 4_i32, 1_i32));
assert_eq!(v.wywy(), ivec4(4_i32, 2_i32, 4_i32, 2_i32));
assert_eq!(v.wywz(), ivec4(4_i32, 2_i32, 4_i32, 3_i32));
assert_eq!(v.wyww(), ivec4(4_i32, 2_i32, 4_i32, 4_i32));
assert_eq!(v.wzxx(), ivec4(4_i32, 3_i32, 1_i32, 1_i32));
assert_eq!(v.wzxy(), ivec4(4_i32, 3_i32, 1_i32, 2_i32));
assert_eq!(v.wzxz(), ivec4(4_i32, 3_i32, 1_i32, 3_i32));
assert_eq!(v.wzxw(), ivec4(4_i32, 3_i32, 1_i32, 4_i32));
assert_eq!(v.wzyx(), ivec4(4_i32, 3_i32, 2_i32, 1_i32));
assert_eq!(v.wzyy(), ivec4(4_i32, 3_i32, 2_i32, 2_i32));
assert_eq!(v.wzyz(), ivec4(4_i32, 3_i32, 2_i32, 3_i32));
assert_eq!(v.wzyw(), ivec4(4_i32, 3_i32, 2_i32, 4_i32));
assert_eq!(v.wzzx(), ivec4(4_i32, 3_i32, 3_i32, 1_i32));
assert_eq!(v.wzzy(), ivec4(4_i32, 3_i32, 3_i32, 2_i32));
assert_eq!(v.wzzz(), ivec4(4_i32, 3_i32, 3_i32, 3_i32));
assert_eq!(v.wzzw(), ivec4(4_i32, 3_i32, 3_i32, 4_i32));
assert_eq!(v.wzwx(), ivec4(4_i32, 3_i32, 4_i32, 1_i32));
assert_eq!(v.wzwy(), ivec4(4_i32, 3_i32, 4_i32, 2_i32));
assert_eq!(v.wzwz(), ivec4(4_i32, 3_i32, 4_i32, 3_i32));
assert_eq!(v.wzww(), ivec4(4_i32, 3_i32, 4_i32, 4_i32));
assert_eq!(v.wwxx(), ivec4(4_i32, 4_i32, 1_i32, 1_i32));
assert_eq!(v.wwxy(), ivec4(4_i32, 4_i32, 1_i32, 2_i32));
assert_eq!(v.wwxz(), ivec4(4_i32, 4_i32, 1_i32, 3_i32));
assert_eq!(v.wwxw(), ivec4(4_i32, 4_i32, 1_i32, 4_i32));
assert_eq!(v.wwyx(), ivec4(4_i32, 4_i32, 2_i32, 1_i32));
assert_eq!(v.wwyy(), ivec4(4_i32, 4_i32, 2_i32, 2_i32));
assert_eq!(v.wwyz(), ivec4(4_i32, 4_i32, 2_i32, 3_i32));
assert_eq!(v.wwyw(), ivec4(4_i32, 4_i32, 2_i32, 4_i32));
assert_eq!(v.wwzx(), ivec4(4_i32, 4_i32, 3_i32, 1_i32));
assert_eq!(v.wwzy(), ivec4(4_i32, 4_i32, 3_i32, 2_i32));
assert_eq!(v.wwzz(), ivec4(4_i32, 4_i32, 3_i32, 3_i32));
assert_eq!(v.wwzw(), ivec4(4_i32, 4_i32, 3_i32, 4_i32));
assert_eq!(v.wwwx(), ivec4(4_i32, 4_i32, 4_i32, 1_i32));
assert_eq!(v.wwwy(), ivec4(4_i32, 4_i32, 4_i32, 2_i32));
assert_eq!(v.wwwz(), ivec4(4_i32, 4_i32, 4_i32, 3_i32));
assert_eq!(v.wwww(), ivec4(4_i32, 4_i32, 4_i32, 4_i32));
assert_eq!(v.xxx(), ivec3(1_i32, 1_i32, 1_i32));
assert_eq!(v.xxy(), ivec3(1_i32, 1_i32, 2_i32));
assert_eq!(v.xxz(), ivec3(1_i32, 1_i32, 3_i32));
assert_eq!(v.xxw(), ivec3(1_i32, 1_i32, 4_i32));
assert_eq!(v.xyx(), ivec3(1_i32, 2_i32, 1_i32));
assert_eq!(v.xyy(), ivec3(1_i32, 2_i32, 2_i32));
assert_eq!(v.xyz(), ivec3(1_i32, 2_i32, 3_i32));
assert_eq!(v.xyw(), ivec3(1_i32, 2_i32, 4_i32));
assert_eq!(v.xzx(), ivec3(1_i32, 3_i32, 1_i32));
assert_eq!(v.xzy(), ivec3(1_i32, 3_i32, 2_i32));
assert_eq!(v.xzz(), ivec3(1_i32, 3_i32, 3_i32));
assert_eq!(v.xzw(), ivec3(1_i32, 3_i32, 4_i32));
assert_eq!(v.xwx(), ivec3(1_i32, 4_i32, 1_i32));
assert_eq!(v.xwy(), ivec3(1_i32, 4_i32, 2_i32));
assert_eq!(v.xwz(), ivec3(1_i32, 4_i32, 3_i32));
assert_eq!(v.xww(), ivec3(1_i32, 4_i32, 4_i32));
assert_eq!(v.yxx(), ivec3(2_i32, 1_i32, 1_i32));
assert_eq!(v.yxy(), ivec3(2_i32, 1_i32, 2_i32));
assert_eq!(v.yxz(), ivec3(2_i32, 1_i32, 3_i32));
assert_eq!(v.yxw(), ivec3(2_i32, 1_i32, 4_i32));
assert_eq!(v.yyx(), ivec3(2_i32, 2_i32, 1_i32));
assert_eq!(v.yyy(), ivec3(2_i32, 2_i32, 2_i32));
assert_eq!(v.yyz(), ivec3(2_i32, 2_i32, 3_i32));
assert_eq!(v.yyw(), ivec3(2_i32, 2_i32, 4_i32));
assert_eq!(v.yzx(), ivec3(2_i32, 3_i32, 1_i32));
assert_eq!(v.yzy(), ivec3(2_i32, 3_i32, 2_i32));
assert_eq!(v.yzz(), ivec3(2_i32, 3_i32, 3_i32));
assert_eq!(v.yzw(), ivec3(2_i32, 3_i32, 4_i32));
assert_eq!(v.ywx(), ivec3(2_i32, 4_i32, 1_i32));
assert_eq!(v.ywy(), ivec3(2_i32, 4_i32, 2_i32));
assert_eq!(v.ywz(), ivec3(2_i32, 4_i32, 3_i32));
assert_eq!(v.yww(), ivec3(2_i32, 4_i32, 4_i32));
assert_eq!(v.zxx(), ivec3(3_i32, 1_i32, 1_i32));
assert_eq!(v.zxy(), ivec3(3_i32, 1_i32, 2_i32));
assert_eq!(v.zxz(), ivec3(3_i32, 1_i32, 3_i32));
assert_eq!(v.zxw(), ivec3(3_i32, 1_i32, 4_i32));
assert_eq!(v.zyx(), ivec3(3_i32, 2_i32, 1_i32));
assert_eq!(v.zyy(), ivec3(3_i32, 2_i32, 2_i32));
assert_eq!(v.zyz(), ivec3(3_i32, 2_i32, 3_i32));
assert_eq!(v.zyw(), ivec3(3_i32, 2_i32, 4_i32));
assert_eq!(v.zzx(), ivec3(3_i32, 3_i32, 1_i32));
assert_eq!(v.zzy(), ivec3(3_i32, 3_i32, 2_i32));
assert_eq!(v.zzz(), ivec3(3_i32, 3_i32, 3_i32));
assert_eq!(v.zzw(), ivec3(3_i32, 3_i32, 4_i32));
assert_eq!(v.zwx(), ivec3(3_i32, 4_i32, 1_i32));
assert_eq!(v.zwy(), ivec3(3_i32, 4_i32, 2_i32));
assert_eq!(v.zwz(), ivec3(3_i32, 4_i32, 3_i32));
assert_eq!(v.zww(), ivec3(3_i32, 4_i32, 4_i32));
assert_eq!(v.wxx(), ivec3(4_i32, 1_i32, 1_i32));
assert_eq!(v.wxy(), ivec3(4_i32, 1_i32, 2_i32));
assert_eq!(v.wxz(), ivec3(4_i32, 1_i32, 3_i32));
assert_eq!(v.wxw(), ivec3(4_i32, 1_i32, 4_i32));
assert_eq!(v.wyx(), ivec3(4_i32, 2_i32, 1_i32));
assert_eq!(v.wyy(), ivec3(4_i32, 2_i32, 2_i32));
assert_eq!(v.wyz(), ivec3(4_i32, 2_i32, 3_i32));
assert_eq!(v.wyw(), ivec3(4_i32, 2_i32, 4_i32));
assert_eq!(v.wzx(), ivec3(4_i32, 3_i32, 1_i32));
assert_eq!(v.wzy(), ivec3(4_i32, 3_i32, 2_i32));
assert_eq!(v.wzz(), ivec3(4_i32, 3_i32, 3_i32));
assert_eq!(v.wzw(), ivec3(4_i32, 3_i32, 4_i32));
assert_eq!(v.wwx(), ivec3(4_i32, 4_i32, 1_i32));
assert_eq!(v.wwy(), ivec3(4_i32, 4_i32, 2_i32));
assert_eq!(v.wwz(), ivec3(4_i32, 4_i32, 3_i32));
assert_eq!(v.www(), ivec3(4_i32, 4_i32, 4_i32));
assert_eq!(v.xx(), ivec2(1_i32, 1_i32));
assert_eq!(v.xy(), ivec2(1_i32, 2_i32));
assert_eq!(v.xz(), ivec2(1_i32, 3_i32));
assert_eq!(v.xw(), ivec2(1_i32, 4_i32));
assert_eq!(v.yx(), ivec2(2_i32, 1_i32));
assert_eq!(v.yy(), ivec2(2_i32, 2_i32));
assert_eq!(v.yz(), ivec2(2_i32, 3_i32));
assert_eq!(v.yw(), ivec2(2_i32, 4_i32));
assert_eq!(v.zx(), ivec2(3_i32, 1_i32));
assert_eq!(v.zy(), ivec2(3_i32, 2_i32));
assert_eq!(v.zz(), ivec2(3_i32, 3_i32));
assert_eq!(v.zw(), ivec2(3_i32, 4_i32));
assert_eq!(v.wx(), ivec2(4_i32, 1_i32));
assert_eq!(v.wy(), ivec2(4_i32, 2_i32));
assert_eq!(v.wz(), ivec2(4_i32, 3_i32));
assert_eq!(v.ww(), ivec2(4_i32, 4_i32));
}
#[test]
fn test_ivec3_swizzles() {
let v = ivec3(1_i32, 2_i32, 3_i32);
assert_eq!(v, v.xyz());
assert_eq!(v.xxxx(), ivec4(1_i32, 1_i32, 1_i32, 1_i32));
assert_eq!(v.xxxy(), ivec4(1_i32, 1_i32, 1_i32, 2_i32));
assert_eq!(v.xxxz(), ivec4(1_i32, 1_i32, 1_i32, 3_i32));
assert_eq!(v.xxyx(), ivec4(1_i32, 1_i32, 2_i32, 1_i32));
assert_eq!(v.xxyy(), ivec4(1_i32, 1_i32, 2_i32, 2_i32));
assert_eq!(v.xxyz(), ivec4(1_i32, 1_i32, 2_i32, 3_i32));
assert_eq!(v.xxzx(), ivec4(1_i32, 1_i32, 3_i32, 1_i32));
assert_eq!(v.xxzy(), ivec4(1_i32, 1_i32, 3_i32, 2_i32));
assert_eq!(v.xxzz(), ivec4(1_i32, 1_i32, 3_i32, 3_i32));
assert_eq!(v.xyxx(), ivec4(1_i32, 2_i32, 1_i32, 1_i32));
assert_eq!(v.xyxy(), ivec4(1_i32, 2_i32, 1_i32, 2_i32));
assert_eq!(v.xyxz(), ivec4(1_i32, 2_i32, 1_i32, 3_i32));
assert_eq!(v.xyyx(), ivec4(1_i32, 2_i32, 2_i32, 1_i32));
assert_eq!(v.xyyy(), ivec4(1_i32, 2_i32, 2_i32, 2_i32));
assert_eq!(v.xyyz(), ivec4(1_i32, 2_i32, 2_i32, 3_i32));
assert_eq!(v.xyzx(), ivec4(1_i32, 2_i32, 3_i32, 1_i32));
assert_eq!(v.xyzy(), ivec4(1_i32, 2_i32, 3_i32, 2_i32));
assert_eq!(v.xyzz(), ivec4(1_i32, 2_i32, 3_i32, 3_i32));
assert_eq!(v.xzxx(), ivec4(1_i32, 3_i32, 1_i32, 1_i32));
assert_eq!(v.xzxy(), ivec4(1_i32, 3_i32, 1_i32, 2_i32));
assert_eq!(v.xzxz(), ivec4(1_i32, 3_i32, 1_i32, 3_i32));
assert_eq!(v.xzyx(), ivec4(1_i32, 3_i32, 2_i32, 1_i32));
assert_eq!(v.xzyy(), ivec4(1_i32, 3_i32, 2_i32, 2_i32));
assert_eq!(v.xzyz(), ivec4(1_i32, 3_i32, 2_i32, 3_i32));
assert_eq!(v.xzzx(), ivec4(1_i32, 3_i32, 3_i32, 1_i32));
assert_eq!(v.xzzy(), ivec4(1_i32, 3_i32, 3_i32, 2_i32));
assert_eq!(v.xzzz(), ivec4(1_i32, 3_i32, 3_i32, 3_i32));
assert_eq!(v.yxxx(), ivec4(2_i32, 1_i32, 1_i32, 1_i32));
assert_eq!(v.yxxy(), ivec4(2_i32, 1_i32, 1_i32, 2_i32));
assert_eq!(v.yxxz(), ivec4(2_i32, 1_i32, 1_i32, 3_i32));
assert_eq!(v.yxyx(), ivec4(2_i32, 1_i32, 2_i32, 1_i32));
assert_eq!(v.yxyy(), ivec4(2_i32, 1_i32, 2_i32, 2_i32));
assert_eq!(v.yxyz(), ivec4(2_i32, 1_i32, 2_i32, 3_i32));
assert_eq!(v.yxzx(), ivec4(2_i32, 1_i32, 3_i32, 1_i32));
assert_eq!(v.yxzy(), ivec4(2_i32, 1_i32, 3_i32, 2_i32));
assert_eq!(v.yxzz(), ivec4(2_i32, 1_i32, 3_i32, 3_i32));
assert_eq!(v.yyxx(), ivec4(2_i32, 2_i32, 1_i32, 1_i32));
assert_eq!(v.yyxy(), ivec4(2_i32, 2_i32, 1_i32, 2_i32));
assert_eq!(v.yyxz(), ivec4(2_i32, 2_i32, 1_i32, 3_i32));
assert_eq!(v.yyyx(), ivec4(2_i32, 2_i32, 2_i32, 1_i32));
assert_eq!(v.yyyy(), ivec4(2_i32, 2_i32, 2_i32, 2_i32));
assert_eq!(v.yyyz(), ivec4(2_i32, 2_i32, 2_i32, 3_i32));
assert_eq!(v.yyzx(), ivec4(2_i32, 2_i32, 3_i32, 1_i32));
assert_eq!(v.yyzy(), ivec4(2_i32, 2_i32, 3_i32, 2_i32));
assert_eq!(v.yyzz(), ivec4(2_i32, 2_i32, 3_i32, 3_i32));
assert_eq!(v.yzxx(), ivec4(2_i32, 3_i32, 1_i32, 1_i32));
assert_eq!(v.yzxy(), ivec4(2_i32, 3_i32, 1_i32, 2_i32));
assert_eq!(v.yzxz(), ivec4(2_i32, 3_i32, 1_i32, 3_i32));
assert_eq!(v.yzyx(), ivec4(2_i32, 3_i32, 2_i32, 1_i32));
assert_eq!(v.yzyy(), ivec4(2_i32, 3_i32, 2_i32, 2_i32));
assert_eq!(v.yzyz(), ivec4(2_i32, 3_i32, 2_i32, 3_i32));
assert_eq!(v.yzzx(), ivec4(2_i32, 3_i32, 3_i32, 1_i32));
assert_eq!(v.yzzy(), ivec4(2_i32, 3_i32, 3_i32, 2_i32));
assert_eq!(v.yzzz(), ivec4(2_i32, 3_i32, 3_i32, 3_i32));
assert_eq!(v.zxxx(), ivec4(3_i32, 1_i32, 1_i32, 1_i32));
assert_eq!(v.zxxy(), ivec4(3_i32, 1_i32, 1_i32, 2_i32));
assert_eq!(v.zxxz(), ivec4(3_i32, 1_i32, 1_i32, 3_i32));
assert_eq!(v.zxyx(), ivec4(3_i32, 1_i32, 2_i32, 1_i32));
assert_eq!(v.zxyy(), ivec4(3_i32, 1_i32, 2_i32, 2_i32));
assert_eq!(v.zxyz(), ivec4(3_i32, 1_i32, 2_i32, 3_i32));
assert_eq!(v.zxzx(), ivec4(3_i32, 1_i32, 3_i32, 1_i32));
assert_eq!(v.zxzy(), ivec4(3_i32, 1_i32, 3_i32, 2_i32));
assert_eq!(v.zxzz(), ivec4(3_i32, 1_i32, 3_i32, 3_i32));
assert_eq!(v.zyxx(), ivec4(3_i32, 2_i32, 1_i32, 1_i32));
assert_eq!(v.zyxy(), ivec4(3_i32, 2_i32, 1_i32, 2_i32));
assert_eq!(v.zyxz(), ivec4(3_i32, 2_i32, 1_i32, 3_i32));
assert_eq!(v.zyyx(), ivec4(3_i32, 2_i32, 2_i32, 1_i32));
assert_eq!(v.zyyy(), ivec4(3_i32, 2_i32, 2_i32, 2_i32));
assert_eq!(v.zyyz(), ivec4(3_i32, 2_i32, 2_i32, 3_i32));
assert_eq!(v.zyzx(), ivec4(3_i32, 2_i32, 3_i32, 1_i32));
assert_eq!(v.zyzy(), ivec4(3_i32, 2_i32, 3_i32, 2_i32));
assert_eq!(v.zyzz(), ivec4(3_i32, 2_i32, 3_i32, 3_i32));
assert_eq!(v.zzxx(), ivec4(3_i32, 3_i32, 1_i32, 1_i32));
assert_eq!(v.zzxy(), ivec4(3_i32, 3_i32, 1_i32, 2_i32));
assert_eq!(v.zzxz(), ivec4(3_i32, 3_i32, 1_i32, 3_i32));
assert_eq!(v.zzyx(), ivec4(3_i32, 3_i32, 2_i32, 1_i32));
assert_eq!(v.zzyy(), ivec4(3_i32, 3_i32, 2_i32, 2_i32));
assert_eq!(v.zzyz(), ivec4(3_i32, 3_i32, 2_i32, 3_i32));
assert_eq!(v.zzzx(), ivec4(3_i32, 3_i32, 3_i32, 1_i32));
assert_eq!(v.zzzy(), ivec4(3_i32, 3_i32, 3_i32, 2_i32));
assert_eq!(v.zzzz(), ivec4(3_i32, 3_i32, 3_i32, 3_i32));
assert_eq!(v.xxx(), ivec3(1_i32, 1_i32, 1_i32));
assert_eq!(v.xxy(), ivec3(1_i32, 1_i32, 2_i32));
assert_eq!(v.xxz(), ivec3(1_i32, 1_i32, 3_i32));
assert_eq!(v.xyx(), ivec3(1_i32, 2_i32, 1_i32));
assert_eq!(v.xyy(), ivec3(1_i32, 2_i32, 2_i32));
assert_eq!(v.xzx(), ivec3(1_i32, 3_i32, 1_i32));
assert_eq!(v.xzy(), ivec3(1_i32, 3_i32, 2_i32));
assert_eq!(v.xzz(), ivec3(1_i32, 3_i32, 3_i32));
assert_eq!(v.yxx(), ivec3(2_i32, 1_i32, 1_i32));
assert_eq!(v.yxy(), ivec3(2_i32, 1_i32, 2_i32));
assert_eq!(v.yxz(), ivec3(2_i32, 1_i32, 3_i32));
assert_eq!(v.yyx(), ivec3(2_i32, 2_i32, 1_i32));
assert_eq!(v.yyy(), ivec3(2_i32, 2_i32, 2_i32));
assert_eq!(v.yyz(), ivec3(2_i32, 2_i32, 3_i32));
assert_eq!(v.yzx(), ivec3(2_i32, 3_i32, 1_i32));
assert_eq!(v.yzy(), ivec3(2_i32, 3_i32, 2_i32));
assert_eq!(v.yzz(), ivec3(2_i32, 3_i32, 3_i32));
assert_eq!(v.zxx(), ivec3(3_i32, 1_i32, 1_i32));
assert_eq!(v.zxy(), ivec3(3_i32, 1_i32, 2_i32));
assert_eq!(v.zxz(), ivec3(3_i32, 1_i32, 3_i32));
assert_eq!(v.zyx(), ivec3(3_i32, 2_i32, 1_i32));
assert_eq!(v.zyy(), ivec3(3_i32, 2_i32, 2_i32));
assert_eq!(v.zyz(), ivec3(3_i32, 2_i32, 3_i32));
assert_eq!(v.zzx(), ivec3(3_i32, 3_i32, 1_i32));
assert_eq!(v.zzy(), ivec3(3_i32, 3_i32, 2_i32));
assert_eq!(v.zzz(), ivec3(3_i32, 3_i32, 3_i32));
assert_eq!(v.xx(), ivec2(1_i32, 1_i32));
assert_eq!(v.xy(), ivec2(1_i32, 2_i32));
assert_eq!(v.xz(), ivec2(1_i32, 3_i32));
assert_eq!(v.yx(), ivec2(2_i32, 1_i32));
assert_eq!(v.yy(), ivec2(2_i32, 2_i32));
assert_eq!(v.yz(), ivec2(2_i32, 3_i32));
assert_eq!(v.zx(), ivec2(3_i32, 1_i32));
assert_eq!(v.zy(), ivec2(3_i32, 2_i32));
assert_eq!(v.zz(), ivec2(3_i32, 3_i32));
}
#[test]
fn test_ivec2_swizzles() {
let v = ivec2(1_i32, 2_i32);
assert_eq!(v, v.xy());
assert_eq!(v.xxxx(), ivec4(1_i32, 1_i32, 1_i32, 1_i32));
assert_eq!(v.xxxy(), ivec4(1_i32, 1_i32, 1_i32, 2_i32));
assert_eq!(v.xxyx(), ivec4(1_i32, 1_i32, 2_i32, 1_i32));
assert_eq!(v.xxyy(), ivec4(1_i32, 1_i32, 2_i32, 2_i32));
assert_eq!(v.xyxx(), ivec4(1_i32, 2_i32, 1_i32, 1_i32));
assert_eq!(v.xyxy(), ivec4(1_i32, 2_i32, 1_i32, 2_i32));
assert_eq!(v.xyyx(), ivec4(1_i32, 2_i32, 2_i32, 1_i32));
assert_eq!(v.xyyy(), ivec4(1_i32, 2_i32, 2_i32, 2_i32));
assert_eq!(v.yxxx(), ivec4(2_i32, 1_i32, 1_i32, 1_i32));
assert_eq!(v.yxxy(), ivec4(2_i32, 1_i32, 1_i32, 2_i32));
assert_eq!(v.yxyx(), ivec4(2_i32, 1_i32, 2_i32, 1_i32));
assert_eq!(v.yxyy(), ivec4(2_i32, 1_i32, 2_i32, 2_i32));
assert_eq!(v.yyxx(), ivec4(2_i32, 2_i32, 1_i32, 1_i32));
assert_eq!(v.yyxy(), ivec4(2_i32, 2_i32, 1_i32, 2_i32));
assert_eq!(v.yyyx(), ivec4(2_i32, 2_i32, 2_i32, 1_i32));
assert_eq!(v.yyyy(), ivec4(2_i32, 2_i32, 2_i32, 2_i32));
assert_eq!(v.xxx(), ivec3(1_i32, 1_i32, 1_i32));
assert_eq!(v.xxy(), ivec3(1_i32, 1_i32, 2_i32));
assert_eq!(v.xyx(), ivec3(1_i32, 2_i32, 1_i32));
assert_eq!(v.xyy(), ivec3(1_i32, 2_i32, 2_i32));
assert_eq!(v.yxx(), ivec3(2_i32, 1_i32, 1_i32));
assert_eq!(v.yxy(), ivec3(2_i32, 1_i32, 2_i32));
assert_eq!(v.yyx(), ivec3(2_i32, 2_i32, 1_i32));
assert_eq!(v.yyy(), ivec3(2_i32, 2_i32, 2_i32));
assert_eq!(v.xx(), ivec2(1_i32, 1_i32));
assert_eq!(v.yx(), ivec2(2_i32, 1_i32));
assert_eq!(v.yy(), ivec2(2_i32, 2_i32));
}
#[test]
fn test_uvec4_swizzles() {
let v = uvec4(1_u32, 2_u32, 3_u32, 4_u32);
assert_eq!(v, v.xyzw());
assert_eq!(v.xxxx(), uvec4(1_u32, 1_u32, 1_u32, 1_u32));
assert_eq!(v.xxxy(), uvec4(1_u32, 1_u32, 1_u32, 2_u32));
assert_eq!(v.xxxz(), uvec4(1_u32, 1_u32, 1_u32, 3_u32));
assert_eq!(v.xxxw(), uvec4(1_u32, 1_u32, 1_u32, 4_u32));
assert_eq!(v.xxyx(), uvec4(1_u32, 1_u32, 2_u32, 1_u32));
assert_eq!(v.xxyy(), uvec4(1_u32, 1_u32, 2_u32, 2_u32));
assert_eq!(v.xxyz(), uvec4(1_u32, 1_u32, 2_u32, 3_u32));
assert_eq!(v.xxyw(), uvec4(1_u32, 1_u32, 2_u32, 4_u32));
assert_eq!(v.xxzx(), uvec4(1_u32, 1_u32, 3_u32, 1_u32));
assert_eq!(v.xxzy(), uvec4(1_u32, 1_u32, 3_u32, 2_u32));
assert_eq!(v.xxzz(), uvec4(1_u32, 1_u32, 3_u32, 3_u32));
assert_eq!(v.xxzw(), uvec4(1_u32, 1_u32, 3_u32, 4_u32));
assert_eq!(v.xxwx(), uvec4(1_u32, 1_u32, 4_u32, 1_u32));
assert_eq!(v.xxwy(), uvec4(1_u32, 1_u32, 4_u32, 2_u32));
assert_eq!(v.xxwz(), uvec4(1_u32, 1_u32, 4_u32, 3_u32));
assert_eq!(v.xxww(), uvec4(1_u32, 1_u32, 4_u32, 4_u32));
assert_eq!(v.xyxx(), uvec4(1_u32, 2_u32, 1_u32, 1_u32));
assert_eq!(v.xyxy(), uvec4(1_u32, 2_u32, 1_u32, 2_u32));
assert_eq!(v.xyxz(), uvec4(1_u32, 2_u32, 1_u32, 3_u32));
assert_eq!(v.xyxw(), uvec4(1_u32, 2_u32, 1_u32, 4_u32));
assert_eq!(v.xyyx(), uvec4(1_u32, 2_u32, 2_u32, 1_u32));
assert_eq!(v.xyyy(), uvec4(1_u32, 2_u32, 2_u32, 2_u32));
assert_eq!(v.xyyz(), uvec4(1_u32, 2_u32, 2_u32, 3_u32));
assert_eq!(v.xyyw(), uvec4(1_u32, 2_u32, 2_u32, 4_u32));
assert_eq!(v.xyzx(), uvec4(1_u32, 2_u32, 3_u32, 1_u32));
assert_eq!(v.xyzy(), uvec4(1_u32, 2_u32, 3_u32, 2_u32));
assert_eq!(v.xyzz(), uvec4(1_u32, 2_u32, 3_u32, 3_u32));
assert_eq!(v.xywx(), uvec4(1_u32, 2_u32, 4_u32, 1_u32));
assert_eq!(v.xywy(), uvec4(1_u32, 2_u32, 4_u32, 2_u32));
assert_eq!(v.xywz(), uvec4(1_u32, 2_u32, 4_u32, 3_u32));
assert_eq!(v.xyww(), uvec4(1_u32, 2_u32, 4_u32, 4_u32));
assert_eq!(v.xzxx(), uvec4(1_u32, 3_u32, 1_u32, 1_u32));
assert_eq!(v.xzxy(), uvec4(1_u32, 3_u32, 1_u32, 2_u32));
assert_eq!(v.xzxz(), uvec4(1_u32, 3_u32, 1_u32, 3_u32));
assert_eq!(v.xzxw(), uvec4(1_u32, 3_u32, 1_u32, 4_u32));
assert_eq!(v.xzyx(), uvec4(1_u32, 3_u32, 2_u32, 1_u32));
assert_eq!(v.xzyy(), uvec4(1_u32, 3_u32, 2_u32, 2_u32));
assert_eq!(v.xzyz(), uvec4(1_u32, 3_u32, 2_u32, 3_u32));
assert_eq!(v.xzyw(), uvec4(1_u32, 3_u32, 2_u32, 4_u32));
assert_eq!(v.xzzx(), uvec4(1_u32, 3_u32, 3_u32, 1_u32));
assert_eq!(v.xzzy(), uvec4(1_u32, 3_u32, 3_u32, 2_u32));
assert_eq!(v.xzzz(), uvec4(1_u32, 3_u32, 3_u32, 3_u32));
assert_eq!(v.xzzw(), uvec4(1_u32, 3_u32, 3_u32, 4_u32));
assert_eq!(v.xzwx(), uvec4(1_u32, 3_u32, 4_u32, 1_u32));
assert_eq!(v.xzwy(), uvec4(1_u32, 3_u32, 4_u32, 2_u32));
assert_eq!(v.xzwz(), uvec4(1_u32, 3_u32, 4_u32, 3_u32));
assert_eq!(v.xzww(), uvec4(1_u32, 3_u32, 4_u32, 4_u32));
assert_eq!(v.xwxx(), uvec4(1_u32, 4_u32, 1_u32, 1_u32));
assert_eq!(v.xwxy(), uvec4(1_u32, 4_u32, 1_u32, 2_u32));
assert_eq!(v.xwxz(), uvec4(1_u32, 4_u32, 1_u32, 3_u32));
assert_eq!(v.xwxw(), uvec4(1_u32, 4_u32, 1_u32, 4_u32));
assert_eq!(v.xwyx(), uvec4(1_u32, 4_u32, 2_u32, 1_u32));
assert_eq!(v.xwyy(), uvec4(1_u32, 4_u32, 2_u32, 2_u32));
assert_eq!(v.xwyz(), uvec4(1_u32, 4_u32, 2_u32, 3_u32));
assert_eq!(v.xwyw(), uvec4(1_u32, 4_u32, 2_u32, 4_u32));
assert_eq!(v.xwzx(), uvec4(1_u32, 4_u32, 3_u32, 1_u32));
assert_eq!(v.xwzy(), uvec4(1_u32, 4_u32, 3_u32, 2_u32));
assert_eq!(v.xwzz(), uvec4(1_u32, 4_u32, 3_u32, 3_u32));
assert_eq!(v.xwzw(), uvec4(1_u32, 4_u32, 3_u32, 4_u32));
assert_eq!(v.xwwx(), uvec4(1_u32, 4_u32, 4_u32, 1_u32));
assert_eq!(v.xwwy(), uvec4(1_u32, 4_u32, 4_u32, 2_u32));
assert_eq!(v.xwwz(), uvec4(1_u32, 4_u32, 4_u32, 3_u32));
assert_eq!(v.xwww(), uvec4(1_u32, 4_u32, 4_u32, 4_u32));
assert_eq!(v.yxxx(), uvec4(2_u32, 1_u32, 1_u32, 1_u32));
assert_eq!(v.yxxy(), uvec4(2_u32, 1_u32, 1_u32, 2_u32));
assert_eq!(v.yxxz(), uvec4(2_u32, 1_u32, 1_u32, 3_u32));
assert_eq!(v.yxxw(), uvec4(2_u32, 1_u32, 1_u32, 4_u32));
assert_eq!(v.yxyx(), uvec4(2_u32, 1_u32, 2_u32, 1_u32));
assert_eq!(v.yxyy(), uvec4(2_u32, 1_u32, 2_u32, 2_u32));
assert_eq!(v.yxyz(), uvec4(2_u32, 1_u32, 2_u32, 3_u32));
assert_eq!(v.yxyw(), uvec4(2_u32, 1_u32, 2_u32, 4_u32));
assert_eq!(v.yxzx(), uvec4(2_u32, 1_u32, 3_u32, 1_u32));
assert_eq!(v.yxzy(), uvec4(2_u32, 1_u32, 3_u32, 2_u32));
assert_eq!(v.yxzz(), uvec4(2_u32, 1_u32, 3_u32, 3_u32));
assert_eq!(v.yxzw(), uvec4(2_u32, 1_u32, 3_u32, 4_u32));
assert_eq!(v.yxwx(), uvec4(2_u32, 1_u32, 4_u32, 1_u32));
assert_eq!(v.yxwy(), uvec4(2_u32, 1_u32, 4_u32, 2_u32));
assert_eq!(v.yxwz(), uvec4(2_u32, 1_u32, 4_u32, 3_u32));
assert_eq!(v.yxww(), uvec4(2_u32, 1_u32, 4_u32, 4_u32));
assert_eq!(v.yyxx(), uvec4(2_u32, 2_u32, 1_u32, 1_u32));
assert_eq!(v.yyxy(), uvec4(2_u32, 2_u32, 1_u32, 2_u32));
assert_eq!(v.yyxz(), uvec4(2_u32, 2_u32, 1_u32, 3_u32));
assert_eq!(v.yyxw(), uvec4(2_u32, 2_u32, 1_u32, 4_u32));
assert_eq!(v.yyyx(), uvec4(2_u32, 2_u32, 2_u32, 1_u32));
assert_eq!(v.yyyy(), uvec4(2_u32, 2_u32, 2_u32, 2_u32));
assert_eq!(v.yyyz(), uvec4(2_u32, 2_u32, 2_u32, 3_u32));
assert_eq!(v.yyyw(), uvec4(2_u32, 2_u32, 2_u32, 4_u32));
assert_eq!(v.yyzx(), uvec4(2_u32, 2_u32, 3_u32, 1_u32));
assert_eq!(v.yyzy(), uvec4(2_u32, 2_u32, 3_u32, 2_u32));
assert_eq!(v.yyzz(), uvec4(2_u32, 2_u32, 3_u32, 3_u32));
assert_eq!(v.yyzw(), uvec4(2_u32, 2_u32, 3_u32, 4_u32));
assert_eq!(v.yywx(), uvec4(2_u32, 2_u32, 4_u32, 1_u32));
assert_eq!(v.yywy(), uvec4(2_u32, 2_u32, 4_u32, 2_u32));
assert_eq!(v.yywz(), uvec4(2_u32, 2_u32, 4_u32, 3_u32));
assert_eq!(v.yyww(), uvec4(2_u32, 2_u32, 4_u32, 4_u32));
assert_eq!(v.yzxx(), uvec4(2_u32, 3_u32, 1_u32, 1_u32));
assert_eq!(v.yzxy(), uvec4(2_u32, 3_u32, 1_u32, 2_u32));
assert_eq!(v.yzxz(), uvec4(2_u32, 3_u32, 1_u32, 3_u32));
assert_eq!(v.yzxw(), uvec4(2_u32, 3_u32, 1_u32, 4_u32));
assert_eq!(v.yzyx(), uvec4(2_u32, 3_u32, 2_u32, 1_u32));
assert_eq!(v.yzyy(), uvec4(2_u32, 3_u32, 2_u32, 2_u32));
assert_eq!(v.yzyz(), uvec4(2_u32, 3_u32, 2_u32, 3_u32));
assert_eq!(v.yzyw(), uvec4(2_u32, 3_u32, 2_u32, 4_u32));
assert_eq!(v.yzzx(), uvec4(2_u32, 3_u32, 3_u32, 1_u32));
assert_eq!(v.yzzy(), uvec4(2_u32, 3_u32, 3_u32, 2_u32));
assert_eq!(v.yzzz(), uvec4(2_u32, 3_u32, 3_u32, 3_u32));
assert_eq!(v.yzzw(), uvec4(2_u32, 3_u32, 3_u32, 4_u32));
assert_eq!(v.yzwx(), uvec4(2_u32, 3_u32, 4_u32, 1_u32));
assert_eq!(v.yzwy(), uvec4(2_u32, 3_u32, 4_u32, 2_u32));
assert_eq!(v.yzwz(), uvec4(2_u32, 3_u32, 4_u32, 3_u32));
assert_eq!(v.yzww(), uvec4(2_u32, 3_u32, 4_u32, 4_u32));
assert_eq!(v.ywxx(), uvec4(2_u32, 4_u32, 1_u32, 1_u32));
assert_eq!(v.ywxy(), uvec4(2_u32, 4_u32, 1_u32, 2_u32));
assert_eq!(v.ywxz(), uvec4(2_u32, 4_u32, 1_u32, 3_u32));
assert_eq!(v.ywxw(), uvec4(2_u32, 4_u32, 1_u32, 4_u32));
assert_eq!(v.ywyx(), uvec4(2_u32, 4_u32, 2_u32, 1_u32));
assert_eq!(v.ywyy(), uvec4(2_u32, 4_u32, 2_u32, 2_u32));
assert_eq!(v.ywyz(), uvec4(2_u32, 4_u32, 2_u32, 3_u32));
assert_eq!(v.ywyw(), uvec4(2_u32, 4_u32, 2_u32, 4_u32));
assert_eq!(v.ywzx(), uvec4(2_u32, 4_u32, 3_u32, 1_u32));
assert_eq!(v.ywzy(), uvec4(2_u32, 4_u32, 3_u32, 2_u32));
assert_eq!(v.ywzz(), uvec4(2_u32, 4_u32, 3_u32, 3_u32));
assert_eq!(v.ywzw(), uvec4(2_u32, 4_u32, 3_u32, 4_u32));
assert_eq!(v.ywwx(), uvec4(2_u32, 4_u32, 4_u32, 1_u32));
assert_eq!(v.ywwy(), uvec4(2_u32, 4_u32, 4_u32, 2_u32));
assert_eq!(v.ywwz(), uvec4(2_u32, 4_u32, 4_u32, 3_u32));
assert_eq!(v.ywww(), uvec4(2_u32, 4_u32, 4_u32, 4_u32));
assert_eq!(v.zxxx(), uvec4(3_u32, 1_u32, 1_u32, 1_u32));
assert_eq!(v.zxxy(), uvec4(3_u32, 1_u32, 1_u32, 2_u32));
assert_eq!(v.zxxz(), uvec4(3_u32, 1_u32, 1_u32, 3_u32));
assert_eq!(v.zxxw(), uvec4(3_u32, 1_u32, 1_u32, 4_u32));
assert_eq!(v.zxyx(), uvec4(3_u32, 1_u32, 2_u32, 1_u32));
assert_eq!(v.zxyy(), uvec4(3_u32, 1_u32, 2_u32, 2_u32));
assert_eq!(v.zxyz(), uvec4(3_u32, 1_u32, 2_u32, 3_u32));
assert_eq!(v.zxyw(), uvec4(3_u32, 1_u32, 2_u32, 4_u32));
assert_eq!(v.zxzx(), uvec4(3_u32, 1_u32, 3_u32, 1_u32));
assert_eq!(v.zxzy(), uvec4(3_u32, 1_u32, 3_u32, 2_u32));
assert_eq!(v.zxzz(), uvec4(3_u32, 1_u32, 3_u32, 3_u32));
assert_eq!(v.zxzw(), uvec4(3_u32, 1_u32, 3_u32, 4_u32));
assert_eq!(v.zxwx(), uvec4(3_u32, 1_u32, 4_u32, 1_u32));
assert_eq!(v.zxwy(), uvec4(3_u32, 1_u32, 4_u32, 2_u32));
assert_eq!(v.zxwz(), uvec4(3_u32, 1_u32, 4_u32, 3_u32));
assert_eq!(v.zxww(), uvec4(3_u32, 1_u32, 4_u32, 4_u32));
assert_eq!(v.zyxx(), uvec4(3_u32, 2_u32, 1_u32, 1_u32));
assert_eq!(v.zyxy(), uvec4(3_u32, 2_u32, 1_u32, 2_u32));
assert_eq!(v.zyxz(), uvec4(3_u32, 2_u32, 1_u32, 3_u32));
assert_eq!(v.zyxw(), uvec4(3_u32, 2_u32, 1_u32, 4_u32));
assert_eq!(v.zyyx(), uvec4(3_u32, 2_u32, 2_u32, 1_u32));
assert_eq!(v.zyyy(), uvec4(3_u32, 2_u32, 2_u32, 2_u32));
assert_eq!(v.zyyz(), uvec4(3_u32, 2_u32, 2_u32, 3_u32));
assert_eq!(v.zyyw(), uvec4(3_u32, 2_u32, 2_u32, 4_u32));
assert_eq!(v.zyzx(), uvec4(3_u32, 2_u32, 3_u32, 1_u32));
assert_eq!(v.zyzy(), uvec4(3_u32, 2_u32, 3_u32, 2_u32));
assert_eq!(v.zyzz(), uvec4(3_u32, 2_u32, 3_u32, 3_u32));
assert_eq!(v.zyzw(), uvec4(3_u32, 2_u32, 3_u32, 4_u32));
assert_eq!(v.zywx(), uvec4(3_u32, 2_u32, 4_u32, 1_u32));
assert_eq!(v.zywy(), uvec4(3_u32, 2_u32, 4_u32, 2_u32));
assert_eq!(v.zywz(), uvec4(3_u32, 2_u32, 4_u32, 3_u32));
assert_eq!(v.zyww(), uvec4(3_u32, 2_u32, 4_u32, 4_u32));
assert_eq!(v.zzxx(), uvec4(3_u32, 3_u32, 1_u32, 1_u32));
assert_eq!(v.zzxy(), uvec4(3_u32, 3_u32, 1_u32, 2_u32));
assert_eq!(v.zzxz(), uvec4(3_u32, 3_u32, 1_u32, 3_u32));
assert_eq!(v.zzxw(), uvec4(3_u32, 3_u32, 1_u32, 4_u32));
assert_eq!(v.zzyx(), uvec4(3_u32, 3_u32, 2_u32, 1_u32));
assert_eq!(v.zzyy(), uvec4(3_u32, 3_u32, 2_u32, 2_u32));
assert_eq!(v.zzyz(), uvec4(3_u32, 3_u32, 2_u32, 3_u32));
assert_eq!(v.zzyw(), uvec4(3_u32, 3_u32, 2_u32, 4_u32));
assert_eq!(v.zzzx(), uvec4(3_u32, 3_u32, 3_u32, 1_u32));
assert_eq!(v.zzzy(), uvec4(3_u32, 3_u32, 3_u32, 2_u32));
assert_eq!(v.zzzz(), uvec4(3_u32, 3_u32, 3_u32, 3_u32));
assert_eq!(v.zzzw(), uvec4(3_u32, 3_u32, 3_u32, 4_u32));
assert_eq!(v.zzwx(), uvec4(3_u32, 3_u32, 4_u32, 1_u32));
assert_eq!(v.zzwy(), uvec4(3_u32, 3_u32, 4_u32, 2_u32));
assert_eq!(v.zzwz(), uvec4(3_u32, 3_u32, 4_u32, 3_u32));
assert_eq!(v.zzww(), uvec4(3_u32, 3_u32, 4_u32, 4_u32));
assert_eq!(v.zwxx(), uvec4(3_u32, 4_u32, 1_u32, 1_u32));
assert_eq!(v.zwxy(), uvec4(3_u32, 4_u32, 1_u32, 2_u32));
assert_eq!(v.zwxz(), uvec4(3_u32, 4_u32, 1_u32, 3_u32));
assert_eq!(v.zwxw(), uvec4(3_u32, 4_u32, 1_u32, 4_u32));
assert_eq!(v.zwyx(), uvec4(3_u32, 4_u32, 2_u32, 1_u32));
assert_eq!(v.zwyy(), uvec4(3_u32, 4_u32, 2_u32, 2_u32));
assert_eq!(v.zwyz(), uvec4(3_u32, 4_u32, 2_u32, 3_u32));
assert_eq!(v.zwyw(), uvec4(3_u32, 4_u32, 2_u32, 4_u32));
assert_eq!(v.zwzx(), uvec4(3_u32, 4_u32, 3_u32, 1_u32));
assert_eq!(v.zwzy(), uvec4(3_u32, 4_u32, 3_u32, 2_u32));
assert_eq!(v.zwzz(), uvec4(3_u32, 4_u32, 3_u32, 3_u32));
assert_eq!(v.zwzw(), uvec4(3_u32, 4_u32, 3_u32, 4_u32));
assert_eq!(v.zwwx(), uvec4(3_u32, 4_u32, 4_u32, 1_u32));
assert_eq!(v.zwwy(), uvec4(3_u32, 4_u32, 4_u32, 2_u32));
assert_eq!(v.zwwz(), uvec4(3_u32, 4_u32, 4_u32, 3_u32));
assert_eq!(v.zwww(), uvec4(3_u32, 4_u32, 4_u32, 4_u32));
assert_eq!(v.wxxx(), uvec4(4_u32, 1_u32, 1_u32, 1_u32));
assert_eq!(v.wxxy(), uvec4(4_u32, 1_u32, 1_u32, 2_u32));
assert_eq!(v.wxxz(), uvec4(4_u32, 1_u32, 1_u32, 3_u32));
assert_eq!(v.wxxw(), uvec4(4_u32, 1_u32, 1_u32, 4_u32));
assert_eq!(v.wxyx(), uvec4(4_u32, 1_u32, 2_u32, 1_u32));
assert_eq!(v.wxyy(), uvec4(4_u32, 1_u32, 2_u32, 2_u32));
assert_eq!(v.wxyz(), uvec4(4_u32, 1_u32, 2_u32, 3_u32));
assert_eq!(v.wxyw(), uvec4(4_u32, 1_u32, 2_u32, 4_u32));
assert_eq!(v.wxzx(), uvec4(4_u32, 1_u32, 3_u32, 1_u32));
assert_eq!(v.wxzy(), uvec4(4_u32, 1_u32, 3_u32, 2_u32));
assert_eq!(v.wxzz(), uvec4(4_u32, 1_u32, 3_u32, 3_u32));
assert_eq!(v.wxzw(), uvec4(4_u32, 1_u32, 3_u32, 4_u32));
assert_eq!(v.wxwx(), uvec4(4_u32, 1_u32, 4_u32, 1_u32));
assert_eq!(v.wxwy(), uvec4(4_u32, 1_u32, 4_u32, 2_u32));
assert_eq!(v.wxwz(), uvec4(4_u32, 1_u32, 4_u32, 3_u32));
assert_eq!(v.wxww(), uvec4(4_u32, 1_u32, 4_u32, 4_u32));
assert_eq!(v.wyxx(), uvec4(4_u32, 2_u32, 1_u32, 1_u32));
assert_eq!(v.wyxy(), uvec4(4_u32, 2_u32, 1_u32, 2_u32));
assert_eq!(v.wyxz(), uvec4(4_u32, 2_u32, 1_u32, 3_u32));
assert_eq!(v.wyxw(), uvec4(4_u32, 2_u32, 1_u32, 4_u32));
assert_eq!(v.wyyx(), uvec4(4_u32, 2_u32, 2_u32, 1_u32));
assert_eq!(v.wyyy(), uvec4(4_u32, 2_u32, 2_u32, 2_u32));
assert_eq!(v.wyyz(), uvec4(4_u32, 2_u32, 2_u32, 3_u32));
assert_eq!(v.wyyw(), uvec4(4_u32, 2_u32, 2_u32, 4_u32));
assert_eq!(v.wyzx(), uvec4(4_u32, 2_u32, 3_u32, 1_u32));
assert_eq!(v.wyzy(), uvec4(4_u32, 2_u32, 3_u32, 2_u32));
assert_eq!(v.wyzz(), uvec4(4_u32, 2_u32, 3_u32, 3_u32));
assert_eq!(v.wyzw(), uvec4(4_u32, 2_u32, 3_u32, 4_u32));
assert_eq!(v.wywx(), uvec4(4_u32, 2_u32, 4_u32, 1_u32));
assert_eq!(v.wywy(), uvec4(4_u32, 2_u32, 4_u32, 2_u32));
assert_eq!(v.wywz(), uvec4(4_u32, 2_u32, 4_u32, 3_u32));
assert_eq!(v.wyww(), uvec4(4_u32, 2_u32, 4_u32, 4_u32));
assert_eq!(v.wzxx(), uvec4(4_u32, 3_u32, 1_u32, 1_u32));
assert_eq!(v.wzxy(), uvec4(4_u32, 3_u32, 1_u32, 2_u32));
assert_eq!(v.wzxz(), uvec4(4_u32, 3_u32, 1_u32, 3_u32));
assert_eq!(v.wzxw(), uvec4(4_u32, 3_u32, 1_u32, 4_u32));
assert_eq!(v.wzyx(), uvec4(4_u32, 3_u32, 2_u32, 1_u32));
assert_eq!(v.wzyy(), uvec4(4_u32, 3_u32, 2_u32, 2_u32));
assert_eq!(v.wzyz(), uvec4(4_u32, 3_u32, 2_u32, 3_u32));
assert_eq!(v.wzyw(), uvec4(4_u32, 3_u32, 2_u32, 4_u32));
assert_eq!(v.wzzx(), uvec4(4_u32, 3_u32, 3_u32, 1_u32));
assert_eq!(v.wzzy(), uvec4(4_u32, 3_u32, 3_u32, 2_u32));
assert_eq!(v.wzzz(), uvec4(4_u32, 3_u32, 3_u32, 3_u32));
assert_eq!(v.wzzw(), uvec4(4_u32, 3_u32, 3_u32, 4_u32));
assert_eq!(v.wzwx(), uvec4(4_u32, 3_u32, 4_u32, 1_u32));
assert_eq!(v.wzwy(), uvec4(4_u32, 3_u32, 4_u32, 2_u32));
assert_eq!(v.wzwz(), uvec4(4_u32, 3_u32, 4_u32, 3_u32));
assert_eq!(v.wzww(), uvec4(4_u32, 3_u32, 4_u32, 4_u32));
assert_eq!(v.wwxx(), uvec4(4_u32, 4_u32, 1_u32, 1_u32));
assert_eq!(v.wwxy(), uvec4(4_u32, 4_u32, 1_u32, 2_u32));
assert_eq!(v.wwxz(), uvec4(4_u32, 4_u32, 1_u32, 3_u32));
assert_eq!(v.wwxw(), uvec4(4_u32, 4_u32, 1_u32, 4_u32));
assert_eq!(v.wwyx(), uvec4(4_u32, 4_u32, 2_u32, 1_u32));
assert_eq!(v.wwyy(), uvec4(4_u32, 4_u32, 2_u32, 2_u32));
assert_eq!(v.wwyz(), uvec4(4_u32, 4_u32, 2_u32, 3_u32));
assert_eq!(v.wwyw(), uvec4(4_u32, 4_u32, 2_u32, 4_u32));
assert_eq!(v.wwzx(), uvec4(4_u32, 4_u32, 3_u32, 1_u32));
assert_eq!(v.wwzy(), uvec4(4_u32, 4_u32, 3_u32, 2_u32));
assert_eq!(v.wwzz(), uvec4(4_u32, 4_u32, 3_u32, 3_u32));
assert_eq!(v.wwzw(), uvec4(4_u32, 4_u32, 3_u32, 4_u32));
assert_eq!(v.wwwx(), uvec4(4_u32, 4_u32, 4_u32, 1_u32));
assert_eq!(v.wwwy(), uvec4(4_u32, 4_u32, 4_u32, 2_u32));
assert_eq!(v.wwwz(), uvec4(4_u32, 4_u32, 4_u32, 3_u32));
assert_eq!(v.wwww(), uvec4(4_u32, 4_u32, 4_u32, 4_u32));
assert_eq!(v.xxx(), uvec3(1_u32, 1_u32, 1_u32));
assert_eq!(v.xxy(), uvec3(1_u32, 1_u32, 2_u32));
assert_eq!(v.xxz(), uvec3(1_u32, 1_u32, 3_u32));
assert_eq!(v.xxw(), uvec3(1_u32, 1_u32, 4_u32));
assert_eq!(v.xyx(), uvec3(1_u32, 2_u32, 1_u32));
assert_eq!(v.xyy(), uvec3(1_u32, 2_u32, 2_u32));
assert_eq!(v.xyz(), uvec3(1_u32, 2_u32, 3_u32));
assert_eq!(v.xyw(), uvec3(1_u32, 2_u32, 4_u32));
assert_eq!(v.xzx(), uvec3(1_u32, 3_u32, 1_u32));
assert_eq!(v.xzy(), uvec3(1_u32, 3_u32, 2_u32));
assert_eq!(v.xzz(), uvec3(1_u32, 3_u32, 3_u32));
assert_eq!(v.xzw(), uvec3(1_u32, 3_u32, 4_u32));
assert_eq!(v.xwx(), uvec3(1_u32, 4_u32, 1_u32));
assert_eq!(v.xwy(), uvec3(1_u32, 4_u32, 2_u32));
assert_eq!(v.xwz(), uvec3(1_u32, 4_u32, 3_u32));
assert_eq!(v.xww(), uvec3(1_u32, 4_u32, 4_u32));
assert_eq!(v.yxx(), uvec3(2_u32, 1_u32, 1_u32));
assert_eq!(v.yxy(), uvec3(2_u32, 1_u32, 2_u32));
assert_eq!(v.yxz(), uvec3(2_u32, 1_u32, 3_u32));
assert_eq!(v.yxw(), uvec3(2_u32, 1_u32, 4_u32));
assert_eq!(v.yyx(), uvec3(2_u32, 2_u32, 1_u32));
assert_eq!(v.yyy(), uvec3(2_u32, 2_u32, 2_u32));
assert_eq!(v.yyz(), uvec3(2_u32, 2_u32, 3_u32));
assert_eq!(v.yyw(), uvec3(2_u32, 2_u32, 4_u32));
assert_eq!(v.yzx(), uvec3(2_u32, 3_u32, 1_u32));
assert_eq!(v.yzy(), uvec3(2_u32, 3_u32, 2_u32));
assert_eq!(v.yzz(), uvec3(2_u32, 3_u32, 3_u32));
assert_eq!(v.yzw(), uvec3(2_u32, 3_u32, 4_u32));
assert_eq!(v.ywx(), uvec3(2_u32, 4_u32, 1_u32));
assert_eq!(v.ywy(), uvec3(2_u32, 4_u32, 2_u32));
assert_eq!(v.ywz(), uvec3(2_u32, 4_u32, 3_u32));
assert_eq!(v.yww(), uvec3(2_u32, 4_u32, 4_u32));
assert_eq!(v.zxx(), uvec3(3_u32, 1_u32, 1_u32));
assert_eq!(v.zxy(), uvec3(3_u32, 1_u32, 2_u32));
assert_eq!(v.zxz(), uvec3(3_u32, 1_u32, 3_u32));
assert_eq!(v.zxw(), uvec3(3_u32, 1_u32, 4_u32));
assert_eq!(v.zyx(), uvec3(3_u32, 2_u32, 1_u32));
assert_eq!(v.zyy(), uvec3(3_u32, 2_u32, 2_u32));
assert_eq!(v.zyz(), uvec3(3_u32, 2_u32, 3_u32));
assert_eq!(v.zyw(), uvec3(3_u32, 2_u32, 4_u32));
assert_eq!(v.zzx(), uvec3(3_u32, 3_u32, 1_u32));
assert_eq!(v.zzy(), uvec3(3_u32, 3_u32, 2_u32));
assert_eq!(v.zzz(), uvec3(3_u32, 3_u32, 3_u32));
assert_eq!(v.zzw(), uvec3(3_u32, 3_u32, 4_u32));
assert_eq!(v.zwx(), uvec3(3_u32, 4_u32, 1_u32));
assert_eq!(v.zwy(), uvec3(3_u32, 4_u32, 2_u32));
assert_eq!(v.zwz(), uvec3(3_u32, 4_u32, 3_u32));
assert_eq!(v.zww(), uvec3(3_u32, 4_u32, 4_u32));
assert_eq!(v.wxx(), uvec3(4_u32, 1_u32, 1_u32));
assert_eq!(v.wxy(), uvec3(4_u32, 1_u32, 2_u32));
assert_eq!(v.wxz(), uvec3(4_u32, 1_u32, 3_u32));
assert_eq!(v.wxw(), uvec3(4_u32, 1_u32, 4_u32));
assert_eq!(v.wyx(), uvec3(4_u32, 2_u32, 1_u32));
assert_eq!(v.wyy(), uvec3(4_u32, 2_u32, 2_u32));
assert_eq!(v.wyz(), uvec3(4_u32, 2_u32, 3_u32));
assert_eq!(v.wyw(), uvec3(4_u32, 2_u32, 4_u32));
assert_eq!(v.wzx(), uvec3(4_u32, 3_u32, 1_u32));
assert_eq!(v.wzy(), uvec3(4_u32, 3_u32, 2_u32));
assert_eq!(v.wzz(), uvec3(4_u32, 3_u32, 3_u32));
assert_eq!(v.wzw(), uvec3(4_u32, 3_u32, 4_u32));
assert_eq!(v.wwx(), uvec3(4_u32, 4_u32, 1_u32));
assert_eq!(v.wwy(), uvec3(4_u32, 4_u32, 2_u32));
assert_eq!(v.wwz(), uvec3(4_u32, 4_u32, 3_u32));
assert_eq!(v.www(), uvec3(4_u32, 4_u32, 4_u32));
assert_eq!(v.xx(), uvec2(1_u32, 1_u32));
assert_eq!(v.xy(), uvec2(1_u32, 2_u32));
assert_eq!(v.xz(), uvec2(1_u32, 3_u32));
assert_eq!(v.xw(), uvec2(1_u32, 4_u32));
assert_eq!(v.yx(), uvec2(2_u32, 1_u32));
assert_eq!(v.yy(), uvec2(2_u32, 2_u32));
assert_eq!(v.yz(), uvec2(2_u32, 3_u32));
assert_eq!(v.yw(), uvec2(2_u32, 4_u32));
assert_eq!(v.zx(), uvec2(3_u32, 1_u32));
assert_eq!(v.zy(), uvec2(3_u32, 2_u32));
assert_eq!(v.zz(), uvec2(3_u32, 3_u32));
assert_eq!(v.zw(), uvec2(3_u32, 4_u32));
assert_eq!(v.wx(), uvec2(4_u32, 1_u32));
assert_eq!(v.wy(), uvec2(4_u32, 2_u32));
assert_eq!(v.wz(), uvec2(4_u32, 3_u32));
assert_eq!(v.ww(), uvec2(4_u32, 4_u32));
}
#[test]
fn test_uvec3_swizzles() {
let v = uvec3(1_u32, 2_u32, 3_u32);
assert_eq!(v, v.xyz());
assert_eq!(v.xxxx(), uvec4(1_u32, 1_u32, 1_u32, 1_u32));
assert_eq!(v.xxxy(), uvec4(1_u32, 1_u32, 1_u32, 2_u32));
assert_eq!(v.xxxz(), uvec4(1_u32, 1_u32, 1_u32, 3_u32));
assert_eq!(v.xxyx(), uvec4(1_u32, 1_u32, 2_u32, 1_u32));
assert_eq!(v.xxyy(), uvec4(1_u32, 1_u32, 2_u32, 2_u32));
assert_eq!(v.xxyz(), uvec4(1_u32, 1_u32, 2_u32, 3_u32));
assert_eq!(v.xxzx(), uvec4(1_u32, 1_u32, 3_u32, 1_u32));
assert_eq!(v.xxzy(), uvec4(1_u32, 1_u32, 3_u32, 2_u32));
assert_eq!(v.xxzz(), uvec4(1_u32, 1_u32, 3_u32, 3_u32));
assert_eq!(v.xyxx(), uvec4(1_u32, 2_u32, 1_u32, 1_u32));
assert_eq!(v.xyxy(), uvec4(1_u32, 2_u32, 1_u32, 2_u32));
assert_eq!(v.xyxz(), uvec4(1_u32, 2_u32, 1_u32, 3_u32));
assert_eq!(v.xyyx(), uvec4(1_u32, 2_u32, 2_u32, 1_u32));
assert_eq!(v.xyyy(), uvec4(1_u32, 2_u32, 2_u32, 2_u32));
assert_eq!(v.xyyz(), uvec4(1_u32, 2_u32, 2_u32, 3_u32));
assert_eq!(v.xyzx(), uvec4(1_u32, 2_u32, 3_u32, 1_u32));
assert_eq!(v.xyzy(), uvec4(1_u32, 2_u32, 3_u32, 2_u32));
assert_eq!(v.xyzz(), uvec4(1_u32, 2_u32, 3_u32, 3_u32));
assert_eq!(v.xzxx(), uvec4(1_u32, 3_u32, 1_u32, 1_u32));
assert_eq!(v.xzxy(), uvec4(1_u32, 3_u32, 1_u32, 2_u32));
assert_eq!(v.xzxz(), uvec4(1_u32, 3_u32, 1_u32, 3_u32));
assert_eq!(v.xzyx(), uvec4(1_u32, 3_u32, 2_u32, 1_u32));
assert_eq!(v.xzyy(), uvec4(1_u32, 3_u32, 2_u32, 2_u32));
assert_eq!(v.xzyz(), uvec4(1_u32, 3_u32, 2_u32, 3_u32));
assert_eq!(v.xzzx(), uvec4(1_u32, 3_u32, 3_u32, 1_u32));
assert_eq!(v.xzzy(), uvec4(1_u32, 3_u32, 3_u32, 2_u32));
assert_eq!(v.xzzz(), uvec4(1_u32, 3_u32, 3_u32, 3_u32));
assert_eq!(v.yxxx(), uvec4(2_u32, 1_u32, 1_u32, 1_u32));
assert_eq!(v.yxxy(), uvec4(2_u32, 1_u32, 1_u32, 2_u32));
assert_eq!(v.yxxz(), uvec4(2_u32, 1_u32, 1_u32, 3_u32));
assert_eq!(v.yxyx(), uvec4(2_u32, 1_u32, 2_u32, 1_u32));
assert_eq!(v.yxyy(), uvec4(2_u32, 1_u32, 2_u32, 2_u32));
assert_eq!(v.yxyz(), uvec4(2_u32, 1_u32, 2_u32, 3_u32));
assert_eq!(v.yxzx(), uvec4(2_u32, 1_u32, 3_u32, 1_u32));
assert_eq!(v.yxzy(), uvec4(2_u32, 1_u32, 3_u32, 2_u32));
assert_eq!(v.yxzz(), uvec4(2_u32, 1_u32, 3_u32, 3_u32));
assert_eq!(v.yyxx(), uvec4(2_u32, 2_u32, 1_u32, 1_u32));
assert_eq!(v.yyxy(), uvec4(2_u32, 2_u32, 1_u32, 2_u32));
assert_eq!(v.yyxz(), uvec4(2_u32, 2_u32, 1_u32, 3_u32));
assert_eq!(v.yyyx(), uvec4(2_u32, 2_u32, 2_u32, 1_u32));
assert_eq!(v.yyyy(), uvec4(2_u32, 2_u32, 2_u32, 2_u32));
assert_eq!(v.yyyz(), uvec4(2_u32, 2_u32, 2_u32, 3_u32));
assert_eq!(v.yyzx(), uvec4(2_u32, 2_u32, 3_u32, 1_u32));
assert_eq!(v.yyzy(), uvec4(2_u32, 2_u32, 3_u32, 2_u32));
assert_eq!(v.yyzz(), uvec4(2_u32, 2_u32, 3_u32, 3_u32));
assert_eq!(v.yzxx(), uvec4(2_u32, 3_u32, 1_u32, 1_u32));
assert_eq!(v.yzxy(), uvec4(2_u32, 3_u32, 1_u32, 2_u32));
assert_eq!(v.yzxz(), uvec4(2_u32, 3_u32, 1_u32, 3_u32));
assert_eq!(v.yzyx(), uvec4(2_u32, 3_u32, 2_u32, 1_u32));
assert_eq!(v.yzyy(), uvec4(2_u32, 3_u32, 2_u32, 2_u32));
assert_eq!(v.yzyz(), uvec4(2_u32, 3_u32, 2_u32, 3_u32));
assert_eq!(v.yzzx(), uvec4(2_u32, 3_u32, 3_u32, 1_u32));
assert_eq!(v.yzzy(), uvec4(2_u32, 3_u32, 3_u32, 2_u32));
assert_eq!(v.yzzz(), uvec4(2_u32, 3_u32, 3_u32, 3_u32));
assert_eq!(v.zxxx(), uvec4(3_u32, 1_u32, 1_u32, 1_u32));
assert_eq!(v.zxxy(), uvec4(3_u32, 1_u32, 1_u32, 2_u32));
assert_eq!(v.zxxz(), uvec4(3_u32, 1_u32, 1_u32, 3_u32));
assert_eq!(v.zxyx(), uvec4(3_u32, 1_u32, 2_u32, 1_u32));
assert_eq!(v.zxyy(), uvec4(3_u32, 1_u32, 2_u32, 2_u32));
assert_eq!(v.zxyz(), uvec4(3_u32, 1_u32, 2_u32, 3_u32));
assert_eq!(v.zxzx(), uvec4(3_u32, 1_u32, 3_u32, 1_u32));
assert_eq!(v.zxzy(), uvec4(3_u32, 1_u32, 3_u32, 2_u32));
assert_eq!(v.zxzz(), uvec4(3_u32, 1_u32, 3_u32, 3_u32));
assert_eq!(v.zyxx(), uvec4(3_u32, 2_u32, 1_u32, 1_u32));
assert_eq!(v.zyxy(), uvec4(3_u32, 2_u32, 1_u32, 2_u32));
assert_eq!(v.zyxz(), uvec4(3_u32, 2_u32, 1_u32, 3_u32));
assert_eq!(v.zyyx(), uvec4(3_u32, 2_u32, 2_u32, 1_u32));
assert_eq!(v.zyyy(), uvec4(3_u32, 2_u32, 2_u32, 2_u32));
assert_eq!(v.zyyz(), uvec4(3_u32, 2_u32, 2_u32, 3_u32));
assert_eq!(v.zyzx(), uvec4(3_u32, 2_u32, 3_u32, 1_u32));
assert_eq!(v.zyzy(), uvec4(3_u32, 2_u32, 3_u32, 2_u32));
assert_eq!(v.zyzz(), uvec4(3_u32, 2_u32, 3_u32, 3_u32));
assert_eq!(v.zzxx(), uvec4(3_u32, 3_u32, 1_u32, 1_u32));
assert_eq!(v.zzxy(), uvec4(3_u32, 3_u32, 1_u32, 2_u32));
assert_eq!(v.zzxz(), uvec4(3_u32, 3_u32, 1_u32, 3_u32));
assert_eq!(v.zzyx(), uvec4(3_u32, 3_u32, 2_u32, 1_u32));
assert_eq!(v.zzyy(), uvec4(3_u32, 3_u32, 2_u32, 2_u32));
assert_eq!(v.zzyz(), uvec4(3_u32, 3_u32, 2_u32, 3_u32));
assert_eq!(v.zzzx(), uvec4(3_u32, 3_u32, 3_u32, 1_u32));
assert_eq!(v.zzzy(), uvec4(3_u32, 3_u32, 3_u32, 2_u32));
assert_eq!(v.zzzz(), uvec4(3_u32, 3_u32, 3_u32, 3_u32));
assert_eq!(v.xxx(), uvec3(1_u32, 1_u32, 1_u32));
assert_eq!(v.xxy(), uvec3(1_u32, 1_u32, 2_u32));
assert_eq!(v.xxz(), uvec3(1_u32, 1_u32, 3_u32));
assert_eq!(v.xyx(), uvec3(1_u32, 2_u32, 1_u32));
assert_eq!(v.xyy(), uvec3(1_u32, 2_u32, 2_u32));
assert_eq!(v.xzx(), uvec3(1_u32, 3_u32, 1_u32));
assert_eq!(v.xzy(), uvec3(1_u32, 3_u32, 2_u32));
assert_eq!(v.xzz(), uvec3(1_u32, 3_u32, 3_u32));
assert_eq!(v.yxx(), uvec3(2_u32, 1_u32, 1_u32));
assert_eq!(v.yxy(), uvec3(2_u32, 1_u32, 2_u32));
assert_eq!(v.yxz(), uvec3(2_u32, 1_u32, 3_u32));
assert_eq!(v.yyx(), uvec3(2_u32, 2_u32, 1_u32));
assert_eq!(v.yyy(), uvec3(2_u32, 2_u32, 2_u32));
assert_eq!(v.yyz(), uvec3(2_u32, 2_u32, 3_u32));
assert_eq!(v.yzx(), uvec3(2_u32, 3_u32, 1_u32));
assert_eq!(v.yzy(), uvec3(2_u32, 3_u32, 2_u32));
assert_eq!(v.yzz(), uvec3(2_u32, 3_u32, 3_u32));
assert_eq!(v.zxx(), uvec3(3_u32, 1_u32, 1_u32));
assert_eq!(v.zxy(), uvec3(3_u32, 1_u32, 2_u32));
assert_eq!(v.zxz(), uvec3(3_u32, 1_u32, 3_u32));
assert_eq!(v.zyx(), uvec3(3_u32, 2_u32, 1_u32));
assert_eq!(v.zyy(), uvec3(3_u32, 2_u32, 2_u32));
assert_eq!(v.zyz(), uvec3(3_u32, 2_u32, 3_u32));
assert_eq!(v.zzx(), uvec3(3_u32, 3_u32, 1_u32));
assert_eq!(v.zzy(), uvec3(3_u32, 3_u32, 2_u32));
assert_eq!(v.zzz(), uvec3(3_u32, 3_u32, 3_u32));
assert_eq!(v.xx(), uvec2(1_u32, 1_u32));
assert_eq!(v.xy(), uvec2(1_u32, 2_u32));
assert_eq!(v.xz(), uvec2(1_u32, 3_u32));
assert_eq!(v.yx(), uvec2(2_u32, 1_u32));
assert_eq!(v.yy(), uvec2(2_u32, 2_u32));
assert_eq!(v.yz(), uvec2(2_u32, 3_u32));
assert_eq!(v.zx(), uvec2(3_u32, 1_u32));
assert_eq!(v.zy(), uvec2(3_u32, 2_u32));
assert_eq!(v.zz(), uvec2(3_u32, 3_u32));
}
#[test]
fn test_uvec2_swizzles() {
let v = uvec2(1_u32, 2_u32);
assert_eq!(v, v.xy());
assert_eq!(v.xxxx(), uvec4(1_u32, 1_u32, 1_u32, 1_u32));
assert_eq!(v.xxxy(), uvec4(1_u32, 1_u32, 1_u32, 2_u32));
assert_eq!(v.xxyx(), uvec4(1_u32, 1_u32, 2_u32, 1_u32));
assert_eq!(v.xxyy(), uvec4(1_u32, 1_u32, 2_u32, 2_u32));
assert_eq!(v.xyxx(), uvec4(1_u32, 2_u32, 1_u32, 1_u32));
assert_eq!(v.xyxy(), uvec4(1_u32, 2_u32, 1_u32, 2_u32));
assert_eq!(v.xyyx(), uvec4(1_u32, 2_u32, 2_u32, 1_u32));
assert_eq!(v.xyyy(), uvec4(1_u32, 2_u32, 2_u32, 2_u32));
assert_eq!(v.yxxx(), uvec4(2_u32, 1_u32, 1_u32, 1_u32));
assert_eq!(v.yxxy(), uvec4(2_u32, 1_u32, 1_u32, 2_u32));
assert_eq!(v.yxyx(), uvec4(2_u32, 1_u32, 2_u32, 1_u32));
assert_eq!(v.yxyy(), uvec4(2_u32, 1_u32, 2_u32, 2_u32));
assert_eq!(v.yyxx(), uvec4(2_u32, 2_u32, 1_u32, 1_u32));
assert_eq!(v.yyxy(), uvec4(2_u32, 2_u32, 1_u32, 2_u32));
assert_eq!(v.yyyx(), uvec4(2_u32, 2_u32, 2_u32, 1_u32));
assert_eq!(v.yyyy(), uvec4(2_u32, 2_u32, 2_u32, 2_u32));
assert_eq!(v.xxx(), uvec3(1_u32, 1_u32, 1_u32));
assert_eq!(v.xxy(), uvec3(1_u32, 1_u32, 2_u32));
assert_eq!(v.xyx(), uvec3(1_u32, 2_u32, 1_u32));
assert_eq!(v.xyy(), uvec3(1_u32, 2_u32, 2_u32));
assert_eq!(v.yxx(), uvec3(2_u32, 1_u32, 1_u32));
assert_eq!(v.yxy(), uvec3(2_u32, 1_u32, 2_u32));
assert_eq!(v.yyx(), uvec3(2_u32, 2_u32, 1_u32));
assert_eq!(v.yyy(), uvec3(2_u32, 2_u32, 2_u32));
assert_eq!(v.xx(), uvec2(1_u32, 1_u32));
assert_eq!(v.yx(), uvec2(2_u32, 1_u32));
assert_eq!(v.yy(), uvec2(2_u32, 2_u32));
}