예제 #1
0
        public void ExecuteTests()
        {
            tester.TestAssertion("Default value array", intDefaultValueArr[0] == 1 && intDefaultValueArr[1] == 2 && intDefaultValueArr[2] == 3);
            tester.TestAssertion("Const initialized array", intDefaultReadonlyArray[0] == 4 && intDefaultReadonlyArray[1] == 2);

            Vector3[] vecArray = new Vector3[] { new Vector2(4, 5f) };
            vecArray[0].x += 4;
            tester.TestAssertion("Struct array increment assignment", vecArray[0].x == 8f);

            tester.TestAssertion("Struct array increment assignment in place", (vecArray[0].x += 1f) == 9f);
            tester.TestAssertion("Struct array increment assignment in place after assignment", vecArray[0].x == 9f);

            float result = vecArray[0].x += 3f;

            tester.TestAssertion("Struct array increment assignment in place result", result == 12f);

            int[] intArray = new int[2];

            intArray[1] += 4;
            tester.TestAssertion("Int array increment assignment", intArray[1] == 4);
            tester.TestAssertion("Int array increment assignment in place", (intArray[1] += 4) == 8);

            ArrayTest[] selfArrayTest = new[] { this };

            testVal = 0;
            selfArrayTest[0].testVal = 5;
            tester.TestAssertion("User Field array set", testVal == 5);

            testVal = 0;
            selfArrayTest[0].SetTestVal(4);
            tester.TestAssertion("User Method array call", testVal == 4);

            long typeID = GetUdonTypeID <ArrayTest>();

            tester.TestAssertion("Udon Type ID array access", typeID == selfArrayTest[0].GetUdonTypeID());

            float[][] floatJaggedArray = new float[][] { new[] { 1f, 2f }, new[] { 3f, 4, 5 } };

            tester.TestAssertion("Jagged array access", floatJaggedArray[0][0] == 1f && floatJaggedArray[0][1] == 2f && floatJaggedArray[1][0] == 3f && floatJaggedArray[1][1] == 4f && floatJaggedArray[1][2] == 5f);

            tester.TestAssertion("Jagged array in-place increment", (floatJaggedArray[0][1] += 2f) == 4f);
            tester.TestAssertion("Jagged array in-place increment after assignment", floatJaggedArray[0][1] == 4f);

            ArrayTest[][] userTypeJaggedArray = new ArrayTest[][] { new ArrayTest[] { this, this }, new [] { this } };
            userTypeJaggedArray[1][0] = null;

            tester.TestAssertion("User type jagged array", userTypeJaggedArray[0][0] == this && userTypeJaggedArray[0][1] == this && userTypeJaggedArray[1][0] == null);

            tester.TestAssertion("Base VRCStation array", stations[0] != null && stations[1] != null);
            tester.TestAssertion("VRCSDK3 VRCStation array", stationsSDK3[0] != null && stationsSDK3[1] != null && stationsSDK3[2] != null);

            tester.TestAssertion("Unity VideoPlayer array", unityVideoPlayerArray[0] != null && unityVideoPlayerArray[1] != null);
            tester.TestAssertion("Base VRCStation array", baseVideoPlayerArray[0] != null && baseVideoPlayerArray[1] != null);
        }
