Lines Matching full:new
7 ($t:ident, $new:ident, $vec2:ident, $vec3:ident, $mask:ident) => {
10 const V1: $vec2 = $vec2::new(1 as $t, 2 as $t);
18 assert_eq!($vec2::ZERO, $new(0 as $t, 0 as $t));
19 assert_eq!($vec2::ONE, $new(1 as $t, 1 as $t));
20 assert_eq!($vec2::X, $new(1 as $t, 0 as $t));
21 assert_eq!($vec2::Y, $new(0 as $t, 1 as $t));
22 assert_eq!($vec2::MIN, $new($t::MIN, $t::MIN));
23 assert_eq!($vec2::MAX, $new($t::MAX, $t::MAX));
27 let v = $new(1 as $t, 2 as $t);
48 let v = $vec2::new(t.0, t.1);
51 assert_eq!($vec2::new(1 as $t, 0 as $t), $vec2::X);
52 assert_eq!($vec2::new(0 as $t, 1 as $t), $vec2::Y);
56 let a = $vec2::new(1 as $t, 2 as $t);
75 assert_eq!($new(0 as $t, 0 as $t), v);
90 assert_eq!($vec2::new(1 as $t, 2 as $t), a);
97 assert_eq!($vec2::new(1 as $t, 2 as $t), a);
101 let x = $new(1 as $t, 0 as $t);
102 let y = $new(0 as $t, 1 as $t);
107 $new(8 as $t, 8 as $t),
108 $new(1 as $t, 2 as $t).dot_into_vec($new(4 as $t, 2 as $t))
113 let x = $new(1 as $t, 0 as $t);
117 $new(2 as $t, 3 as $t).length_squared()
122 let a = $new(2 as $t, 4 as $t);
123 assert_eq!($new(4 as $t, 8 as $t), (a + a));
124 assert_eq!($new(2 as $t, 4 as $t), 0 as $t + a);
125 assert_eq!($new(0 as $t, 0 as $t), (a - a));
126 assert_eq!($new(14 as $t, 12 as $t), 16 as $t - a);
127 assert_eq!($new(4 as $t, 16 as $t), (a * a));
128 assert_eq!($new(4 as $t, 8 as $t), (a * 2 as $t));
129 assert_eq!($new(4 as $t, 8 as $t), (2 as $t * a));
130 assert_eq!($new(1 as $t, 1 as $t), (a / a));
131 assert_eq!($new(1 as $t, 2 as $t), (a / 2 as $t));
132 assert_eq!($new(2 as $t, 1 as $t), (4 as $t / a));
133 assert_eq!($new(0 as $t, 0 as $t), a % a);
134 assert_eq!($new(0 as $t, 1 as $t), a % (a - 1 as $t));
135 assert_eq!($new(0 as $t, 0 as $t), a % 1 as $t);
136 assert_eq!($new(2 as $t, 1 as $t), a % 3 as $t);
137 assert_eq!($new(1 as $t, 1 as $t), 17 as $t % a);
138 assert_eq!($new(2 as $t, 4 as $t), a % 8 as $t);
142 let a = $new(1 as $t, 2 as $t);
146 assert_eq!($new(3 as $t, 4 as $t), b);
148 assert_eq!($new(1 as $t, 2 as $t), b);
150 assert_eq!($new(2 as $t, 4 as $t), b);
152 assert_eq!($new(1 as $t, 2 as $t), b);
154 assert_eq!($new(1 as $t, 0 as $t), b);
158 assert_eq!($new(2 as $t, 4 as $t), b);
160 assert_eq!($new(1 as $t, 2 as $t), b);
162 assert_eq!($new(1 as $t, 4 as $t), b);
164 assert_eq!($new(1 as $t, 2 as $t), b);
166 assert_eq!($new(2 as $t, 4 as $t), b);
168 assert_eq!($new(1 as $t, 2 as $t), b);
170 assert_eq!($new(1 as $t, 2 as $t), b);
172 assert_eq!($new(0 as $t, 0 as $t), b);
176 let a = $new(0 as $t, 2 as $t);
177 let b = $new(1 as $t, 1 as $t);
178 assert_eq!($new(0 as $t, 1 as $t), a.min(b));
179 assert_eq!($new(0 as $t, 1 as $t), b.min(a));
180 assert_eq!($new(1 as $t, 2 as $t), a.max(b));
181 assert_eq!($new(1 as $t, 2 as $t), b.max(a));
186 $vec2::new(x as $t, y as $t)
201 assert_eq!(1 as $t, $new(1 as $t, 2 as $t).min_element());
202 assert_eq!(1 as $t, $new(2 as $t, 1 as $t).min_element());
203 assert_eq!(2 as $t, $new(1 as $t, 2 as $t).max_element());
204 assert_eq!(2 as $t, $new(2 as $t, 1 as $t).max_element());
208 let a = $new(1 as $t, 1 as $t);
209 let b = $new(1 as $t, 2 as $t);
221 let a = $new(1 as $t, 1 as $t);
222 let b = $new(2 as $t, 2 as $t);
223 let c = $new(1 as $t, 1 as $t);
224 let d = $new(2 as $t, 1 as $t);
243 let a = $new(1 as $t, 2 as $t);
245 assert_eq!($vec3::new(1 as $t, 2 as $t, 3 as $t), b);
259 assert_eq!(Into::<[u32; 2]>::into($mask::new(false, false)), [0, 0]);
260 assert_eq!(Into::<[u32; 2]>::into($mask::new(true, false)), [!0, 0]);
261 assert_eq!(Into::<[u32; 2]>::into($mask::new(false, true)), [0, !0]);
262 assert_eq!(Into::<[u32; 2]>::into($mask::new(true, true)), [!0, !0]);
267 Into::<[bool; 2]>::into($mask::new(false, false)),
271 Into::<[bool; 2]>::into($mask::new(true, false)),
275 Into::<[bool; 2]>::into($mask::new(false, true)),
279 Into::<[bool; 2]>::into($mask::new(true, true)),
285 assert_eq!($mask::splat(false), $mask::new(false, false));
286 assert_eq!($mask::splat(true), $mask::new(true, true));
290 assert_eq!($mask::new(false, false).bitmask(), 0b00);
291 assert_eq!($mask::new(true, false).bitmask(), 0b01);
292 assert_eq!($mask::new(false, true).bitmask(), 0b10);
293 assert_eq!($mask::new(true, true).bitmask(), 0b11);
297 assert_eq!($mask::new(false, false).any(), false);
298 assert_eq!($mask::new(true, false).any(), true);
299 assert_eq!($mask::new(false, true).any(), true);
300 assert_eq!($mask::new(true, true).any(), true);
304 assert_eq!($mask::new(false, false).all(), false);
305 assert_eq!($mask::new(true, false).all(), false);
306 assert_eq!($mask::new(false, true).all(), false);
307 assert_eq!($mask::new(true, true).all(), true);
311 let a = $vec2::new(1 as $t, 2 as $t);
312 let b = $vec2::new(3 as $t, 4 as $t);
314 $vec2::select($mask::new(true, true), a, b),
315 $vec2::new(1 as $t, 2 as $t),
318 $vec2::select($mask::new(true, false), a, b),
319 $vec2::new(1 as $t, 4 as $t),
322 $vec2::select($mask::new(false, true), a, b),
323 $vec2::new(3 as $t, 2 as $t),
326 $vec2::select($mask::new(false, false), a, b),
327 $vec2::new(3 as $t, 4 as $t),
333 ($mask::new(false, false) & $mask::new(false, false)).bitmask(),
337 ($mask::new(true, true) & $mask::new(true, false)).bitmask(),
341 ($mask::new(true, false) & $mask::new(false, true)).bitmask(),
345 ($mask::new(true, true) & $mask::new(true, true)).bitmask(),
349 let mut mask = $mask::new(true, true);
350 mask &= $mask::new(true, false);
356 ($mask::new(false, false) | $mask::new(false, false)).bitmask(),
360 ($mask::new(false, false) | $mask::new(false, true)).bitmask(),
364 ($mask::new(true, false) | $mask::new(false, true)).bitmask(),
368 ($mask::new(true, true) | $mask::new(true, true)).bitmask(),
372 let mut mask = $mask::new(true, true);
373 mask |= $mask::new(true, false);
379 ($mask::new(false, false) ^ $mask::new(false, false)).bitmask(),
383 ($mask::new(false, false) ^ $mask::new(false, true)).bitmask(),
387 ($mask::new(true, false) ^ $mask::new(false, true)).bitmask(),
391 ($mask::new(true, true) ^ $mask::new(true, true)).bitmask(),
395 let mut mask = $mask::new(false, true);
396 mask ^= $mask::new(true, false);
401 assert_eq!((!$mask::new(false, false)).bitmask(), 0b11);
402 assert_eq!((!$mask::new(true, false)).bitmask(), 0b10);
403 assert_eq!((!$mask::new(false, true)).bitmask(), 0b01);
404 assert_eq!((!$mask::new(true, true)).bitmask(), 0b00);
408 let a = $mask::new(true, false);
418 let a = $mask::new(true, false);
419 let b = $mask::new(true, false);
420 let c = $mask::new(false, true);
429 let a = $mask::new(true, false);
433 let b = $mask::new(false, true);
439 let mut a = $mask::new(false, true);
445 let mut b = $mask::new(true, false);
457 let a = $mask::new(true, false);
458 let b = $mask::new(true, false);
459 let c = $mask::new(false, true);
461 let mut hasher = DefaultHasher::new();
465 let mut hasher = DefaultHasher::new();
469 let mut hasher = DefaultHasher::new();
480 let v = $vec2::new(1 as $t, 2 as $t);
496 let two = $vec2::new(2 as $t, 2 as $t);
504 ($t:ident, $new:ident, $vec2:ident, $vec3:ident, $mask:ident) => {
505 impl_vec2_tests!($t, $new, $vec2, $vec3, $mask);
511 assert_eq!($vec2::new(-1 as $t, 2 as $t).is_negative_bitmask(), 0b01);
512 assert_eq!($vec2::new(8 as $t, 3 as $t).is_negative_bitmask(), 0b00);
513 assert_eq!($vec2::new(3 as $t, -4 as $t).is_negative_bitmask(), 0b10);
514 assert_eq!($vec2::new(-2 as $t, -6 as $t).is_negative_bitmask(), 0b11);
524 let x = $new(1 as $t, 0 as $t);
525 let y = $new(0 as $t, 1 as $t);
532 let x = $new(1 as $t, 0 as $t);
533 let y = $new(0 as $t, 1 as $t);
540 let a = $new(1 as $t, 2 as $t);
541 assert_eq!($new(-1 as $t, -2 as $t), (-a));
542 assert_eq!($new(-0.0 as $t, -0.0 as $t), -$new(0.0 as $t, 0.0 as $t));
543 assert_eq!($new(0.0 as $t, -0.0 as $t), -$new(-0.0 as $t, 0.0 as $t));
547 let v1 = $vec2::new(1 as $t, 2 as $t);
548 let v2 = $vec2::new(1 as $t, 1 as $t);
549 let v1_perp = $vec2::new(-2 as $t, 1 as $t);
559 $vec2::new(0 as $t, 1 as $t).rotate($vec2::new(1 as $t, 1 as $t)),
560 $vec2::new(-1 as $t, 1 as $t)
588 ($t:ident, $new:ident, $vec2:ident, $vec3:ident, $mask:ident) => {
589 impl_vec2_signed_tests!($t, $new, $vec2, $vec3, $mask);
600 ($t:ident, $new:ident) => {
606 let a = $new(1 as $t, 2 as $t);
607 let b = $new(1 as $t, 2 as $t);
608 let c = $new(3 as $t, 2 as $t);
610 let mut hasher = DefaultHasher::new();
614 let mut hasher = DefaultHasher::new();
618 let mut hasher = DefaultHasher::new();
631 ($t:ident, $new:ident, $vec2:ident, $vec3:ident, $mask:ident) => {
632 impl_vec2_signed_tests!($t, $new, $vec2, $vec3, $mask);
645 let x = $new(1.0, 0.0);
646 let y = $new(0.0, 1.0);
653 assert_eq!(1.0 * 3.0 + 2.0 * 4.0, $new(1.0, 2.0).dot($new(3.0, 4.0)));
656 $new(2.0, 3.0).length()
660 $new(2.0, 3.0).length_recip()
662 assert!($new(2.0, 3.0).normalize().is_normalized());
664 $new(2.0, 3.0) / (2.0 as $t * 2.0 + 3.0 * 3.0).sqrt(),
665 $new(2.0, 3.0).normalize()
667 assert_eq!($new(0.5, 0.25), $new(2.0, 4.0).recip());
671 assert_eq!($new(0.0, 1.0), $new(1.0, 1.0).project_onto($new(0.0, 2.0)));
672 assert_eq!($new(1.0, 0.0), $new(1.0, 1.0).reject_from($new(0.0, 2.0)));
674 $new(0.0, 1.0),
675 $new(1.0, 1.0).project_onto_normalized($new(0.0, 1.0))
678 $new(1.0, 0.0),
679 $new(1.0, 1.0).reject_from_normalized($new(0.0, 1.0))
730 assert_eq!($vec2::new(-1.0, 2.0).is_negative_bitmask(), 0b01);
731 assert_eq!($vec2::new(8.0, 3.0).is_negative_bitmask(), 0b00);
732 assert_eq!($vec2::new(3.0, -4.0).is_negative_bitmask(), 0b10);
733 assert_eq!($vec2::new(-2.0, -6.0).is_negative_bitmask(), 0b11);
737 assert_eq!($vec2::new(1.35, 0.0).round().x, 1.0);
738 assert_eq!($vec2::new(0.0, 1.5).round().y, 2.0);
739 assert_eq!($vec2::new(0.0, -15.5).round().y, -16.0);
740 assert_eq!($vec2::new(0.0, 0.0).round().y, 0.0);
741 assert_eq!($vec2::new(0.0, 21.1).round().y, 21.0);
742 assert_eq!($vec2::new(0.0, 11.123).round().y, 11.0);
743 assert_eq!($vec2::new(0.0, 11.499).round().y, 11.0);
745 $vec2::new(NEG_INFINITY, INFINITY).round(),
746 $vec2::new(NEG_INFINITY, INFINITY)
748 assert!($vec2::new(NAN, 0.0).round().x.is_nan());
752 assert_eq!($vec2::new(1.35, -1.5).floor(), $vec2::new(1.0, -2.0));
754 $vec2::new(INFINITY, NEG_INFINITY).floor(),
755 $vec2::new(INFINITY, NEG_INFINITY)
757 assert!($vec2::new(NAN, 0.0).floor().x.is_nan());
759 $vec2::new(-2000000.123, 10000000.123).floor(),
760 $vec2::new(-2000001.0, 10000000.0)
765 assert_approx_eq!($vec2::new(1.35, -1.5).fract(), $vec2::new(0.35, 0.5));
767 $vec2::new(-2000000.123, 1000000.123).fract(),
768 $vec2::new(0.877, 0.123),
774 assert_eq!($vec2::new(1.35, -1.5).ceil(), $vec2::new(2.0, -1.0));
776 $vec2::new(INFINITY, NEG_INFINITY).ceil(),
777 $vec2::new(INFINITY, NEG_INFINITY)
779 assert!($vec2::new(NAN, 0.0).ceil().x.is_nan());
781 $vec2::new(-2000000.123, 1000000.123).ceil(),
782 $vec2::new(-2000000.0, 1000001.0)
787 assert_eq!($vec2::new(1.35, -1.5).trunc(), $vec2::new(1.0, -1.0));
789 $vec2::new(INFINITY, NEG_INFINITY).trunc(),
790 $vec2::new(INFINITY, NEG_INFINITY)
792 assert!($vec2::new(0.0, NAN).trunc().y.is_nan());
794 $vec2::new(-0.0, -2000000.123).trunc(),
795 $vec2::new(-0.0, -2000000.0)
800 let v0 = $vec2::new(-1.0, -1.0);
801 let v1 = $vec2::new(1.0, 1.0);
808 assert!($vec2::new(0.0, 0.0).is_finite());
809 assert!($vec2::new(-1e-10, 1e10).is_finite());
810 assert!(!$vec2::new(INFINITY, 0.0).is_finite());
811 assert!(!$vec2::new(0.0, NAN).is_finite());
812 assert!(!$vec2::new(0.0, NEG_INFINITY).is_finite());
813 assert!(!$vec2::new(INFINITY, NEG_INFINITY).is_finite());
819 assert_eq!($vec2::new(2.0, 4.0).powf(2.0), $vec2::new(4.0, 16.0));
824 $vec2::new(1.0, 2.0).exp(),
825 $vec2::new((1.0 as $t).exp(), (2.0 as $t).exp())
830 let angle = $vec2::new(1.0, 0.0).angle_between($vec2::new(0.0, 1.0));
833 let angle = $vec2::new(10.0, 0.0).angle_between($vec2::new(0.0, 5.0));
836 let angle = $vec2::new(-1.0, 0.0).angle_between($vec2::new(0.0, 1.0));
843 $vec2::new(12.0, 16.0).clamp_length(7.0, 10.0),
844 $vec2::new(6.0, 8.0) // shortened to length 10.0
848 $vec2::new(2.0, 1.0).clamp_length(0.5, 5.0),
849 $vec2::new(2.0, 1.0) // unchanged
853 $vec2::new(0.6, 0.8).clamp_length(10.0, 20.0),
854 $vec2::new(6.0, 8.0) // lengthened to length 10.0
862 $vec2::new(12.0, 16.0).clamp_length_max(10.0),
863 $vec2::new(6.0, 8.0) // shortened to length 10.0
867 $vec2::new(2.0, 1.0).clamp_length_max(5.0),
868 $vec2::new(2.0, 1.0) // unchanged
875 $vec2::new(2.0, 1.0).clamp_length_min(0.5),
876 $vec2::new(2.0, 1.0) // unchanged
880 $vec2::new(0.6, 0.8).clamp_length_min(10.0),
881 $vec2::new(6.0, 8.0) // lengthened to length 10.0
894 $vec2::new(1.0, 1.0).mul_add($vec2::new(0.5, 2.0), $vec2::new(-1.0, -1.0)),
895 $vec2::new(-0.5, 1.0)
902 assert_approx_eq!(vec, $vec2::new(1.0, 0.0));
907 assert_approx_eq!(vec, $vec2::new(0.0, 1.0));
912 assert_approx_eq!(vec, $vec2::new(-1.0, 0.0));
918 assert_approx_eq!(vec, $vec2::new(0.0, -1.0));
930 assert_eq!($vec2::new(x, y) << rhs, $vec2::new(x << rhs, y << rhs));
931 assert_eq!($vec2::new(x, y) >> rhs, $vec2::new(x >> rhs, y >> rhs));
984 $vec2::new(x1, y1) << $rhs::new(x2, y2),
985 $vec2::new(x1 << x2, y1 << y2)
988 $vec2::new(x1, y1) >> $rhs::new(x2, y2),
989 $vec2::new(x1 >> x2, y1 >> y2)
1018 assert_eq!($vec2::new(x, y) & rhs, $vec2::new(x & rhs, y & rhs));
1019 assert_eq!($vec2::new(x, y) | rhs, $vec2::new(x | rhs, y | rhs));
1020 assert_eq!($vec2::new(x, y) ^ rhs, $vec2::new(x ^ rhs, y ^ rhs));
1033 assert_eq!(!$vec2::new(x1, y1), $vec2::new(!x1, !y1));
1038 $vec2::new(x1, y1) & $vec2::new(x2, y2),
1039 $vec2::new(x1 & x2, y1 & y2)
1042 $vec2::new(x1, y1) | $vec2::new(x2, y2),
1043 $vec2::new(x1 | x2, y1 | y2)
1046 $vec2::new(x1, y1) ^ $vec2::new(x2, y2),
1047 $vec2::new(x1 ^ x2, y1 ^ y2)
1073 assert_eq!(DVec2::new(-1.0, -2.0), Vec2::new(-1.0, -2.0).as_dvec2());
1074 assert_eq!(I16Vec2::new(-1, -2), Vec2::new(-1.0, -2.0).as_i16vec2());
1075 assert_eq!(U16Vec2::new(1, 2), Vec2::new(1.0, 2.0).as_u16vec2());
1076 assert_eq!(IVec2::new(-1, -2), Vec2::new(-1.0, -2.0).as_ivec2());
1077 assert_eq!(UVec2::new(1, 2), Vec2::new(1.0, 2.0).as_uvec2());
1078 assert_eq!(I64Vec2::new(-1, -2), Vec2::new(-1.0, -2.0).as_i64vec2());
1079 assert_eq!(U64Vec2::new(1, 2), Vec2::new(1.0, 2.0).as_u64vec2());
1081 assert_eq!(Vec2::new(-1.0, -2.0), DVec2::new(-1.0, -2.0).as_vec2());
1082 assert_eq!(I16Vec2::new(-1, -2), DVec2::new(-1.0, -2.0).as_i16vec2());
1083 assert_eq!(U16Vec2::new(1, 2), DVec2::new(1.0, 2.0).as_u16vec2());
1084 assert_eq!(IVec2::new(-1, -2), DVec2::new(-1.0, -2.0).as_ivec2());
1085 assert_eq!(UVec2::new(1, 2), DVec2::new(1.0, 2.0).as_uvec2());
1086 assert_eq!(I64Vec2::new(-1, -2), DVec2::new(-1.0, -2.0).as_i64vec2());
1087 assert_eq!(U64Vec2::new(1, 2), DVec2::new(1.0, 2.0).as_u64vec2());
1089 assert_eq!(Vec2::new(-1.0, -2.0), I16Vec2::new(-1, -2).as_vec2());
1090 assert_eq!(DVec2::new(-1.0, -2.0), I16Vec2::new(-1, -2).as_dvec2());
1091 assert_eq!(U16Vec2::new(1, 2), I16Vec2::new(1, 2).as_u16vec2());
1092 assert_eq!(IVec2::new(-1, -2), I16Vec2::new(-1, -2).as_ivec2());
1093 assert_eq!(UVec2::new(1, 2), I16Vec2::new(1, 2).as_uvec2());
1094 assert_eq!(I64Vec2::new(-1, -2), I16Vec2::new(-1, -2).as_i64vec2());
1095 assert_eq!(U64Vec2::new(1, 2), I16Vec2::new(1, 2).as_u64vec2());
1097 assert_eq!(Vec2::new(1.0, 2.0), U16Vec2::new(1, 2).as_vec2());
1098 assert_eq!(DVec2::new(1.0, 2.0), U16Vec2::new(1, 2).as_dvec2());
1099 assert_eq!(I16Vec2::new(1, 2), U16Vec2::new(1, 2).as_i16vec2());
1100 assert_eq!(IVec2::new(1, 2), U16Vec2::new(1, 2).as_ivec2());
1101 assert_eq!(UVec2::new(1, 2), U16Vec2::new(1, 2).as_uvec2());
1102 assert_eq!(I64Vec2::new(1, 2), U16Vec2::new(1, 2).as_i64vec2());
1103 assert_eq!(U64Vec2::new(1, 2), U16Vec2::new(1, 2).as_u64vec2());
1105 assert_eq!(Vec2::new(-1.0, -2.0), IVec2::new(-1, -2).as_vec2());
1106 assert_eq!(DVec2::new(-1.0, -2.0), IVec2::new(-1, -2).as_dvec2());
1107 assert_eq!(UVec2::new(1, 2), IVec2::new(1, 2).as_uvec2());
1108 assert_eq!(I16Vec2::new(-1, -2), IVec2::new(-1, -2).as_i16vec2());
1109 assert_eq!(U16Vec2::new(1, 2), IVec2::new(1, 2).as_u16vec2());
1110 assert_eq!(I64Vec2::new(-1, -2), IVec2::new(-1, -2).as_i64vec2());
1111 assert_eq!(U64Vec2::new(1, 2), IVec2::new(1, 2).as_u64vec2());
1113 assert_eq!(Vec2::new(1.0, 2.0), UVec2::new(1, 2).as_vec2());
1114 assert_eq!(DVec2::new(1.0, 2.0), UVec2::new(1, 2).as_dvec2());
1115 assert_eq!(I16Vec2::new(1, 2), UVec2::new(1, 2).as_i16vec2());
1116 assert_eq!(U16Vec2::new(1, 2), UVec2::new(1, 2).as_u16vec2());
1117 assert_eq!(IVec2::new(1, 2), UVec2::new(1, 2).as_ivec2());
1118 assert_eq!(I64Vec2::new(1, 2), UVec2::new(1, 2).as_i64vec2());
1119 assert_eq!(U64Vec2::new(1, 2), UVec2::new(1, 2).as_u64vec2());
1121 assert_eq!(Vec2::new(-1.0, -2.0), I64Vec2::new(-1, -2).as_vec2());
1122 assert_eq!(DVec2::new(-1.0, -2.0), I64Vec2::new(-1, -2).as_dvec2());
1123 assert_eq!(U16Vec2::new(1, 2), I64Vec2::new(1, 2).as_u16vec2());
1124 assert_eq!(I16Vec2::new(-1, -2), I64Vec2::new(-1, -2).as_i16vec2());
1125 assert_eq!(UVec2::new(1, 2), I64Vec2::new(1, 2).as_uvec2());
1126 assert_eq!(IVec2::new(-1, -2), I64Vec2::new(-1, -2).as_ivec2());
1127 assert_eq!(U64Vec2::new(1, 2), I64Vec2::new(1, 2).as_u64vec2());
1129 assert_eq!(Vec2::new(1.0, 2.0), U64Vec2::new(1, 2).as_vec2());
1130 assert_eq!(DVec2::new(1.0, 2.0), U64Vec2::new(1, 2).as_dvec2());
1131 assert_eq!(I16Vec2::new(1, 2), U64Vec2::new(1, 2).as_i16vec2());
1132 assert_eq!(U16Vec2::new(1, 2), U64Vec2::new(1, 2).as_u16vec2());
1133 assert_eq!(IVec2::new(1, 2), U64Vec2::new(1, 2).as_ivec2());
1134 assert_eq!(UVec2::new(1, 2), U64Vec2::new(1, 2).as_uvec2());
1135 assert_eq!(I64Vec2::new(1, 2), U64Vec2::new(1, 2).as_i64vec2());
1156 assert_eq!(DVec2::new(1.0, 2.0), DVec2::from(Vec2::new(1.0, 2.0)));
1157 assert_eq!(DVec2::new(1.0, 2.0), DVec2::from(IVec2::new(1, 2)));
1158 assert_eq!(DVec2::new(1.0, 2.0), DVec2::from(UVec2::new(1, 2)));
1178 I16Vec2::new(1, 2),
1179 I16Vec2::try_from(U16Vec2::new(1, 2)).unwrap()
1181 assert!(I16Vec2::try_from(U16Vec2::new(u16::MAX, 2)).is_err());
1182 assert!(I16Vec2::try_from(U16Vec2::new(1, u16::MAX)).is_err());
1185 I16Vec2::new(1, 2),
1186 I16Vec2::try_from(IVec2::new(1, 2)).unwrap()
1188 assert!(I16Vec2::try_from(IVec2::new(i32::MAX, 2)).is_err());
1189 assert!(I16Vec2::try_from(IVec2::new(1, i32::MAX)).is_err());
1192 I16Vec2::new(1, 2),
1193 I16Vec2::try_from(UVec2::new(1, 2)).unwrap()
1195 assert!(I16Vec2::try_from(UVec2::new(u32::MAX, 2)).is_err());
1196 assert!(I16Vec2::try_from(UVec2::new(1, u32::MAX)).is_err());
1199 I16Vec2::new(1, 2),
1200 I16Vec2::try_from(I64Vec2::new(1, 2)).unwrap()
1202 assert!(I16Vec2::try_from(I64Vec2::new(i64::MAX, 2)).is_err());
1203 assert!(I16Vec2::try_from(I64Vec2::new(1, i64::MAX)).is_err());
1206 I16Vec2::new(1, 2),
1207 I16Vec2::try_from(U64Vec2::new(1, 2)).unwrap()
1209 assert!(I16Vec2::try_from(U64Vec2::new(u64::MAX, 2)).is_err());
1210 assert!(I16Vec2::try_from(U64Vec2::new(1, u64::MAX)).is_err());
1215 I16Vec2::new(i16::MAX, 5).wrapping_add(I16Vec2::new(1, 3)),
1216 I16Vec2::new(i16::MIN, 8),
1222 I16Vec2::new(i16::MAX, 5).wrapping_sub(I16Vec2::new(1, 3)),
1223 I16Vec2::new(32766, 2)
1229 I16Vec2::new(i16::MAX, 5).wrapping_mul(I16Vec2::new(3, 3)),
1230 I16Vec2::new(32765, 15)
1236 I16Vec2::new(i16::MAX, 5).wrapping_div(I16Vec2::new(3, 3)),
1237 I16Vec2::new(10922, 1)
1243 I16Vec2::new(i16::MAX, i16::MIN,).saturating_add(I16Vec2::new(1, -1)),
1244 I16Vec2::new(i16::MAX, i16::MIN)
1250 I16Vec2::new(i16::MIN, i16::MAX).saturating_sub(I16Vec2::new(1, -1)),
1251 I16Vec2::new(i16::MIN, i16::MAX)
1257 I16Vec2::new(i16::MAX, i16::MIN).saturating_mul(I16Vec2::new(2, 2)),
1258 I16Vec2::new(i16::MAX, i16::MIN)
1264 I16Vec2::new(i16::MAX, i16::MIN).saturating_div(I16Vec2::new(2, 2)),
1265 I16Vec2::new(16383, -16384)
1293 U16Vec2::new(1, 2),
1294 U16Vec2::try_from(I16Vec2::new(1, 2)).unwrap()
1296 assert!(U16Vec2::try_from(I16Vec2::new(-1, 2)).is_err());
1297 assert!(U16Vec2::try_from(I16Vec2::new(1, -2)).is_err());
1300 U16Vec2::new(1, 2),
1301 U16Vec2::try_from(IVec2::new(1, 2)).unwrap()
1303 assert!(U16Vec2::try_from(IVec2::new(-1, 2)).is_err());
1304 assert!(U16Vec2::try_from(IVec2::new(1, -2)).is_err());
1306 assert!(U16Vec2::try_from(IVec2::new(i32::MAX, 2)).is_err());
1307 assert!(U16Vec2::try_from(IVec2::new(1, i32::MAX)).is_err());
1310 U16Vec2::new(1, 2),
1311 U16Vec2::try_from(UVec2::new(1, 2)).unwrap()
1313 assert!(U16Vec2::try_from(UVec2::new(u32::MAX, 2)).is_err());
1314 assert!(U16Vec2::try_from(UVec2::new(1, u32::MAX)).is_err());
1317 U16Vec2::new(1, 2),
1318 U16Vec2::try_from(I64Vec2::new(1, 2)).unwrap()
1320 assert!(U16Vec2::try_from(I64Vec2::new(-1, 2)).is_err());
1321 assert!(U16Vec2::try_from(I64Vec2::new(1, -2)).is_err());
1323 assert!(U16Vec2::try_from(I64Vec2::new(i64::MAX, 2)).is_err());
1324 assert!(U16Vec2::try_from(I64Vec2::new(1, i64::MAX)).is_err());
1327 U16Vec2::new(1, 2),
1328 U16Vec2::try_from(U64Vec2::new(1, 2)).unwrap()
1330 assert!(U16Vec2::try_from(U64Vec2::new(u64::MAX, 2)).is_err());
1331 assert!(U16Vec2::try_from(U64Vec2::new(1, u64::MAX)).is_err());
1336 U16Vec2::new(u16::MAX, 5).wrapping_add(U16Vec2::new(1, 3)),
1337 U16Vec2::new(0, 8),
1343 U16Vec2::new(u16::MAX, 5).wrapping_sub(U16Vec2::new(1, 3)),
1344 U16Vec2::new(65534, 2)
1350 U16Vec2::new(u16::MAX, 5).wrapping_mul(U16Vec2::new(3, 3)),
1351 U16Vec2::new(65533, 15)
1357 U16Vec2::new(u16::MAX, 5).wrapping_div(U16Vec2::new(3, 3)),
1358 U16Vec2::new(21845, 1)
1364 U16Vec2::new(u16::MAX, u16::MAX).saturating_add(U16Vec2::new(1, u16::MAX)),
1365 U16Vec2::new(u16::MAX, u16::MAX)
1371 U16Vec2::new(0, u16::MAX).saturating_sub(U16Vec2::new(1, 1)),
1372 U16Vec2::new(0, 65534)
1378 U16Vec2::new(u16::MAX, u16::MAX).saturating_mul(U16Vec2::new(2, u16::MAX)),
1379 U16Vec2::new(u16::MAX, u16::MAX)
1385 U16Vec2::new(u16::MAX, u16::MAX).saturating_div(U16Vec2::new(2, u16::MAX)),
1386 U16Vec2::new(32767, 1)
1415 assert_eq!(IVec2::new(1, 2), IVec2::from(U16Vec2::new(1, 2)));
1416 assert_eq!(IVec2::new(1, 2), IVec2::from(I16Vec2::new(1, 2)));
1418 assert_eq!(IVec2::new(1, 2), IVec2::try_from(UVec2::new(1, 2)).unwrap());
1419 assert!(IVec2::try_from(UVec2::new(u32::MAX, 2)).is_err());
1420 assert!(IVec2::try_from(UVec2::new(1, u32::MAX)).is_err());
1423 IVec2::new(1, 2),
1424 IVec2::try_from(I64Vec2::new(1, 2)).unwrap()
1426 assert!(IVec2::try_from(I64Vec2::new(i64::MAX, 2)).is_err());
1427 assert!(IVec2::try_from(I64Vec2::new(1, i64::MAX)).is_err());
1430 IVec2::new(1, 2),
1431 IVec2::try_from(U64Vec2::new(1, 2)).unwrap()
1433 assert!(IVec2::try_from(U64Vec2::new(u64::MAX, 2)).is_err());
1434 assert!(IVec2::try_from(U64Vec2::new(1, u64::MAX)).is_err());
1439 IVec2::new(i32::MAX, 5).wrapping_add(IVec2::new(1, 3)),
1440 IVec2::new(i32::MIN, 8),
1446 IVec2::new(i32::MAX, 5).wrapping_sub(IVec2::new(1, 3)),
1447 IVec2::new(2147483646, 2)
1453 IVec2::new(i32::MAX, 5).wrapping_mul(IVec2::new(3, 3)),
1454 IVec2::new(2147483645, 15)
1460 IVec2::new(i32::MAX, 5).wrapping_div(IVec2::new(3, 3)),
1461 IVec2::new(715827882, 1)
1467 IVec2::new(i32::MAX, i32::MIN,).saturating_add(IVec2::new(1, -1)),
1468 IVec2::new(i32::MAX, i32::MIN)
1474 IVec2::new(i32::MIN, i32::MAX).saturating_sub(IVec2::new(1, -1)),
1475 IVec2::new(i32::MIN, i32::MAX)
1481 IVec2::new(i32::MAX, i32::MIN).saturating_mul(IVec2::new(2, 2)),
1482 IVec2::new(i32::MAX, i32::MIN)
1488 IVec2::new(i32::MAX, i32::MIN).saturating_div(IVec2::new(2, 2)),
1489 IVec2::new(1073741823, -1073741824)
1519 UVec2::new(1, 2),
1520 UVec2::try_from(I16Vec2::new(1, 2)).unwrap()
1522 assert!(UVec2::try_from(I16Vec2::new(-1, 2)).is_err());
1523 assert!(UVec2::try_from(I16Vec2::new(1, -2)).is_err());
1525 assert_eq!(UVec2::new(1, 2), UVec2::from(U16Vec2::new(1, 2)));
1527 assert_eq!(UVec2::new(1, 2), UVec2::try_from(IVec2::new(1, 2)).unwrap());
1528 assert!(UVec2::try_from(IVec2::new(-1, 2)).is_err());
1529 assert!(UVec2::try_from(IVec2::new(1, -2)).is_err());
1532 UVec2::new(1, 2),
1533 UVec2::try_from(I64Vec2::new(1, 2)).unwrap()
1535 assert!(UVec2::try_from(I64Vec2::new(-1, 2)).is_err());
1536 assert!(UVec2::try_from(I64Vec2::new(1, -2)).is_err());
1538 assert!(UVec2::try_from(I64Vec2::new(i64::MAX, 2)).is_err());
1539 assert!(UVec2::try_from(I64Vec2::new(1, i64::MAX)).is_err());
1542 UVec2::new(1, 2),
1543 UVec2::try_from(U64Vec2::new(1, 2)).unwrap()
1545 assert!(UVec2::try_from(U64Vec2::new(u64::MAX, 2)).is_err());
1546 assert!(UVec2::try_from(U64Vec2::new(1, u64::MAX)).is_err());
1551 UVec2::new(u32::MAX, 5).wrapping_add(UVec2::new(1, 3)),
1552 UVec2::new(0, 8),
1558 UVec2::new(u32::MAX, 5).wrapping_sub(UVec2::new(1, 3)),
1559 UVec2::new(4294967294, 2)
1565 UVec2::new(u32::MAX, 5).wrapping_mul(UVec2::new(3, 3)),
1566 UVec2::new(4294967293, 15)
1572 UVec2::new(u32::MAX, 5).wrapping_div(UVec2::new(3, 3)),
1573 UVec2::new(1431655765, 1)
1579 UVec2::new(u32::MAX, u32::MAX).saturating_add(UVec2::new(1, u32::MAX)),
1580 UVec2::new(u32::MAX, u32::MAX)
1586 UVec2::new(0, u32::MAX).saturating_sub(UVec2::new(1, 1)),
1587 UVec2::new(0, 4294967294)
1593 UVec2::new(u32::MAX, u32::MAX).saturating_mul(UVec2::new(2, u32::MAX)),
1594 UVec2::new(u32::MAX, u32::MAX)
1600 UVec2::new(u32::MAX, u32::MAX).saturating_div(UVec2::new(2, u32::MAX)),
1601 UVec2::new(2147483647, 1)
1630 assert_eq!(I64Vec2::new(1, 2), I64Vec2::from(I16Vec2::new(1, 2)));
1631 assert_eq!(I64Vec2::new(1, 2), I64Vec2::from(U16Vec2::new(1, 2)));
1632 assert_eq!(I64Vec2::new(1, 2), I64Vec2::from(IVec2::new(1, 2)));
1633 assert_eq!(I64Vec2::new(1, 2), I64Vec2::from(UVec2::new(1, 2)));
1636 I64Vec2::new(1, 2),
1637 I64Vec2::try_from(U64Vec2::new(1, 2)).unwrap()
1639 assert!(I64Vec2::try_from(U64Vec2::new(u64::MAX, 2)).is_err());
1640 assert!(I64Vec2::try_from(U64Vec2::new(1, u64::MAX)).is_err());
1669 U64Vec2::new(1, 2),
1670 U64Vec2::try_from(I16Vec2::new(1, 2)).unwrap()
1672 assert!(U64Vec2::try_from(I16Vec2::new(-1, 2)).is_err());
1673 assert!(U64Vec2::try_from(I16Vec2::new(1, -2)).is_err());
1675 assert_eq!(U64Vec2::new(1, 2), U64Vec2::from(U16Vec2::new(1, 2)));
1678 U64Vec2::new(1, 2),
1679 U64Vec2::try_from(IVec2::new(1, 2)).unwrap()
1681 assert!(U64Vec2::try_from(IVec2::new(-1, 2)).is_err());
1682 assert!(U64Vec2::try_from(IVec2::new(1, -2)).is_err());
1684 assert_eq!(U64Vec2::new(1, 2), U64Vec2::from(UVec2::new(1, 2)));
1687 U64Vec2::new(1, 2),
1688 U64Vec2::try_from(I64Vec2::new(1, 2)).unwrap()
1690 assert!(U64Vec2::try_from(I64Vec2::new(-1, 2)).is_err());
1691 assert!(U64Vec2::try_from(I64Vec2::new(1, -2)).is_err());