public void InlineRGBA() { { var v0 = new cvec2(new Complex(3d, -9.5d), new Complex(-1d, 1.0)); var v1 = new Complex(9d, 6d); var v2 = v0.r; v0.r = v1; var v3 = v0.r; Assert.AreEqual(v1, v3); Assert.AreEqual(new Complex(9d, 6d), v0.x); Assert.AreEqual(new Complex(-1d, 1.0), v0.y); Assert.AreEqual(new Complex(3d, -9.5d), v2); } { var v0 = new cvec2(new Complex(-4.5d, -4d), new Complex(5.5d, -9d)); var v1 = new Complex(7d, 3.5d); var v2 = v0.g; v0.g = v1; var v3 = v0.g; Assert.AreEqual(v1, v3); Assert.AreEqual(new Complex(-4.5d, -4d), v0.x); Assert.AreEqual(new Complex(7d, 3.5d), v0.y); Assert.AreEqual(new Complex(5.5d, -9d), v2); } { var v0 = new cvec2(new Complex(0.5d, 9.5d), new Complex(-7d, -6.5d)); var v1 = new cvec2(new Complex(-6d, -4.5d), new Complex(-3d, 8.5d)); var v2 = v0.rg; v0.rg = v1; var v3 = v0.rg; Assert.AreEqual(v1, v3); Assert.AreEqual(new Complex(-6d, -4.5d), v0.x); Assert.AreEqual(new Complex(-3d, 8.5d), v0.y); Assert.AreEqual(new Complex(0.5d, 9.5d), v2.x); Assert.AreEqual(new Complex(-7d, -6.5d), v2.y); } }
public void InlineXYZW() { { var v0 = new cvec2(new Complex(7.5d, -7d), new Complex(-5d, -6.5d)); var v1 = new cvec2(new Complex(-7.5d, -1d), new Complex(3.5d, -5d)); var v2 = v0.xy; v0.xy = v1; var v3 = v0.xy; Assert.AreEqual(v1, v3); Assert.AreEqual(new Complex(-7.5d, -1d), v0.x); Assert.AreEqual(new Complex(3.5d, -5d), v0.y); Assert.AreEqual(new Complex(7.5d, -7d), v2.x); Assert.AreEqual(new Complex(-5d, -6.5d), v2.y); } }
public void RGBA() { { var ov = new cvec2(new Complex(-9.5d, -5.5d), new Complex(-4d, -2d)); var v = ov.swizzle.rr; Assert.AreEqual(new Complex(-9.5d, -5.5d), v.x); Assert.AreEqual(new Complex(-9.5d, -5.5d), v.y); } { var ov = new cvec2(new Complex(-9.5d, 4d), new Complex(9.5d, -3.5d)); var v = ov.swizzle.rrr; Assert.AreEqual(new Complex(-9.5d, 4d), v.x); Assert.AreEqual(new Complex(-9.5d, 4d), v.y); Assert.AreEqual(new Complex(-9.5d, 4d), v.z); } { var ov = new cvec2(new Complex(-5.5d, -0.5d), new Complex(9.5d, 8d)); var v = ov.swizzle.rrrr; Assert.AreEqual(new Complex(-5.5d, -0.5d), v.x); Assert.AreEqual(new Complex(-5.5d, -0.5d), v.y); Assert.AreEqual(new Complex(-5.5d, -0.5d), v.z); Assert.AreEqual(new Complex(-5.5d, -0.5d), v.w); } { var ov = new cvec2(new Complex(3.5d, 8d), new Complex(-5d, 7d)); var v = ov.swizzle.rrrg; Assert.AreEqual(new Complex(3.5d, 8d), v.x); Assert.AreEqual(new Complex(3.5d, 8d), v.y); Assert.AreEqual(new Complex(3.5d, 8d), v.z); Assert.AreEqual(new Complex(-5d, 7d), v.w); } { var ov = new cvec2(new Complex(5.5d, -4.5d), new Complex(5.5d, 1.5d)); var v = ov.swizzle.rrg; Assert.AreEqual(new Complex(5.5d, -4.5d), v.x); Assert.AreEqual(new Complex(5.5d, -4.5d), v.y); Assert.AreEqual(new Complex(5.5d, 1.5d), v.z); } { var ov = new cvec2(new Complex(-6d, 0.5d), new Complex(-9d, -6d)); var v = ov.swizzle.rrgr; Assert.AreEqual(new Complex(-6d, 0.5d), v.x); Assert.AreEqual(new Complex(-6d, 0.5d), v.y); Assert.AreEqual(new Complex(-9d, -6d), v.z); Assert.AreEqual(new Complex(-6d, 0.5d), v.w); } { var ov = new cvec2(new Complex(5.5d, -6d), new Complex(-2.5d, 0.5d)); var v = ov.swizzle.rrgg; Assert.AreEqual(new Complex(5.5d, -6d), v.x); Assert.AreEqual(new Complex(5.5d, -6d), v.y); Assert.AreEqual(new Complex(-2.5d, 0.5d), v.z); Assert.AreEqual(new Complex(-2.5d, 0.5d), v.w); } { var ov = new cvec2(new Complex(1.0, -5d), new Complex(-8d, -7.5d)); var v = ov.swizzle.rg; Assert.AreEqual(new Complex(1.0, -5d), v.x); Assert.AreEqual(new Complex(-8d, -7.5d), v.y); } { var ov = new cvec2(new Complex(8d, -0.5d), new Complex(-0.5d, 0.0)); var v = ov.swizzle.rgr; Assert.AreEqual(new Complex(8d, -0.5d), v.x); Assert.AreEqual(new Complex(-0.5d, 0.0), v.y); Assert.AreEqual(new Complex(8d, -0.5d), v.z); } { var ov = new cvec2(new Complex(-0.5d, 2.5d), new Complex(0.5d, 1.5d)); var v = ov.swizzle.rgrr; Assert.AreEqual(new Complex(-0.5d, 2.5d), v.x); Assert.AreEqual(new Complex(0.5d, 1.5d), v.y); Assert.AreEqual(new Complex(-0.5d, 2.5d), v.z); Assert.AreEqual(new Complex(-0.5d, 2.5d), v.w); } { var ov = new cvec2(new Complex(3d, 2d), new Complex(-1.5d, -6.5d)); var v = ov.swizzle.rgrg; Assert.AreEqual(new Complex(3d, 2d), v.x); Assert.AreEqual(new Complex(-1.5d, -6.5d), v.y); Assert.AreEqual(new Complex(3d, 2d), v.z); Assert.AreEqual(new Complex(-1.5d, -6.5d), v.w); } { var ov = new cvec2(new Complex(-2.5d, -7d), new Complex(-6d, -8.5d)); var v = ov.swizzle.rgg; Assert.AreEqual(new Complex(-2.5d, -7d), v.x); Assert.AreEqual(new Complex(-6d, -8.5d), v.y); Assert.AreEqual(new Complex(-6d, -8.5d), v.z); } { var ov = new cvec2(new Complex(-1d, 2.5d), new Complex(-1d, 0.5d)); var v = ov.swizzle.rggr; Assert.AreEqual(new Complex(-1d, 2.5d), v.x); Assert.AreEqual(new Complex(-1d, 0.5d), v.y); Assert.AreEqual(new Complex(-1d, 0.5d), v.z); Assert.AreEqual(new Complex(-1d, 2.5d), v.w); } { var ov = new cvec2(new Complex(-4d, 3d), new Complex(-0.5d, 7.5d)); var v = ov.swizzle.rggg; Assert.AreEqual(new Complex(-4d, 3d), v.x); Assert.AreEqual(new Complex(-0.5d, 7.5d), v.y); Assert.AreEqual(new Complex(-0.5d, 7.5d), v.z); Assert.AreEqual(new Complex(-0.5d, 7.5d), v.w); } { var ov = new cvec2(new Complex(-2.5d, 6d), new Complex(4d, 5d)); var v = ov.swizzle.gr; Assert.AreEqual(new Complex(4d, 5d), v.x); Assert.AreEqual(new Complex(-2.5d, 6d), v.y); } { var ov = new cvec2(new Complex(7d, -1.5d), new Complex(-8d, -3.5d)); var v = ov.swizzle.grr; Assert.AreEqual(new Complex(-8d, -3.5d), v.x); Assert.AreEqual(new Complex(7d, -1.5d), v.y); Assert.AreEqual(new Complex(7d, -1.5d), v.z); } { var ov = new cvec2(new Complex(5.5d, -4.5d), new Complex(7d, -2d)); var v = ov.swizzle.grrr; Assert.AreEqual(new Complex(7d, -2d), v.x); Assert.AreEqual(new Complex(5.5d, -4.5d), v.y); Assert.AreEqual(new Complex(5.5d, -4.5d), v.z); Assert.AreEqual(new Complex(5.5d, -4.5d), v.w); } { var ov = new cvec2(new Complex(5d, 0.5d), new Complex(7.5d, -2.5d)); var v = ov.swizzle.grrg; Assert.AreEqual(new Complex(7.5d, -2.5d), v.x); Assert.AreEqual(new Complex(5d, 0.5d), v.y); Assert.AreEqual(new Complex(5d, 0.5d), v.z); Assert.AreEqual(new Complex(7.5d, -2.5d), v.w); } { var ov = new cvec2(new Complex(-1.5d, -0.5d), new Complex(-3d, -4.5d)); var v = ov.swizzle.grg; Assert.AreEqual(new Complex(-3d, -4.5d), v.x); Assert.AreEqual(new Complex(-1.5d, -0.5d), v.y); Assert.AreEqual(new Complex(-3d, -4.5d), v.z); } { var ov = new cvec2(new Complex(-0.5d, -7.5d), new Complex(1.0, -7.5d)); var v = ov.swizzle.grgr; Assert.AreEqual(new Complex(1.0, -7.5d), v.x); Assert.AreEqual(new Complex(-0.5d, -7.5d), v.y); Assert.AreEqual(new Complex(1.0, -7.5d), v.z); Assert.AreEqual(new Complex(-0.5d, -7.5d), v.w); } { var ov = new cvec2(new Complex(3.5d, 6d), new Complex(-3.5d, 2d)); var v = ov.swizzle.grgg; Assert.AreEqual(new Complex(-3.5d, 2d), v.x); Assert.AreEqual(new Complex(3.5d, 6d), v.y); Assert.AreEqual(new Complex(-3.5d, 2d), v.z); Assert.AreEqual(new Complex(-3.5d, 2d), v.w); } { var ov = new cvec2(new Complex(-4d, 3d), new Complex(5.5d, 8d)); var v = ov.swizzle.gg; Assert.AreEqual(new Complex(5.5d, 8d), v.x); Assert.AreEqual(new Complex(5.5d, 8d), v.y); } { var ov = new cvec2(new Complex(-9.5d, -7d), new Complex(-5.5d, 8.5d)); var v = ov.swizzle.ggr; Assert.AreEqual(new Complex(-5.5d, 8.5d), v.x); Assert.AreEqual(new Complex(-5.5d, 8.5d), v.y); Assert.AreEqual(new Complex(-9.5d, -7d), v.z); } { var ov = new cvec2(new Complex(4d, 1.0), new Complex(4.5d, 0.5d)); var v = ov.swizzle.ggrr; Assert.AreEqual(new Complex(4.5d, 0.5d), v.x); Assert.AreEqual(new Complex(4.5d, 0.5d), v.y); Assert.AreEqual(new Complex(4d, 1.0), v.z); Assert.AreEqual(new Complex(4d, 1.0), v.w); } { var ov = new cvec2(new Complex(0.5d, -6d), new Complex(-5.5d, 3d)); var v = ov.swizzle.ggrg; Assert.AreEqual(new Complex(-5.5d, 3d), v.x); Assert.AreEqual(new Complex(-5.5d, 3d), v.y); Assert.AreEqual(new Complex(0.5d, -6d), v.z); Assert.AreEqual(new Complex(-5.5d, 3d), v.w); } { var ov = new cvec2(new Complex(1.0, 8.5d), new Complex(7.5d, 6d)); var v = ov.swizzle.ggg; Assert.AreEqual(new Complex(7.5d, 6d), v.x); Assert.AreEqual(new Complex(7.5d, 6d), v.y); Assert.AreEqual(new Complex(7.5d, 6d), v.z); } { var ov = new cvec2(new Complex(-6.5d, 7.5d), new Complex(-4.5d, 9d)); var v = ov.swizzle.gggr; Assert.AreEqual(new Complex(-4.5d, 9d), v.x); Assert.AreEqual(new Complex(-4.5d, 9d), v.y); Assert.AreEqual(new Complex(-4.5d, 9d), v.z); Assert.AreEqual(new Complex(-6.5d, 7.5d), v.w); } { var ov = new cvec2(new Complex(4d, 0.5d), new Complex(2.5d, 0.0)); var v = ov.swizzle.gggg; Assert.AreEqual(new Complex(2.5d, 0.0), v.x); Assert.AreEqual(new Complex(2.5d, 0.0), v.y); Assert.AreEqual(new Complex(2.5d, 0.0), v.z); Assert.AreEqual(new Complex(2.5d, 0.0), v.w); } }
public void XYZW() { { var ov = new cvec2(new Complex(5.5d, 6.5d), new Complex(-5.5d, -6.5d)); var v = ov.swizzle.xx; Assert.AreEqual(new Complex(5.5d, 6.5d), v.x); Assert.AreEqual(new Complex(5.5d, 6.5d), v.y); } { var ov = new cvec2(new Complex(1.5d, 6.5d), new Complex(-5d, 9d)); var v = ov.swizzle.xxx; Assert.AreEqual(new Complex(1.5d, 6.5d), v.x); Assert.AreEqual(new Complex(1.5d, 6.5d), v.y); Assert.AreEqual(new Complex(1.5d, 6.5d), v.z); } { var ov = new cvec2(new Complex(8.5d, 9.5d), new Complex(-3d, -9.5d)); var v = ov.swizzle.xxxx; Assert.AreEqual(new Complex(8.5d, 9.5d), v.x); Assert.AreEqual(new Complex(8.5d, 9.5d), v.y); Assert.AreEqual(new Complex(8.5d, 9.5d), v.z); Assert.AreEqual(new Complex(8.5d, 9.5d), v.w); } { var ov = new cvec2(new Complex(-1d, -6d), new Complex(-6.5d, 3.5d)); var v = ov.swizzle.xxxy; Assert.AreEqual(new Complex(-1d, -6d), v.x); Assert.AreEqual(new Complex(-1d, -6d), v.y); Assert.AreEqual(new Complex(-1d, -6d), v.z); Assert.AreEqual(new Complex(-6.5d, 3.5d), v.w); } { var ov = new cvec2(new Complex(5d, 6.5d), new Complex(-2d, -6d)); var v = ov.swizzle.xxy; Assert.AreEqual(new Complex(5d, 6.5d), v.x); Assert.AreEqual(new Complex(5d, 6.5d), v.y); Assert.AreEqual(new Complex(-2d, -6d), v.z); } { var ov = new cvec2(new Complex(2d, -3.5d), new Complex(-7.5d, 9.5d)); var v = ov.swizzle.xxyx; Assert.AreEqual(new Complex(2d, -3.5d), v.x); Assert.AreEqual(new Complex(2d, -3.5d), v.y); Assert.AreEqual(new Complex(-7.5d, 9.5d), v.z); Assert.AreEqual(new Complex(2d, -3.5d), v.w); } { var ov = new cvec2(new Complex(7.5d, -4.5d), new Complex(-4.5d, -2.5d)); var v = ov.swizzle.xxyy; Assert.AreEqual(new Complex(7.5d, -4.5d), v.x); Assert.AreEqual(new Complex(7.5d, -4.5d), v.y); Assert.AreEqual(new Complex(-4.5d, -2.5d), v.z); Assert.AreEqual(new Complex(-4.5d, -2.5d), v.w); } { var ov = new cvec2(new Complex(-1.5d, 1.0), new Complex(6d, -5.5d)); var v = ov.swizzle.xy; Assert.AreEqual(new Complex(-1.5d, 1.0), v.x); Assert.AreEqual(new Complex(6d, -5.5d), v.y); } { var ov = new cvec2(new Complex(1.5d, -6d), new Complex(-1.5d, -8.5d)); var v = ov.swizzle.xyx; Assert.AreEqual(new Complex(1.5d, -6d), v.x); Assert.AreEqual(new Complex(-1.5d, -8.5d), v.y); Assert.AreEqual(new Complex(1.5d, -6d), v.z); } { var ov = new cvec2(new Complex(6.5d, -4d), new Complex(-8.5d, 5.5d)); var v = ov.swizzle.xyxx; Assert.AreEqual(new Complex(6.5d, -4d), v.x); Assert.AreEqual(new Complex(-8.5d, 5.5d), v.y); Assert.AreEqual(new Complex(6.5d, -4d), v.z); Assert.AreEqual(new Complex(6.5d, -4d), v.w); } { var ov = new cvec2(new Complex(-3d, 2.5d), new Complex(-7.5d, 9.5d)); var v = ov.swizzle.xyxy; Assert.AreEqual(new Complex(-3d, 2.5d), v.x); Assert.AreEqual(new Complex(-7.5d, 9.5d), v.y); Assert.AreEqual(new Complex(-3d, 2.5d), v.z); Assert.AreEqual(new Complex(-7.5d, 9.5d), v.w); } { var ov = new cvec2(new Complex(7d, -0.5d), new Complex(0.0, -2d)); var v = ov.swizzle.xyy; Assert.AreEqual(new Complex(7d, -0.5d), v.x); Assert.AreEqual(new Complex(0.0, -2d), v.y); Assert.AreEqual(new Complex(0.0, -2d), v.z); } { var ov = new cvec2(new Complex(-2.5d, -5d), new Complex(-7d, 1.0)); var v = ov.swizzle.xyyx; Assert.AreEqual(new Complex(-2.5d, -5d), v.x); Assert.AreEqual(new Complex(-7d, 1.0), v.y); Assert.AreEqual(new Complex(-7d, 1.0), v.z); Assert.AreEqual(new Complex(-2.5d, -5d), v.w); } { var ov = new cvec2(new Complex(6.5d, -8d), new Complex(6.5d, -0.5d)); var v = ov.swizzle.xyyy; Assert.AreEqual(new Complex(6.5d, -8d), v.x); Assert.AreEqual(new Complex(6.5d, -0.5d), v.y); Assert.AreEqual(new Complex(6.5d, -0.5d), v.z); Assert.AreEqual(new Complex(6.5d, -0.5d), v.w); } { var ov = new cvec2(new Complex(-2.5d, -9d), new Complex(-6.5d, 6d)); var v = ov.swizzle.yx; Assert.AreEqual(new Complex(-6.5d, 6d), v.x); Assert.AreEqual(new Complex(-2.5d, -9d), v.y); } { var ov = new cvec2(new Complex(0.5d, 2.5d), new Complex(4d, -1d)); var v = ov.swizzle.yxx; Assert.AreEqual(new Complex(4d, -1d), v.x); Assert.AreEqual(new Complex(0.5d, 2.5d), v.y); Assert.AreEqual(new Complex(0.5d, 2.5d), v.z); } { var ov = new cvec2(new Complex(4.5d, 3d), new Complex(-9d, 6.5d)); var v = ov.swizzle.yxxx; Assert.AreEqual(new Complex(-9d, 6.5d), v.x); Assert.AreEqual(new Complex(4.5d, 3d), v.y); Assert.AreEqual(new Complex(4.5d, 3d), v.z); Assert.AreEqual(new Complex(4.5d, 3d), v.w); } { var ov = new cvec2(new Complex(-3d, 8d), new Complex(4d, 0.0)); var v = ov.swizzle.yxxy; Assert.AreEqual(new Complex(4d, 0.0), v.x); Assert.AreEqual(new Complex(-3d, 8d), v.y); Assert.AreEqual(new Complex(-3d, 8d), v.z); Assert.AreEqual(new Complex(4d, 0.0), v.w); } { var ov = new cvec2(new Complex(5d, -2d), new Complex(5d, 9d)); var v = ov.swizzle.yxy; Assert.AreEqual(new Complex(5d, 9d), v.x); Assert.AreEqual(new Complex(5d, -2d), v.y); Assert.AreEqual(new Complex(5d, 9d), v.z); } { var ov = new cvec2(new Complex(9.5d, -9d), new Complex(5d, -4.5d)); var v = ov.swizzle.yxyx; Assert.AreEqual(new Complex(5d, -4.5d), v.x); Assert.AreEqual(new Complex(9.5d, -9d), v.y); Assert.AreEqual(new Complex(5d, -4.5d), v.z); Assert.AreEqual(new Complex(9.5d, -9d), v.w); } { var ov = new cvec2(new Complex(2.5d, -1d), new Complex(-6.5d, -3.5d)); var v = ov.swizzle.yxyy; Assert.AreEqual(new Complex(-6.5d, -3.5d), v.x); Assert.AreEqual(new Complex(2.5d, -1d), v.y); Assert.AreEqual(new Complex(-6.5d, -3.5d), v.z); Assert.AreEqual(new Complex(-6.5d, -3.5d), v.w); } { var ov = new cvec2(new Complex(7d, -9d), new Complex(-3.5d, 7d)); var v = ov.swizzle.yy; Assert.AreEqual(new Complex(-3.5d, 7d), v.x); Assert.AreEqual(new Complex(-3.5d, 7d), v.y); } { var ov = new cvec2(new Complex(-2.5d, 3d), new Complex(-4.5d, 0.5d)); var v = ov.swizzle.yyx; Assert.AreEqual(new Complex(-4.5d, 0.5d), v.x); Assert.AreEqual(new Complex(-4.5d, 0.5d), v.y); Assert.AreEqual(new Complex(-2.5d, 3d), v.z); } { var ov = new cvec2(new Complex(2d, 2d), new Complex(-7d, 2d)); var v = ov.swizzle.yyxx; Assert.AreEqual(new Complex(-7d, 2d), v.x); Assert.AreEqual(new Complex(-7d, 2d), v.y); Assert.AreEqual(new Complex(2d, 2d), v.z); Assert.AreEqual(new Complex(2d, 2d), v.w); } { var ov = new cvec2(new Complex(0.0, -5d), new Complex(-7.5d, -9d)); var v = ov.swizzle.yyxy; Assert.AreEqual(new Complex(-7.5d, -9d), v.x); Assert.AreEqual(new Complex(-7.5d, -9d), v.y); Assert.AreEqual(new Complex(0.0, -5d), v.z); Assert.AreEqual(new Complex(-7.5d, -9d), v.w); } { var ov = new cvec2(new Complex(2.5d, 7d), new Complex(-1d, -1d)); var v = ov.swizzle.yyy; Assert.AreEqual(new Complex(-1d, -1d), v.x); Assert.AreEqual(new Complex(-1d, -1d), v.y); Assert.AreEqual(new Complex(-1d, -1d), v.z); } { var ov = new cvec2(new Complex(-7d, 2.5d), new Complex(-2.5d, -8.5d)); var v = ov.swizzle.yyyx; Assert.AreEqual(new Complex(-2.5d, -8.5d), v.x); Assert.AreEqual(new Complex(-2.5d, -8.5d), v.y); Assert.AreEqual(new Complex(-2.5d, -8.5d), v.z); Assert.AreEqual(new Complex(-7d, 2.5d), v.w); } { var ov = new cvec2(new Complex(8d, 1.5d), new Complex(-3d, 5.5d)); var v = ov.swizzle.yyyy; Assert.AreEqual(new Complex(-3d, 5.5d), v.x); Assert.AreEqual(new Complex(-3d, 5.5d), v.y); Assert.AreEqual(new Complex(-3d, 5.5d), v.z); Assert.AreEqual(new Complex(-3d, 5.5d), v.w); } }