예제 #2
0
        public void ExecuteTests()
        {
            // tester.TestAssertion("Default value array", intDefaultValueArr[0] == 1 && intDefaultValueArr[1] == 2 && intDefaultValueArr[2] == 3);
            // tester.TestAssertion("Const initialized array", intDefaultReadonlyArray[0] == 4 && intDefaultReadonlyArray[1] == 2);

            Vector3[] vecArray = new Vector3[] { new Vector2(4, 5f) };
            vecArray[0].x += 4;
            tester.TestAssertion("Struct array increment assignment", vecArray[0].x == 8f);

            tester.TestAssertion("Struct array increment assignment in place", (vecArray[0].x += 1f) == 9f);
            tester.TestAssertion("Struct array increment assignment in place after assignment", vecArray[0].x == 9f);

            float result = vecArray[0].x += 3f;

            tester.TestAssertion("Struct array increment assignment in place result", result == 12f);

            int[] intArray = new int[2];

            intArray[1] += 4;
            tester.TestAssertion("Int array increment assignment", intArray[1] == 4);
            tester.TestAssertion("Int array increment assignment in place", (intArray[1] += 4) == 8);

            ArrayTest[] selfArrayTest = new[] { this };

            testVal = 0;
            selfArrayTest[0].testVal = 5;
            tester.TestAssertion("User Field array set", testVal == 5);

            testVal = 0;
            selfArrayTest[0].SetTestVal(4);
            tester.TestAssertion("User Method array call", testVal == 4);

            // long typeID = GetUdonTypeID<ArrayTest>();
            // tester.TestAssertion("Udon Type ID array access", typeID == selfArrayTest[0].GetUdonTypeID());

            float[][] floatJaggedArray = new float[][] { new[] { 1f, 2f }, new[] { 3f, 4, 5 } };

            tester.TestAssertion("Jagged array access", floatJaggedArray[0][0] == 1f && floatJaggedArray[0][1] == 2f && floatJaggedArray[1][0] == 3f && floatJaggedArray[1][1] == 4f && floatJaggedArray[1][2] == 5f);

            tester.TestAssertion("Jagged array in-place increment", (floatJaggedArray[0][1] += 2f) == 4f);
            tester.TestAssertion("Jagged array in-place increment after assignment", floatJaggedArray[0][1] == 4f);

            ArrayTest[][] userTypeJaggedArray = new ArrayTest[][] { new ArrayTest[] { this, this }, new [] { this } };
            userTypeJaggedArray[1][0] = null;

            tester.TestAssertion("User type jagged array", userTypeJaggedArray[0][0] == this && userTypeJaggedArray[0][1] == this && userTypeJaggedArray[1][0] == null);

            // tester.TestAssertion("Base VRCStation array", stations[0] != null && stations[1] != null);
            // tester.TestAssertion("VRCSDK3 VRCStation array", stationsSDK3[0] != null && stationsSDK3[1] != null && stationsSDK3[2] != null);
            //
            // tester.TestAssertion("Unity VideoPlayer array", unityVideoPlayerArray[0] != null && unityVideoPlayerArray[1] != null);
            // tester.TestAssertion("Base VRCStation array", baseVideoPlayerArray[0] != null && baseVideoPlayerArray[1] != null);

            // Test implicit array rank conversions
            float[] myFloatArr = new float[20U];
            tester.TestAssertion("Array size implicit conversion 1", myFloatArr.Length == 20);

            uint arrSize = 4;

            myFloatArr = new float[arrSize];
            tester.TestAssertion("Array size implicit conversion 2", myFloatArr.Length == 4);

            byte arrSize2 = 30;

            myFloatArr = new float[arrSize2];

            tester.TestAssertion("Array size implicit conversion 3", myFloatArr.Length == 30);

            ArrayTest self = this;

            structArray = new[] { new Vector3(1, 2, 3), new Vector3(4, 5, 6) };

            structArray[0].x = 4f;

            tester.TestAssertion("Struct array element assignment", structArray[0] == new Vector3(4, 2, 3));

            structArray[0].x += 4f;

            tester.TestAssertion("Struct array element assignment", structArray[0] == new Vector3(8, 2, 3));

            self.structArray[0].y = 10f;

            tester.TestAssertion("Struct array field element assignment", structArray[0] == new Vector3(8, 10, 3));

            self.structArray[0].z += 3;

            tester.TestAssertion("Struct array field element increment", structArray[0] == new Vector3(8, 10, 6));

            self.structArray[1].x += self.structArray[0].y;

            tester.TestAssertion("Struct array field element increment from array element", structArray[1] == new Vector3(14, 5, 6));

            CombineInstance[] instances = new CombineInstance[2];

            Mesh foundMesh = GetComponentInChildren <MeshFilter>(true).mesh;

            instances[0].mesh = foundMesh;

            tester.TestAssertion("Array struct property set", foundMesh != null && foundMesh == instances[0].mesh);
        }