1 // Generated by swizzlegen. Do not edit.
2 #[macro_use]
3 mod support;
4 use glam::*;
5 
6 glam_test!(test_vec4_swizzles, {
7     let v = vec4(1_f32, 2_f32, 3_f32, 4_f32);
8     assert_eq!(v, v.xyzw());
9     assert_eq!(v.xxxx(), vec4(1_f32, 1_f32, 1_f32, 1_f32));
10     assert_eq!(v.xxxy(), vec4(1_f32, 1_f32, 1_f32, 2_f32));
11     assert_eq!(v.xxxz(), vec4(1_f32, 1_f32, 1_f32, 3_f32));
12     assert_eq!(v.xxxw(), vec4(1_f32, 1_f32, 1_f32, 4_f32));
13     assert_eq!(v.xxyx(), vec4(1_f32, 1_f32, 2_f32, 1_f32));
14     assert_eq!(v.xxyy(), vec4(1_f32, 1_f32, 2_f32, 2_f32));
15     assert_eq!(v.xxyz(), vec4(1_f32, 1_f32, 2_f32, 3_f32));
16     assert_eq!(v.xxyw(), vec4(1_f32, 1_f32, 2_f32, 4_f32));
17     assert_eq!(v.xxzx(), vec4(1_f32, 1_f32, 3_f32, 1_f32));
18     assert_eq!(v.xxzy(), vec4(1_f32, 1_f32, 3_f32, 2_f32));
19     assert_eq!(v.xxzz(), vec4(1_f32, 1_f32, 3_f32, 3_f32));
20     assert_eq!(v.xxzw(), vec4(1_f32, 1_f32, 3_f32, 4_f32));
21     assert_eq!(v.xxwx(), vec4(1_f32, 1_f32, 4_f32, 1_f32));
22     assert_eq!(v.xxwy(), vec4(1_f32, 1_f32, 4_f32, 2_f32));
23     assert_eq!(v.xxwz(), vec4(1_f32, 1_f32, 4_f32, 3_f32));
24     assert_eq!(v.xxww(), vec4(1_f32, 1_f32, 4_f32, 4_f32));
25     assert_eq!(v.xyxx(), vec4(1_f32, 2_f32, 1_f32, 1_f32));
26     assert_eq!(v.xyxy(), vec4(1_f32, 2_f32, 1_f32, 2_f32));
27     assert_eq!(v.xyxz(), vec4(1_f32, 2_f32, 1_f32, 3_f32));
28     assert_eq!(v.xyxw(), vec4(1_f32, 2_f32, 1_f32, 4_f32));
29     assert_eq!(v.xyyx(), vec4(1_f32, 2_f32, 2_f32, 1_f32));
30     assert_eq!(v.xyyy(), vec4(1_f32, 2_f32, 2_f32, 2_f32));
31     assert_eq!(v.xyyz(), vec4(1_f32, 2_f32, 2_f32, 3_f32));
32     assert_eq!(v.xyyw(), vec4(1_f32, 2_f32, 2_f32, 4_f32));
33     assert_eq!(v.xyzx(), vec4(1_f32, 2_f32, 3_f32, 1_f32));
34     assert_eq!(v.xyzy(), vec4(1_f32, 2_f32, 3_f32, 2_f32));
35     assert_eq!(v.xyzz(), vec4(1_f32, 2_f32, 3_f32, 3_f32));
36     assert_eq!(v.xywx(), vec4(1_f32, 2_f32, 4_f32, 1_f32));
37     assert_eq!(v.xywy(), vec4(1_f32, 2_f32, 4_f32, 2_f32));
38     assert_eq!(v.xywz(), vec4(1_f32, 2_f32, 4_f32, 3_f32));
39     assert_eq!(v.xyww(), vec4(1_f32, 2_f32, 4_f32, 4_f32));
40     assert_eq!(v.xzxx(), vec4(1_f32, 3_f32, 1_f32, 1_f32));
41     assert_eq!(v.xzxy(), vec4(1_f32, 3_f32, 1_f32, 2_f32));
42     assert_eq!(v.xzxz(), vec4(1_f32, 3_f32, 1_f32, 3_f32));
43     assert_eq!(v.xzxw(), vec4(1_f32, 3_f32, 1_f32, 4_f32));
44     assert_eq!(v.xzyx(), vec4(1_f32, 3_f32, 2_f32, 1_f32));
45     assert_eq!(v.xzyy(), vec4(1_f32, 3_f32, 2_f32, 2_f32));
46     assert_eq!(v.xzyz(), vec4(1_f32, 3_f32, 2_f32, 3_f32));
47     assert_eq!(v.xzyw(), vec4(1_f32, 3_f32, 2_f32, 4_f32));
48     assert_eq!(v.xzzx(), vec4(1_f32, 3_f32, 3_f32, 1_f32));
49     assert_eq!(v.xzzy(), vec4(1_f32, 3_f32, 3_f32, 2_f32));
50     assert_eq!(v.xzzz(), vec4(1_f32, 3_f32, 3_f32, 3_f32));
51     assert_eq!(v.xzzw(), vec4(1_f32, 3_f32, 3_f32, 4_f32));
52     assert_eq!(v.xzwx(), vec4(1_f32, 3_f32, 4_f32, 1_f32));
53     assert_eq!(v.xzwy(), vec4(1_f32, 3_f32, 4_f32, 2_f32));
54     assert_eq!(v.xzwz(), vec4(1_f32, 3_f32, 4_f32, 3_f32));
55     assert_eq!(v.xzww(), vec4(1_f32, 3_f32, 4_f32, 4_f32));
56     assert_eq!(v.xwxx(), vec4(1_f32, 4_f32, 1_f32, 1_f32));
57     assert_eq!(v.xwxy(), vec4(1_f32, 4_f32, 1_f32, 2_f32));
58     assert_eq!(v.xwxz(), vec4(1_f32, 4_f32, 1_f32, 3_f32));
59     assert_eq!(v.xwxw(), vec4(1_f32, 4_f32, 1_f32, 4_f32));
60     assert_eq!(v.xwyx(), vec4(1_f32, 4_f32, 2_f32, 1_f32));
61     assert_eq!(v.xwyy(), vec4(1_f32, 4_f32, 2_f32, 2_f32));
62     assert_eq!(v.xwyz(), vec4(1_f32, 4_f32, 2_f32, 3_f32));
63     assert_eq!(v.xwyw(), vec4(1_f32, 4_f32, 2_f32, 4_f32));
64     assert_eq!(v.xwzx(), vec4(1_f32, 4_f32, 3_f32, 1_f32));
65     assert_eq!(v.xwzy(), vec4(1_f32, 4_f32, 3_f32, 2_f32));
66     assert_eq!(v.xwzz(), vec4(1_f32, 4_f32, 3_f32, 3_f32));
67     assert_eq!(v.xwzw(), vec4(1_f32, 4_f32, 3_f32, 4_f32));
68     assert_eq!(v.xwwx(), vec4(1_f32, 4_f32, 4_f32, 1_f32));
69     assert_eq!(v.xwwy(), vec4(1_f32, 4_f32, 4_f32, 2_f32));
70     assert_eq!(v.xwwz(), vec4(1_f32, 4_f32, 4_f32, 3_f32));
71     assert_eq!(v.xwww(), vec4(1_f32, 4_f32, 4_f32, 4_f32));
72     assert_eq!(v.yxxx(), vec4(2_f32, 1_f32, 1_f32, 1_f32));
73     assert_eq!(v.yxxy(), vec4(2_f32, 1_f32, 1_f32, 2_f32));
74     assert_eq!(v.yxxz(), vec4(2_f32, 1_f32, 1_f32, 3_f32));
75     assert_eq!(v.yxxw(), vec4(2_f32, 1_f32, 1_f32, 4_f32));
76     assert_eq!(v.yxyx(), vec4(2_f32, 1_f32, 2_f32, 1_f32));
77     assert_eq!(v.yxyy(), vec4(2_f32, 1_f32, 2_f32, 2_f32));
78     assert_eq!(v.yxyz(), vec4(2_f32, 1_f32, 2_f32, 3_f32));
79     assert_eq!(v.yxyw(), vec4(2_f32, 1_f32, 2_f32, 4_f32));
80     assert_eq!(v.yxzx(), vec4(2_f32, 1_f32, 3_f32, 1_f32));
81     assert_eq!(v.yxzy(), vec4(2_f32, 1_f32, 3_f32, 2_f32));
82     assert_eq!(v.yxzz(), vec4(2_f32, 1_f32, 3_f32, 3_f32));
83     assert_eq!(v.yxzw(), vec4(2_f32, 1_f32, 3_f32, 4_f32));
84     assert_eq!(v.yxwx(), vec4(2_f32, 1_f32, 4_f32, 1_f32));
85     assert_eq!(v.yxwy(), vec4(2_f32, 1_f32, 4_f32, 2_f32));
86     assert_eq!(v.yxwz(), vec4(2_f32, 1_f32, 4_f32, 3_f32));
87     assert_eq!(v.yxww(), vec4(2_f32, 1_f32, 4_f32, 4_f32));
88     assert_eq!(v.yyxx(), vec4(2_f32, 2_f32, 1_f32, 1_f32));
89     assert_eq!(v.yyxy(), vec4(2_f32, 2_f32, 1_f32, 2_f32));
90     assert_eq!(v.yyxz(), vec4(2_f32, 2_f32, 1_f32, 3_f32));
91     assert_eq!(v.yyxw(), vec4(2_f32, 2_f32, 1_f32, 4_f32));
92     assert_eq!(v.yyyx(), vec4(2_f32, 2_f32, 2_f32, 1_f32));
93     assert_eq!(v.yyyy(), vec4(2_f32, 2_f32, 2_f32, 2_f32));
94     assert_eq!(v.yyyz(), vec4(2_f32, 2_f32, 2_f32, 3_f32));
95     assert_eq!(v.yyyw(), vec4(2_f32, 2_f32, 2_f32, 4_f32));
96     assert_eq!(v.yyzx(), vec4(2_f32, 2_f32, 3_f32, 1_f32));
97     assert_eq!(v.yyzy(), vec4(2_f32, 2_f32, 3_f32, 2_f32));
98     assert_eq!(v.yyzz(), vec4(2_f32, 2_f32, 3_f32, 3_f32));
99     assert_eq!(v.yyzw(), vec4(2_f32, 2_f32, 3_f32, 4_f32));
100     assert_eq!(v.yywx(), vec4(2_f32, 2_f32, 4_f32, 1_f32));
101     assert_eq!(v.yywy(), vec4(2_f32, 2_f32, 4_f32, 2_f32));
102     assert_eq!(v.yywz(), vec4(2_f32, 2_f32, 4_f32, 3_f32));
103     assert_eq!(v.yyww(), vec4(2_f32, 2_f32, 4_f32, 4_f32));
104     assert_eq!(v.yzxx(), vec4(2_f32, 3_f32, 1_f32, 1_f32));
105     assert_eq!(v.yzxy(), vec4(2_f32, 3_f32, 1_f32, 2_f32));
106     assert_eq!(v.yzxz(), vec4(2_f32, 3_f32, 1_f32, 3_f32));
107     assert_eq!(v.yzxw(), vec4(2_f32, 3_f32, 1_f32, 4_f32));
108     assert_eq!(v.yzyx(), vec4(2_f32, 3_f32, 2_f32, 1_f32));
109     assert_eq!(v.yzyy(), vec4(2_f32, 3_f32, 2_f32, 2_f32));
110     assert_eq!(v.yzyz(), vec4(2_f32, 3_f32, 2_f32, 3_f32));
111     assert_eq!(v.yzyw(), vec4(2_f32, 3_f32, 2_f32, 4_f32));
112     assert_eq!(v.yzzx(), vec4(2_f32, 3_f32, 3_f32, 1_f32));
113     assert_eq!(v.yzzy(), vec4(2_f32, 3_f32, 3_f32, 2_f32));
114     assert_eq!(v.yzzz(), vec4(2_f32, 3_f32, 3_f32, 3_f32));
115     assert_eq!(v.yzzw(), vec4(2_f32, 3_f32, 3_f32, 4_f32));
116     assert_eq!(v.yzwx(), vec4(2_f32, 3_f32, 4_f32, 1_f32));
117     assert_eq!(v.yzwy(), vec4(2_f32, 3_f32, 4_f32, 2_f32));
118     assert_eq!(v.yzwz(), vec4(2_f32, 3_f32, 4_f32, 3_f32));
119     assert_eq!(v.yzww(), vec4(2_f32, 3_f32, 4_f32, 4_f32));
120     assert_eq!(v.ywxx(), vec4(2_f32, 4_f32, 1_f32, 1_f32));
121     assert_eq!(v.ywxy(), vec4(2_f32, 4_f32, 1_f32, 2_f32));
122     assert_eq!(v.ywxz(), vec4(2_f32, 4_f32, 1_f32, 3_f32));
123     assert_eq!(v.ywxw(), vec4(2_f32, 4_f32, 1_f32, 4_f32));
124     assert_eq!(v.ywyx(), vec4(2_f32, 4_f32, 2_f32, 1_f32));
125     assert_eq!(v.ywyy(), vec4(2_f32, 4_f32, 2_f32, 2_f32));
126     assert_eq!(v.ywyz(), vec4(2_f32, 4_f32, 2_f32, 3_f32));
127     assert_eq!(v.ywyw(), vec4(2_f32, 4_f32, 2_f32, 4_f32));
128     assert_eq!(v.ywzx(), vec4(2_f32, 4_f32, 3_f32, 1_f32));
129     assert_eq!(v.ywzy(), vec4(2_f32, 4_f32, 3_f32, 2_f32));
130     assert_eq!(v.ywzz(), vec4(2_f32, 4_f32, 3_f32, 3_f32));
131     assert_eq!(v.ywzw(), vec4(2_f32, 4_f32, 3_f32, 4_f32));
132     assert_eq!(v.ywwx(), vec4(2_f32, 4_f32, 4_f32, 1_f32));
133     assert_eq!(v.ywwy(), vec4(2_f32, 4_f32, 4_f32, 2_f32));
134     assert_eq!(v.ywwz(), vec4(2_f32, 4_f32, 4_f32, 3_f32));
135     assert_eq!(v.ywww(), vec4(2_f32, 4_f32, 4_f32, 4_f32));
136     assert_eq!(v.zxxx(), vec4(3_f32, 1_f32, 1_f32, 1_f32));
137     assert_eq!(v.zxxy(), vec4(3_f32, 1_f32, 1_f32, 2_f32));
138     assert_eq!(v.zxxz(), vec4(3_f32, 1_f32, 1_f32, 3_f32));
139     assert_eq!(v.zxxw(), vec4(3_f32, 1_f32, 1_f32, 4_f32));
140     assert_eq!(v.zxyx(), vec4(3_f32, 1_f32, 2_f32, 1_f32));
141     assert_eq!(v.zxyy(), vec4(3_f32, 1_f32, 2_f32, 2_f32));
142     assert_eq!(v.zxyz(), vec4(3_f32, 1_f32, 2_f32, 3_f32));
143     assert_eq!(v.zxyw(), vec4(3_f32, 1_f32, 2_f32, 4_f32));
144     assert_eq!(v.zxzx(), vec4(3_f32, 1_f32, 3_f32, 1_f32));
145     assert_eq!(v.zxzy(), vec4(3_f32, 1_f32, 3_f32, 2_f32));
146     assert_eq!(v.zxzz(), vec4(3_f32, 1_f32, 3_f32, 3_f32));
147     assert_eq!(v.zxzw(), vec4(3_f32, 1_f32, 3_f32, 4_f32));
148     assert_eq!(v.zxwx(), vec4(3_f32, 1_f32, 4_f32, 1_f32));
149     assert_eq!(v.zxwy(), vec4(3_f32, 1_f32, 4_f32, 2_f32));
150     assert_eq!(v.zxwz(), vec4(3_f32, 1_f32, 4_f32, 3_f32));
151     assert_eq!(v.zxww(), vec4(3_f32, 1_f32, 4_f32, 4_f32));
152     assert_eq!(v.zyxx(), vec4(3_f32, 2_f32, 1_f32, 1_f32));
153     assert_eq!(v.zyxy(), vec4(3_f32, 2_f32, 1_f32, 2_f32));
154     assert_eq!(v.zyxz(), vec4(3_f32, 2_f32, 1_f32, 3_f32));
155     assert_eq!(v.zyxw(), vec4(3_f32, 2_f32, 1_f32, 4_f32));
156     assert_eq!(v.zyyx(), vec4(3_f32, 2_f32, 2_f32, 1_f32));
157     assert_eq!(v.zyyy(), vec4(3_f32, 2_f32, 2_f32, 2_f32));
158     assert_eq!(v.zyyz(), vec4(3_f32, 2_f32, 2_f32, 3_f32));
159     assert_eq!(v.zyyw(), vec4(3_f32, 2_f32, 2_f32, 4_f32));
160     assert_eq!(v.zyzx(), vec4(3_f32, 2_f32, 3_f32, 1_f32));
161     assert_eq!(v.zyzy(), vec4(3_f32, 2_f32, 3_f32, 2_f32));
162     assert_eq!(v.zyzz(), vec4(3_f32, 2_f32, 3_f32, 3_f32));
163     assert_eq!(v.zyzw(), vec4(3_f32, 2_f32, 3_f32, 4_f32));
164     assert_eq!(v.zywx(), vec4(3_f32, 2_f32, 4_f32, 1_f32));
165     assert_eq!(v.zywy(), vec4(3_f32, 2_f32, 4_f32, 2_f32));
166     assert_eq!(v.zywz(), vec4(3_f32, 2_f32, 4_f32, 3_f32));
167     assert_eq!(v.zyww(), vec4(3_f32, 2_f32, 4_f32, 4_f32));
168     assert_eq!(v.zzxx(), vec4(3_f32, 3_f32, 1_f32, 1_f32));
169     assert_eq!(v.zzxy(), vec4(3_f32, 3_f32, 1_f32, 2_f32));
170     assert_eq!(v.zzxz(), vec4(3_f32, 3_f32, 1_f32, 3_f32));
171     assert_eq!(v.zzxw(), vec4(3_f32, 3_f32, 1_f32, 4_f32));
172     assert_eq!(v.zzyx(), vec4(3_f32, 3_f32, 2_f32, 1_f32));
173     assert_eq!(v.zzyy(), vec4(3_f32, 3_f32, 2_f32, 2_f32));
174     assert_eq!(v.zzyz(), vec4(3_f32, 3_f32, 2_f32, 3_f32));
175     assert_eq!(v.zzyw(), vec4(3_f32, 3_f32, 2_f32, 4_f32));
176     assert_eq!(v.zzzx(), vec4(3_f32, 3_f32, 3_f32, 1_f32));
177     assert_eq!(v.zzzy(), vec4(3_f32, 3_f32, 3_f32, 2_f32));
178     assert_eq!(v.zzzz(), vec4(3_f32, 3_f32, 3_f32, 3_f32));
179     assert_eq!(v.zzzw(), vec4(3_f32, 3_f32, 3_f32, 4_f32));
180     assert_eq!(v.zzwx(), vec4(3_f32, 3_f32, 4_f32, 1_f32));
181     assert_eq!(v.zzwy(), vec4(3_f32, 3_f32, 4_f32, 2_f32));
182     assert_eq!(v.zzwz(), vec4(3_f32, 3_f32, 4_f32, 3_f32));
183     assert_eq!(v.zzww(), vec4(3_f32, 3_f32, 4_f32, 4_f32));
184     assert_eq!(v.zwxx(), vec4(3_f32, 4_f32, 1_f32, 1_f32));
185     assert_eq!(v.zwxy(), vec4(3_f32, 4_f32, 1_f32, 2_f32));
186     assert_eq!(v.zwxz(), vec4(3_f32, 4_f32, 1_f32, 3_f32));
187     assert_eq!(v.zwxw(), vec4(3_f32, 4_f32, 1_f32, 4_f32));
188     assert_eq!(v.zwyx(), vec4(3_f32, 4_f32, 2_f32, 1_f32));
189     assert_eq!(v.zwyy(), vec4(3_f32, 4_f32, 2_f32, 2_f32));
190     assert_eq!(v.zwyz(), vec4(3_f32, 4_f32, 2_f32, 3_f32));
191     assert_eq!(v.zwyw(), vec4(3_f32, 4_f32, 2_f32, 4_f32));
192     assert_eq!(v.zwzx(), vec4(3_f32, 4_f32, 3_f32, 1_f32));
193     assert_eq!(v.zwzy(), vec4(3_f32, 4_f32, 3_f32, 2_f32));
194     assert_eq!(v.zwzz(), vec4(3_f32, 4_f32, 3_f32, 3_f32));
195     assert_eq!(v.zwzw(), vec4(3_f32, 4_f32, 3_f32, 4_f32));
196     assert_eq!(v.zwwx(), vec4(3_f32, 4_f32, 4_f32, 1_f32));
197     assert_eq!(v.zwwy(), vec4(3_f32, 4_f32, 4_f32, 2_f32));
198     assert_eq!(v.zwwz(), vec4(3_f32, 4_f32, 4_f32, 3_f32));
199     assert_eq!(v.zwww(), vec4(3_f32, 4_f32, 4_f32, 4_f32));
200     assert_eq!(v.wxxx(), vec4(4_f32, 1_f32, 1_f32, 1_f32));
201     assert_eq!(v.wxxy(), vec4(4_f32, 1_f32, 1_f32, 2_f32));
202     assert_eq!(v.wxxz(), vec4(4_f32, 1_f32, 1_f32, 3_f32));
203     assert_eq!(v.wxxw(), vec4(4_f32, 1_f32, 1_f32, 4_f32));
204     assert_eq!(v.wxyx(), vec4(4_f32, 1_f32, 2_f32, 1_f32));
205     assert_eq!(v.wxyy(), vec4(4_f32, 1_f32, 2_f32, 2_f32));
206     assert_eq!(v.wxyz(), vec4(4_f32, 1_f32, 2_f32, 3_f32));
207     assert_eq!(v.wxyw(), vec4(4_f32, 1_f32, 2_f32, 4_f32));
208     assert_eq!(v.wxzx(), vec4(4_f32, 1_f32, 3_f32, 1_f32));
209     assert_eq!(v.wxzy(), vec4(4_f32, 1_f32, 3_f32, 2_f32));
210     assert_eq!(v.wxzz(), vec4(4_f32, 1_f32, 3_f32, 3_f32));
211     assert_eq!(v.wxzw(), vec4(4_f32, 1_f32, 3_f32, 4_f32));
212     assert_eq!(v.wxwx(), vec4(4_f32, 1_f32, 4_f32, 1_f32));
213     assert_eq!(v.wxwy(), vec4(4_f32, 1_f32, 4_f32, 2_f32));
214     assert_eq!(v.wxwz(), vec4(4_f32, 1_f32, 4_f32, 3_f32));
215     assert_eq!(v.wxww(), vec4(4_f32, 1_f32, 4_f32, 4_f32));
216     assert_eq!(v.wyxx(), vec4(4_f32, 2_f32, 1_f32, 1_f32));
217     assert_eq!(v.wyxy(), vec4(4_f32, 2_f32, 1_f32, 2_f32));
218     assert_eq!(v.wyxz(), vec4(4_f32, 2_f32, 1_f32, 3_f32));
219     assert_eq!(v.wyxw(), vec4(4_f32, 2_f32, 1_f32, 4_f32));
220     assert_eq!(v.wyyx(), vec4(4_f32, 2_f32, 2_f32, 1_f32));
221     assert_eq!(v.wyyy(), vec4(4_f32, 2_f32, 2_f32, 2_f32));
222     assert_eq!(v.wyyz(), vec4(4_f32, 2_f32, 2_f32, 3_f32));
223     assert_eq!(v.wyyw(), vec4(4_f32, 2_f32, 2_f32, 4_f32));
224     assert_eq!(v.wyzx(), vec4(4_f32, 2_f32, 3_f32, 1_f32));
225     assert_eq!(v.wyzy(), vec4(4_f32, 2_f32, 3_f32, 2_f32));
226     assert_eq!(v.wyzz(), vec4(4_f32, 2_f32, 3_f32, 3_f32));
227     assert_eq!(v.wyzw(), vec4(4_f32, 2_f32, 3_f32, 4_f32));
228     assert_eq!(v.wywx(), vec4(4_f32, 2_f32, 4_f32, 1_f32));
229     assert_eq!(v.wywy(), vec4(4_f32, 2_f32, 4_f32, 2_f32));
230     assert_eq!(v.wywz(), vec4(4_f32, 2_f32, 4_f32, 3_f32));
231     assert_eq!(v.wyww(), vec4(4_f32, 2_f32, 4_f32, 4_f32));
232     assert_eq!(v.wzxx(), vec4(4_f32, 3_f32, 1_f32, 1_f32));
233     assert_eq!(v.wzxy(), vec4(4_f32, 3_f32, 1_f32, 2_f32));
234     assert_eq!(v.wzxz(), vec4(4_f32, 3_f32, 1_f32, 3_f32));
235     assert_eq!(v.wzxw(), vec4(4_f32, 3_f32, 1_f32, 4_f32));
236     assert_eq!(v.wzyx(), vec4(4_f32, 3_f32, 2_f32, 1_f32));
237     assert_eq!(v.wzyy(), vec4(4_f32, 3_f32, 2_f32, 2_f32));
238     assert_eq!(v.wzyz(), vec4(4_f32, 3_f32, 2_f32, 3_f32));
239     assert_eq!(v.wzyw(), vec4(4_f32, 3_f32, 2_f32, 4_f32));
240     assert_eq!(v.wzzx(), vec4(4_f32, 3_f32, 3_f32, 1_f32));
241     assert_eq!(v.wzzy(), vec4(4_f32, 3_f32, 3_f32, 2_f32));
242     assert_eq!(v.wzzz(), vec4(4_f32, 3_f32, 3_f32, 3_f32));
243     assert_eq!(v.wzzw(), vec4(4_f32, 3_f32, 3_f32, 4_f32));
244     assert_eq!(v.wzwx(), vec4(4_f32, 3_f32, 4_f32, 1_f32));
245     assert_eq!(v.wzwy(), vec4(4_f32, 3_f32, 4_f32, 2_f32));
246     assert_eq!(v.wzwz(), vec4(4_f32, 3_f32, 4_f32, 3_f32));
247     assert_eq!(v.wzww(), vec4(4_f32, 3_f32, 4_f32, 4_f32));
248     assert_eq!(v.wwxx(), vec4(4_f32, 4_f32, 1_f32, 1_f32));
249     assert_eq!(v.wwxy(), vec4(4_f32, 4_f32, 1_f32, 2_f32));
250     assert_eq!(v.wwxz(), vec4(4_f32, 4_f32, 1_f32, 3_f32));
251     assert_eq!(v.wwxw(), vec4(4_f32, 4_f32, 1_f32, 4_f32));
252     assert_eq!(v.wwyx(), vec4(4_f32, 4_f32, 2_f32, 1_f32));
253     assert_eq!(v.wwyy(), vec4(4_f32, 4_f32, 2_f32, 2_f32));
254     assert_eq!(v.wwyz(), vec4(4_f32, 4_f32, 2_f32, 3_f32));
255     assert_eq!(v.wwyw(), vec4(4_f32, 4_f32, 2_f32, 4_f32));
256     assert_eq!(v.wwzx(), vec4(4_f32, 4_f32, 3_f32, 1_f32));
257     assert_eq!(v.wwzy(), vec4(4_f32, 4_f32, 3_f32, 2_f32));
258     assert_eq!(v.wwzz(), vec4(4_f32, 4_f32, 3_f32, 3_f32));
259     assert_eq!(v.wwzw(), vec4(4_f32, 4_f32, 3_f32, 4_f32));
260     assert_eq!(v.wwwx(), vec4(4_f32, 4_f32, 4_f32, 1_f32));
261     assert_eq!(v.wwwy(), vec4(4_f32, 4_f32, 4_f32, 2_f32));
262     assert_eq!(v.wwwz(), vec4(4_f32, 4_f32, 4_f32, 3_f32));
263     assert_eq!(v.wwww(), vec4(4_f32, 4_f32, 4_f32, 4_f32));
264     assert_eq!(v.xxx(), vec3(1_f32, 1_f32, 1_f32));
265     assert_eq!(v.xxy(), vec3(1_f32, 1_f32, 2_f32));
266     assert_eq!(v.xxz(), vec3(1_f32, 1_f32, 3_f32));
267     assert_eq!(v.xxw(), vec3(1_f32, 1_f32, 4_f32));
268     assert_eq!(v.xyx(), vec3(1_f32, 2_f32, 1_f32));
269     assert_eq!(v.xyy(), vec3(1_f32, 2_f32, 2_f32));
270     assert_eq!(v.xyz(), vec3(1_f32, 2_f32, 3_f32));
271     assert_eq!(v.xyw(), vec3(1_f32, 2_f32, 4_f32));
272     assert_eq!(v.xzx(), vec3(1_f32, 3_f32, 1_f32));
273     assert_eq!(v.xzy(), vec3(1_f32, 3_f32, 2_f32));
274     assert_eq!(v.xzz(), vec3(1_f32, 3_f32, 3_f32));
275     assert_eq!(v.xzw(), vec3(1_f32, 3_f32, 4_f32));
276     assert_eq!(v.xwx(), vec3(1_f32, 4_f32, 1_f32));
277     assert_eq!(v.xwy(), vec3(1_f32, 4_f32, 2_f32));
278     assert_eq!(v.xwz(), vec3(1_f32, 4_f32, 3_f32));
279     assert_eq!(v.xww(), vec3(1_f32, 4_f32, 4_f32));
280     assert_eq!(v.yxx(), vec3(2_f32, 1_f32, 1_f32));
281     assert_eq!(v.yxy(), vec3(2_f32, 1_f32, 2_f32));
282     assert_eq!(v.yxz(), vec3(2_f32, 1_f32, 3_f32));
283     assert_eq!(v.yxw(), vec3(2_f32, 1_f32, 4_f32));
284     assert_eq!(v.yyx(), vec3(2_f32, 2_f32, 1_f32));
285     assert_eq!(v.yyy(), vec3(2_f32, 2_f32, 2_f32));
286     assert_eq!(v.yyz(), vec3(2_f32, 2_f32, 3_f32));
287     assert_eq!(v.yyw(), vec3(2_f32, 2_f32, 4_f32));
288     assert_eq!(v.yzx(), vec3(2_f32, 3_f32, 1_f32));
289     assert_eq!(v.yzy(), vec3(2_f32, 3_f32, 2_f32));
290     assert_eq!(v.yzz(), vec3(2_f32, 3_f32, 3_f32));
291     assert_eq!(v.yzw(), vec3(2_f32, 3_f32, 4_f32));
292     assert_eq!(v.ywx(), vec3(2_f32, 4_f32, 1_f32));
293     assert_eq!(v.ywy(), vec3(2_f32, 4_f32, 2_f32));
294     assert_eq!(v.ywz(), vec3(2_f32, 4_f32, 3_f32));
295     assert_eq!(v.yww(), vec3(2_f32, 4_f32, 4_f32));
296     assert_eq!(v.zxx(), vec3(3_f32, 1_f32, 1_f32));
297     assert_eq!(v.zxy(), vec3(3_f32, 1_f32, 2_f32));
298     assert_eq!(v.zxz(), vec3(3_f32, 1_f32, 3_f32));
299     assert_eq!(v.zxw(), vec3(3_f32, 1_f32, 4_f32));
300     assert_eq!(v.zyx(), vec3(3_f32, 2_f32, 1_f32));
301     assert_eq!(v.zyy(), vec3(3_f32, 2_f32, 2_f32));
302     assert_eq!(v.zyz(), vec3(3_f32, 2_f32, 3_f32));
303     assert_eq!(v.zyw(), vec3(3_f32, 2_f32, 4_f32));
304     assert_eq!(v.zzx(), vec3(3_f32, 3_f32, 1_f32));
305     assert_eq!(v.zzy(), vec3(3_f32, 3_f32, 2_f32));
306     assert_eq!(v.zzz(), vec3(3_f32, 3_f32, 3_f32));
307     assert_eq!(v.zzw(), vec3(3_f32, 3_f32, 4_f32));
308     assert_eq!(v.zwx(), vec3(3_f32, 4_f32, 1_f32));
309     assert_eq!(v.zwy(), vec3(3_f32, 4_f32, 2_f32));
310     assert_eq!(v.zwz(), vec3(3_f32, 4_f32, 3_f32));
311     assert_eq!(v.zww(), vec3(3_f32, 4_f32, 4_f32));
312     assert_eq!(v.wxx(), vec3(4_f32, 1_f32, 1_f32));
313     assert_eq!(v.wxy(), vec3(4_f32, 1_f32, 2_f32));
314     assert_eq!(v.wxz(), vec3(4_f32, 1_f32, 3_f32));
315     assert_eq!(v.wxw(), vec3(4_f32, 1_f32, 4_f32));
316     assert_eq!(v.wyx(), vec3(4_f32, 2_f32, 1_f32));
317     assert_eq!(v.wyy(), vec3(4_f32, 2_f32, 2_f32));
318     assert_eq!(v.wyz(), vec3(4_f32, 2_f32, 3_f32));
319     assert_eq!(v.wyw(), vec3(4_f32, 2_f32, 4_f32));
320     assert_eq!(v.wzx(), vec3(4_f32, 3_f32, 1_f32));
321     assert_eq!(v.wzy(), vec3(4_f32, 3_f32, 2_f32));
322     assert_eq!(v.wzz(), vec3(4_f32, 3_f32, 3_f32));
323     assert_eq!(v.wzw(), vec3(4_f32, 3_f32, 4_f32));
324     assert_eq!(v.wwx(), vec3(4_f32, 4_f32, 1_f32));
325     assert_eq!(v.wwy(), vec3(4_f32, 4_f32, 2_f32));
326     assert_eq!(v.wwz(), vec3(4_f32, 4_f32, 3_f32));
327     assert_eq!(v.www(), vec3(4_f32, 4_f32, 4_f32));
328     assert_eq!(v.xx(), vec2(1_f32, 1_f32));
329     assert_eq!(v.xy(), vec2(1_f32, 2_f32));
330     assert_eq!(v.xz(), vec2(1_f32, 3_f32));
331     assert_eq!(v.xw(), vec2(1_f32, 4_f32));
332     assert_eq!(v.yx(), vec2(2_f32, 1_f32));
333     assert_eq!(v.yy(), vec2(2_f32, 2_f32));
334     assert_eq!(v.yz(), vec2(2_f32, 3_f32));
335     assert_eq!(v.yw(), vec2(2_f32, 4_f32));
336     assert_eq!(v.zx(), vec2(3_f32, 1_f32));
337     assert_eq!(v.zy(), vec2(3_f32, 2_f32));
338     assert_eq!(v.zz(), vec2(3_f32, 3_f32));
339     assert_eq!(v.zw(), vec2(3_f32, 4_f32));
340     assert_eq!(v.wx(), vec2(4_f32, 1_f32));
341     assert_eq!(v.wy(), vec2(4_f32, 2_f32));
342     assert_eq!(v.wz(), vec2(4_f32, 3_f32));
343     assert_eq!(v.ww(), vec2(4_f32, 4_f32));
344 });
345 
346 glam_test!(test_vec3a_swizzles, {
347     let v = vec3a(1_f32, 2_f32, 3_f32);
348     assert_eq!(v, v.xyz());
349     assert_eq!(v.xxxx(), vec4(1_f32, 1_f32, 1_f32, 1_f32));
350     assert_eq!(v.xxxy(), vec4(1_f32, 1_f32, 1_f32, 2_f32));
351     assert_eq!(v.xxxz(), vec4(1_f32, 1_f32, 1_f32, 3_f32));
352     assert_eq!(v.xxyx(), vec4(1_f32, 1_f32, 2_f32, 1_f32));
353     assert_eq!(v.xxyy(), vec4(1_f32, 1_f32, 2_f32, 2_f32));
354     assert_eq!(v.xxyz(), vec4(1_f32, 1_f32, 2_f32, 3_f32));
355     assert_eq!(v.xxzx(), vec4(1_f32, 1_f32, 3_f32, 1_f32));
356     assert_eq!(v.xxzy(), vec4(1_f32, 1_f32, 3_f32, 2_f32));
357     assert_eq!(v.xxzz(), vec4(1_f32, 1_f32, 3_f32, 3_f32));
358     assert_eq!(v.xyxx(), vec4(1_f32, 2_f32, 1_f32, 1_f32));
359     assert_eq!(v.xyxy(), vec4(1_f32, 2_f32, 1_f32, 2_f32));
360     assert_eq!(v.xyxz(), vec4(1_f32, 2_f32, 1_f32, 3_f32));
361     assert_eq!(v.xyyx(), vec4(1_f32, 2_f32, 2_f32, 1_f32));
362     assert_eq!(v.xyyy(), vec4(1_f32, 2_f32, 2_f32, 2_f32));
363     assert_eq!(v.xyyz(), vec4(1_f32, 2_f32, 2_f32, 3_f32));
364     assert_eq!(v.xyzx(), vec4(1_f32, 2_f32, 3_f32, 1_f32));
365     assert_eq!(v.xyzy(), vec4(1_f32, 2_f32, 3_f32, 2_f32));
366     assert_eq!(v.xyzz(), vec4(1_f32, 2_f32, 3_f32, 3_f32));
367     assert_eq!(v.xzxx(), vec4(1_f32, 3_f32, 1_f32, 1_f32));
368     assert_eq!(v.xzxy(), vec4(1_f32, 3_f32, 1_f32, 2_f32));
369     assert_eq!(v.xzxz(), vec4(1_f32, 3_f32, 1_f32, 3_f32));
370     assert_eq!(v.xzyx(), vec4(1_f32, 3_f32, 2_f32, 1_f32));
371     assert_eq!(v.xzyy(), vec4(1_f32, 3_f32, 2_f32, 2_f32));
372     assert_eq!(v.xzyz(), vec4(1_f32, 3_f32, 2_f32, 3_f32));
373     assert_eq!(v.xzzx(), vec4(1_f32, 3_f32, 3_f32, 1_f32));
374     assert_eq!(v.xzzy(), vec4(1_f32, 3_f32, 3_f32, 2_f32));
375     assert_eq!(v.xzzz(), vec4(1_f32, 3_f32, 3_f32, 3_f32));
376     assert_eq!(v.yxxx(), vec4(2_f32, 1_f32, 1_f32, 1_f32));
377     assert_eq!(v.yxxy(), vec4(2_f32, 1_f32, 1_f32, 2_f32));
378     assert_eq!(v.yxxz(), vec4(2_f32, 1_f32, 1_f32, 3_f32));
379     assert_eq!(v.yxyx(), vec4(2_f32, 1_f32, 2_f32, 1_f32));
380     assert_eq!(v.yxyy(), vec4(2_f32, 1_f32, 2_f32, 2_f32));
381     assert_eq!(v.yxyz(), vec4(2_f32, 1_f32, 2_f32, 3_f32));
382     assert_eq!(v.yxzx(), vec4(2_f32, 1_f32, 3_f32, 1_f32));
383     assert_eq!(v.yxzy(), vec4(2_f32, 1_f32, 3_f32, 2_f32));
384     assert_eq!(v.yxzz(), vec4(2_f32, 1_f32, 3_f32, 3_f32));
385     assert_eq!(v.yyxx(), vec4(2_f32, 2_f32, 1_f32, 1_f32));
386     assert_eq!(v.yyxy(), vec4(2_f32, 2_f32, 1_f32, 2_f32));
387     assert_eq!(v.yyxz(), vec4(2_f32, 2_f32, 1_f32, 3_f32));
388     assert_eq!(v.yyyx(), vec4(2_f32, 2_f32, 2_f32, 1_f32));
389     assert_eq!(v.yyyy(), vec4(2_f32, 2_f32, 2_f32, 2_f32));
390     assert_eq!(v.yyyz(), vec4(2_f32, 2_f32, 2_f32, 3_f32));
391     assert_eq!(v.yyzx(), vec4(2_f32, 2_f32, 3_f32, 1_f32));
392     assert_eq!(v.yyzy(), vec4(2_f32, 2_f32, 3_f32, 2_f32));
393     assert_eq!(v.yyzz(), vec4(2_f32, 2_f32, 3_f32, 3_f32));
394     assert_eq!(v.yzxx(), vec4(2_f32, 3_f32, 1_f32, 1_f32));
395     assert_eq!(v.yzxy(), vec4(2_f32, 3_f32, 1_f32, 2_f32));
396     assert_eq!(v.yzxz(), vec4(2_f32, 3_f32, 1_f32, 3_f32));
397     assert_eq!(v.yzyx(), vec4(2_f32, 3_f32, 2_f32, 1_f32));
398     assert_eq!(v.yzyy(), vec4(2_f32, 3_f32, 2_f32, 2_f32));
399     assert_eq!(v.yzyz(), vec4(2_f32, 3_f32, 2_f32, 3_f32));
400     assert_eq!(v.yzzx(), vec4(2_f32, 3_f32, 3_f32, 1_f32));
401     assert_eq!(v.yzzy(), vec4(2_f32, 3_f32, 3_f32, 2_f32));
402     assert_eq!(v.yzzz(), vec4(2_f32, 3_f32, 3_f32, 3_f32));
403     assert_eq!(v.zxxx(), vec4(3_f32, 1_f32, 1_f32, 1_f32));
404     assert_eq!(v.zxxy(), vec4(3_f32, 1_f32, 1_f32, 2_f32));
405     assert_eq!(v.zxxz(), vec4(3_f32, 1_f32, 1_f32, 3_f32));
406     assert_eq!(v.zxyx(), vec4(3_f32, 1_f32, 2_f32, 1_f32));
407     assert_eq!(v.zxyy(), vec4(3_f32, 1_f32, 2_f32, 2_f32));
408     assert_eq!(v.zxyz(), vec4(3_f32, 1_f32, 2_f32, 3_f32));
409     assert_eq!(v.zxzx(), vec4(3_f32, 1_f32, 3_f32, 1_f32));
410     assert_eq!(v.zxzy(), vec4(3_f32, 1_f32, 3_f32, 2_f32));
411     assert_eq!(v.zxzz(), vec4(3_f32, 1_f32, 3_f32, 3_f32));
412     assert_eq!(v.zyxx(), vec4(3_f32, 2_f32, 1_f32, 1_f32));
413     assert_eq!(v.zyxy(), vec4(3_f32, 2_f32, 1_f32, 2_f32));
414     assert_eq!(v.zyxz(), vec4(3_f32, 2_f32, 1_f32, 3_f32));
415     assert_eq!(v.zyyx(), vec4(3_f32, 2_f32, 2_f32, 1_f32));
416     assert_eq!(v.zyyy(), vec4(3_f32, 2_f32, 2_f32, 2_f32));
417     assert_eq!(v.zyyz(), vec4(3_f32, 2_f32, 2_f32, 3_f32));
418     assert_eq!(v.zyzx(), vec4(3_f32, 2_f32, 3_f32, 1_f32));
419     assert_eq!(v.zyzy(), vec4(3_f32, 2_f32, 3_f32, 2_f32));
420     assert_eq!(v.zyzz(), vec4(3_f32, 2_f32, 3_f32, 3_f32));
421     assert_eq!(v.zzxx(), vec4(3_f32, 3_f32, 1_f32, 1_f32));
422     assert_eq!(v.zzxy(), vec4(3_f32, 3_f32, 1_f32, 2_f32));
423     assert_eq!(v.zzxz(), vec4(3_f32, 3_f32, 1_f32, 3_f32));
424     assert_eq!(v.zzyx(), vec4(3_f32, 3_f32, 2_f32, 1_f32));
425     assert_eq!(v.zzyy(), vec4(3_f32, 3_f32, 2_f32, 2_f32));
426     assert_eq!(v.zzyz(), vec4(3_f32, 3_f32, 2_f32, 3_f32));
427     assert_eq!(v.zzzx(), vec4(3_f32, 3_f32, 3_f32, 1_f32));
428     assert_eq!(v.zzzy(), vec4(3_f32, 3_f32, 3_f32, 2_f32));
429     assert_eq!(v.zzzz(), vec4(3_f32, 3_f32, 3_f32, 3_f32));
430     assert_eq!(v.xxx(), vec3a(1_f32, 1_f32, 1_f32));
431     assert_eq!(v.xxy(), vec3a(1_f32, 1_f32, 2_f32));
432     assert_eq!(v.xxz(), vec3a(1_f32, 1_f32, 3_f32));
433     assert_eq!(v.xyx(), vec3a(1_f32, 2_f32, 1_f32));
434     assert_eq!(v.xyy(), vec3a(1_f32, 2_f32, 2_f32));
435     assert_eq!(v.xzx(), vec3a(1_f32, 3_f32, 1_f32));
436     assert_eq!(v.xzy(), vec3a(1_f32, 3_f32, 2_f32));
437     assert_eq!(v.xzz(), vec3a(1_f32, 3_f32, 3_f32));
438     assert_eq!(v.yxx(), vec3a(2_f32, 1_f32, 1_f32));
439     assert_eq!(v.yxy(), vec3a(2_f32, 1_f32, 2_f32));
440     assert_eq!(v.yxz(), vec3a(2_f32, 1_f32, 3_f32));
441     assert_eq!(v.yyx(), vec3a(2_f32, 2_f32, 1_f32));
442     assert_eq!(v.yyy(), vec3a(2_f32, 2_f32, 2_f32));
443     assert_eq!(v.yyz(), vec3a(2_f32, 2_f32, 3_f32));
444     assert_eq!(v.yzx(), vec3a(2_f32, 3_f32, 1_f32));
445     assert_eq!(v.yzy(), vec3a(2_f32, 3_f32, 2_f32));
446     assert_eq!(v.yzz(), vec3a(2_f32, 3_f32, 3_f32));
447     assert_eq!(v.zxx(), vec3a(3_f32, 1_f32, 1_f32));
448     assert_eq!(v.zxy(), vec3a(3_f32, 1_f32, 2_f32));
449     assert_eq!(v.zxz(), vec3a(3_f32, 1_f32, 3_f32));
450     assert_eq!(v.zyx(), vec3a(3_f32, 2_f32, 1_f32));
451     assert_eq!(v.zyy(), vec3a(3_f32, 2_f32, 2_f32));
452     assert_eq!(v.zyz(), vec3a(3_f32, 2_f32, 3_f32));
453     assert_eq!(v.zzx(), vec3a(3_f32, 3_f32, 1_f32));
454     assert_eq!(v.zzy(), vec3a(3_f32, 3_f32, 2_f32));
455     assert_eq!(v.zzz(), vec3a(3_f32, 3_f32, 3_f32));
456     assert_eq!(v.xx(), vec2(1_f32, 1_f32));
457     assert_eq!(v.xy(), vec2(1_f32, 2_f32));
458     assert_eq!(v.xz(), vec2(1_f32, 3_f32));
459     assert_eq!(v.yx(), vec2(2_f32, 1_f32));
460     assert_eq!(v.yy(), vec2(2_f32, 2_f32));
461     assert_eq!(v.yz(), vec2(2_f32, 3_f32));
462     assert_eq!(v.zx(), vec2(3_f32, 1_f32));
463     assert_eq!(v.zy(), vec2(3_f32, 2_f32));
464     assert_eq!(v.zz(), vec2(3_f32, 3_f32));
465 });
466 
467 glam_test!(test_vec3_swizzles, {
468     let v = vec3(1_f32, 2_f32, 3_f32);
469     assert_eq!(v, v.xyz());
470     assert_eq!(v.xxxx(), vec4(1_f32, 1_f32, 1_f32, 1_f32));
471     assert_eq!(v.xxxy(), vec4(1_f32, 1_f32, 1_f32, 2_f32));
472     assert_eq!(v.xxxz(), vec4(1_f32, 1_f32, 1_f32, 3_f32));
473     assert_eq!(v.xxyx(), vec4(1_f32, 1_f32, 2_f32, 1_f32));
474     assert_eq!(v.xxyy(), vec4(1_f32, 1_f32, 2_f32, 2_f32));
475     assert_eq!(v.xxyz(), vec4(1_f32, 1_f32, 2_f32, 3_f32));
476     assert_eq!(v.xxzx(), vec4(1_f32, 1_f32, 3_f32, 1_f32));
477     assert_eq!(v.xxzy(), vec4(1_f32, 1_f32, 3_f32, 2_f32));
478     assert_eq!(v.xxzz(), vec4(1_f32, 1_f32, 3_f32, 3_f32));
479     assert_eq!(v.xyxx(), vec4(1_f32, 2_f32, 1_f32, 1_f32));
480     assert_eq!(v.xyxy(), vec4(1_f32, 2_f32, 1_f32, 2_f32));
481     assert_eq!(v.xyxz(), vec4(1_f32, 2_f32, 1_f32, 3_f32));
482     assert_eq!(v.xyyx(), vec4(1_f32, 2_f32, 2_f32, 1_f32));
483     assert_eq!(v.xyyy(), vec4(1_f32, 2_f32, 2_f32, 2_f32));
484     assert_eq!(v.xyyz(), vec4(1_f32, 2_f32, 2_f32, 3_f32));
485     assert_eq!(v.xyzx(), vec4(1_f32, 2_f32, 3_f32, 1_f32));
486     assert_eq!(v.xyzy(), vec4(1_f32, 2_f32, 3_f32, 2_f32));
487     assert_eq!(v.xyzz(), vec4(1_f32, 2_f32, 3_f32, 3_f32));
488     assert_eq!(v.xzxx(), vec4(1_f32, 3_f32, 1_f32, 1_f32));
489     assert_eq!(v.xzxy(), vec4(1_f32, 3_f32, 1_f32, 2_f32));
490     assert_eq!(v.xzxz(), vec4(1_f32, 3_f32, 1_f32, 3_f32));
491     assert_eq!(v.xzyx(), vec4(1_f32, 3_f32, 2_f32, 1_f32));
492     assert_eq!(v.xzyy(), vec4(1_f32, 3_f32, 2_f32, 2_f32));
493     assert_eq!(v.xzyz(), vec4(1_f32, 3_f32, 2_f32, 3_f32));
494     assert_eq!(v.xzzx(), vec4(1_f32, 3_f32, 3_f32, 1_f32));
495     assert_eq!(v.xzzy(), vec4(1_f32, 3_f32, 3_f32, 2_f32));
496     assert_eq!(v.xzzz(), vec4(1_f32, 3_f32, 3_f32, 3_f32));
497     assert_eq!(v.yxxx(), vec4(2_f32, 1_f32, 1_f32, 1_f32));
498     assert_eq!(v.yxxy(), vec4(2_f32, 1_f32, 1_f32, 2_f32));
499     assert_eq!(v.yxxz(), vec4(2_f32, 1_f32, 1_f32, 3_f32));
500     assert_eq!(v.yxyx(), vec4(2_f32, 1_f32, 2_f32, 1_f32));
501     assert_eq!(v.yxyy(), vec4(2_f32, 1_f32, 2_f32, 2_f32));
502     assert_eq!(v.yxyz(), vec4(2_f32, 1_f32, 2_f32, 3_f32));
503     assert_eq!(v.yxzx(), vec4(2_f32, 1_f32, 3_f32, 1_f32));
504     assert_eq!(v.yxzy(), vec4(2_f32, 1_f32, 3_f32, 2_f32));
505     assert_eq!(v.yxzz(), vec4(2_f32, 1_f32, 3_f32, 3_f32));
506     assert_eq!(v.yyxx(), vec4(2_f32, 2_f32, 1_f32, 1_f32));
507     assert_eq!(v.yyxy(), vec4(2_f32, 2_f32, 1_f32, 2_f32));
508     assert_eq!(v.yyxz(), vec4(2_f32, 2_f32, 1_f32, 3_f32));
509     assert_eq!(v.yyyx(), vec4(2_f32, 2_f32, 2_f32, 1_f32));
510     assert_eq!(v.yyyy(), vec4(2_f32, 2_f32, 2_f32, 2_f32));
511     assert_eq!(v.yyyz(), vec4(2_f32, 2_f32, 2_f32, 3_f32));
512     assert_eq!(v.yyzx(), vec4(2_f32, 2_f32, 3_f32, 1_f32));
513     assert_eq!(v.yyzy(), vec4(2_f32, 2_f32, 3_f32, 2_f32));
514     assert_eq!(v.yyzz(), vec4(2_f32, 2_f32, 3_f32, 3_f32));
515     assert_eq!(v.yzxx(), vec4(2_f32, 3_f32, 1_f32, 1_f32));
516     assert_eq!(v.yzxy(), vec4(2_f32, 3_f32, 1_f32, 2_f32));
517     assert_eq!(v.yzxz(), vec4(2_f32, 3_f32, 1_f32, 3_f32));
518     assert_eq!(v.yzyx(), vec4(2_f32, 3_f32, 2_f32, 1_f32));
519     assert_eq!(v.yzyy(), vec4(2_f32, 3_f32, 2_f32, 2_f32));
520     assert_eq!(v.yzyz(), vec4(2_f32, 3_f32, 2_f32, 3_f32));
521     assert_eq!(v.yzzx(), vec4(2_f32, 3_f32, 3_f32, 1_f32));
522     assert_eq!(v.yzzy(), vec4(2_f32, 3_f32, 3_f32, 2_f32));
523     assert_eq!(v.yzzz(), vec4(2_f32, 3_f32, 3_f32, 3_f32));
524     assert_eq!(v.zxxx(), vec4(3_f32, 1_f32, 1_f32, 1_f32));
525     assert_eq!(v.zxxy(), vec4(3_f32, 1_f32, 1_f32, 2_f32));
526     assert_eq!(v.zxxz(), vec4(3_f32, 1_f32, 1_f32, 3_f32));
527     assert_eq!(v.zxyx(), vec4(3_f32, 1_f32, 2_f32, 1_f32));
528     assert_eq!(v.zxyy(), vec4(3_f32, 1_f32, 2_f32, 2_f32));
529     assert_eq!(v.zxyz(), vec4(3_f32, 1_f32, 2_f32, 3_f32));
530     assert_eq!(v.zxzx(), vec4(3_f32, 1_f32, 3_f32, 1_f32));
531     assert_eq!(v.zxzy(), vec4(3_f32, 1_f32, 3_f32, 2_f32));
532     assert_eq!(v.zxzz(), vec4(3_f32, 1_f32, 3_f32, 3_f32));
533     assert_eq!(v.zyxx(), vec4(3_f32, 2_f32, 1_f32, 1_f32));
534     assert_eq!(v.zyxy(), vec4(3_f32, 2_f32, 1_f32, 2_f32));
535     assert_eq!(v.zyxz(), vec4(3_f32, 2_f32, 1_f32, 3_f32));
536     assert_eq!(v.zyyx(), vec4(3_f32, 2_f32, 2_f32, 1_f32));
537     assert_eq!(v.zyyy(), vec4(3_f32, 2_f32, 2_f32, 2_f32));
538     assert_eq!(v.zyyz(), vec4(3_f32, 2_f32, 2_f32, 3_f32));
539     assert_eq!(v.zyzx(), vec4(3_f32, 2_f32, 3_f32, 1_f32));
540     assert_eq!(v.zyzy(), vec4(3_f32, 2_f32, 3_f32, 2_f32));
541     assert_eq!(v.zyzz(), vec4(3_f32, 2_f32, 3_f32, 3_f32));
542     assert_eq!(v.zzxx(), vec4(3_f32, 3_f32, 1_f32, 1_f32));
543     assert_eq!(v.zzxy(), vec4(3_f32, 3_f32, 1_f32, 2_f32));
544     assert_eq!(v.zzxz(), vec4(3_f32, 3_f32, 1_f32, 3_f32));
545     assert_eq!(v.zzyx(), vec4(3_f32, 3_f32, 2_f32, 1_f32));
546     assert_eq!(v.zzyy(), vec4(3_f32, 3_f32, 2_f32, 2_f32));
547     assert_eq!(v.zzyz(), vec4(3_f32, 3_f32, 2_f32, 3_f32));
548     assert_eq!(v.zzzx(), vec4(3_f32, 3_f32, 3_f32, 1_f32));
549     assert_eq!(v.zzzy(), vec4(3_f32, 3_f32, 3_f32, 2_f32));
550     assert_eq!(v.zzzz(), vec4(3_f32, 3_f32, 3_f32, 3_f32));
551     assert_eq!(v.xxx(), vec3(1_f32, 1_f32, 1_f32));
552     assert_eq!(v.xxy(), vec3(1_f32, 1_f32, 2_f32));
553     assert_eq!(v.xxz(), vec3(1_f32, 1_f32, 3_f32));
554     assert_eq!(v.xyx(), vec3(1_f32, 2_f32, 1_f32));
555     assert_eq!(v.xyy(), vec3(1_f32, 2_f32, 2_f32));
556     assert_eq!(v.xzx(), vec3(1_f32, 3_f32, 1_f32));
557     assert_eq!(v.xzy(), vec3(1_f32, 3_f32, 2_f32));
558     assert_eq!(v.xzz(), vec3(1_f32, 3_f32, 3_f32));
559     assert_eq!(v.yxx(), vec3(2_f32, 1_f32, 1_f32));
560     assert_eq!(v.yxy(), vec3(2_f32, 1_f32, 2_f32));
561     assert_eq!(v.yxz(), vec3(2_f32, 1_f32, 3_f32));
562     assert_eq!(v.yyx(), vec3(2_f32, 2_f32, 1_f32));
563     assert_eq!(v.yyy(), vec3(2_f32, 2_f32, 2_f32));
564     assert_eq!(v.yyz(), vec3(2_f32, 2_f32, 3_f32));
565     assert_eq!(v.yzx(), vec3(2_f32, 3_f32, 1_f32));
566     assert_eq!(v.yzy(), vec3(2_f32, 3_f32, 2_f32));
567     assert_eq!(v.yzz(), vec3(2_f32, 3_f32, 3_f32));
568     assert_eq!(v.zxx(), vec3(3_f32, 1_f32, 1_f32));
569     assert_eq!(v.zxy(), vec3(3_f32, 1_f32, 2_f32));
570     assert_eq!(v.zxz(), vec3(3_f32, 1_f32, 3_f32));
571     assert_eq!(v.zyx(), vec3(3_f32, 2_f32, 1_f32));
572     assert_eq!(v.zyy(), vec3(3_f32, 2_f32, 2_f32));
573     assert_eq!(v.zyz(), vec3(3_f32, 2_f32, 3_f32));
574     assert_eq!(v.zzx(), vec3(3_f32, 3_f32, 1_f32));
575     assert_eq!(v.zzy(), vec3(3_f32, 3_f32, 2_f32));
576     assert_eq!(v.zzz(), vec3(3_f32, 3_f32, 3_f32));
577     assert_eq!(v.xx(), vec2(1_f32, 1_f32));
578     assert_eq!(v.xy(), vec2(1_f32, 2_f32));
579     assert_eq!(v.xz(), vec2(1_f32, 3_f32));
580     assert_eq!(v.yx(), vec2(2_f32, 1_f32));
581     assert_eq!(v.yy(), vec2(2_f32, 2_f32));
582     assert_eq!(v.yz(), vec2(2_f32, 3_f32));
583     assert_eq!(v.zx(), vec2(3_f32, 1_f32));
584     assert_eq!(v.zy(), vec2(3_f32, 2_f32));
585     assert_eq!(v.zz(), vec2(3_f32, 3_f32));
586 });
587 
588 glam_test!(test_vec2_swizzles, {
589     let v = vec2(1_f32, 2_f32);
590     assert_eq!(v, v.xy());
591     assert_eq!(v.xxxx(), vec4(1_f32, 1_f32, 1_f32, 1_f32));
592     assert_eq!(v.xxxy(), vec4(1_f32, 1_f32, 1_f32, 2_f32));
593     assert_eq!(v.xxyx(), vec4(1_f32, 1_f32, 2_f32, 1_f32));
594     assert_eq!(v.xxyy(), vec4(1_f32, 1_f32, 2_f32, 2_f32));
595     assert_eq!(v.xyxx(), vec4(1_f32, 2_f32, 1_f32, 1_f32));
596     assert_eq!(v.xyxy(), vec4(1_f32, 2_f32, 1_f32, 2_f32));
597     assert_eq!(v.xyyx(), vec4(1_f32, 2_f32, 2_f32, 1_f32));
598     assert_eq!(v.xyyy(), vec4(1_f32, 2_f32, 2_f32, 2_f32));
599     assert_eq!(v.yxxx(), vec4(2_f32, 1_f32, 1_f32, 1_f32));
600     assert_eq!(v.yxxy(), vec4(2_f32, 1_f32, 1_f32, 2_f32));
601     assert_eq!(v.yxyx(), vec4(2_f32, 1_f32, 2_f32, 1_f32));
602     assert_eq!(v.yxyy(), vec4(2_f32, 1_f32, 2_f32, 2_f32));
603     assert_eq!(v.yyxx(), vec4(2_f32, 2_f32, 1_f32, 1_f32));
604     assert_eq!(v.yyxy(), vec4(2_f32, 2_f32, 1_f32, 2_f32));
605     assert_eq!(v.yyyx(), vec4(2_f32, 2_f32, 2_f32, 1_f32));
606     assert_eq!(v.yyyy(), vec4(2_f32, 2_f32, 2_f32, 2_f32));
607     assert_eq!(v.xxx(), vec3(1_f32, 1_f32, 1_f32));
608     assert_eq!(v.xxy(), vec3(1_f32, 1_f32, 2_f32));
609     assert_eq!(v.xyx(), vec3(1_f32, 2_f32, 1_f32));
610     assert_eq!(v.xyy(), vec3(1_f32, 2_f32, 2_f32));
611     assert_eq!(v.yxx(), vec3(2_f32, 1_f32, 1_f32));
612     assert_eq!(v.yxy(), vec3(2_f32, 1_f32, 2_f32));
613     assert_eq!(v.yyx(), vec3(2_f32, 2_f32, 1_f32));
614     assert_eq!(v.yyy(), vec3(2_f32, 2_f32, 2_f32));
615     assert_eq!(v.xx(), vec2(1_f32, 1_f32));
616     assert_eq!(v.yx(), vec2(2_f32, 1_f32));
617     assert_eq!(v.yy(), vec2(2_f32, 2_f32));
618 });
619