docs/jscpd-report/html/jscpd-report.json
{
"statistics": {
"detectionDate": "2025-01-07T19:28:13.707Z",
"formats": {
"java": {
"sources": {
"app/src/test/java/puscas/mobilertapp/utils/UtilsTest.java": {
"lines": 162,
"tokens": 1239,
"sources": 1,
"clones": 12,
"duplicatedLines": 72,
"duplicatedTokens": 756,
"percentage": 44.44,
"percentageTokens": 61.02,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/utils/UtilsShaderTest.java": {
"lines": 117,
"tokens": 805,
"sources": 1,
"clones": 5,
"duplicatedLines": 40,
"duplicatedTokens": 395,
"percentage": 34.19,
"percentageTokens": 49.07,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/utils/UtilsLoggingTest.java": {
"lines": 41,
"tokens": 242,
"sources": 1,
"clones": 3,
"duplicatedLines": 28,
"duplicatedTokens": 197,
"percentage": 68.29,
"percentageTokens": 81.4,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/utils/UtilsGlMatricesTest.java": {
"lines": 184,
"tokens": 1815,
"sources": 1,
"clones": 10,
"duplicatedLines": 83,
"duplicatedTokens": 879,
"percentage": 45.11,
"percentageTokens": 48.43,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/utils/UtilsGLTest.java": {
"lines": 108,
"tokens": 841,
"sources": 1,
"clones": 2,
"duplicatedLines": 12,
"duplicatedTokens": 128,
"percentage": 11.11,
"percentageTokens": 15.22,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/utils/UtilsContextTest.java": {
"lines": 32,
"tokens": 197,
"sources": 1,
"clones": 2,
"duplicatedLines": 17,
"duplicatedTokens": 130,
"percentage": 53.13,
"percentageTokens": 65.99,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/utils/UtilsBufferTest.java": {
"lines": 32,
"tokens": 197,
"sources": 1,
"clones": 2,
"duplicatedLines": 17,
"duplicatedTokens": 130,
"percentage": 53.13,
"percentageTokens": 65.99,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/utils/StateTest.java": {
"lines": 34,
"tokens": 196,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/utils/ShaderTest.java": {
"lines": 26,
"tokens": 117,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/utils/SceneTest.java": {
"lines": 26,
"tokens": 117,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/utils/AcceleratorTest.java": {
"lines": 25,
"tokens": 113,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/system/package-info.java": {
"lines": 5,
"tokens": 9,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/system/JavaMemoryTest.java": {
"lines": 67,
"tokens": 501,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/exceptions/LowMemoryExceptionTest.java": {
"lines": 28,
"tokens": 153,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/exceptions/FailureExceptionTest.java": {
"lines": 28,
"tokens": 145,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/constants/ConstantsUITest.java": {
"lines": 32,
"tokens": 197,
"sources": 1,
"clones": 6,
"duplicatedLines": 61,
"duplicatedTokens": 398,
"percentage": 190.63,
"percentageTokens": 202.03,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/constants/ConstantsToastTest.java": {
"lines": 32,
"tokens": 197,
"sources": 1,
"clones": 2,
"duplicatedLines": 17,
"duplicatedTokens": 130,
"percentage": 53.13,
"percentageTokens": 65.99,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/constants/ConstantsTest.java": {
"lines": 32,
"tokens": 197,
"sources": 1,
"clones": 2,
"duplicatedLines": 17,
"duplicatedTokens": 130,
"percentage": 53.13,
"percentageTokens": 65.99,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/constants/ConstantsRendererTest.java": {
"lines": 32,
"tokens": 197,
"sources": 1,
"clones": 2,
"duplicatedLines": 17,
"duplicatedTokens": 130,
"percentage": 53.13,
"percentageTokens": 65.99,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/constants/ConstantsMethodsTest.java": {
"lines": 32,
"tokens": 197,
"sources": 1,
"clones": 2,
"duplicatedLines": 17,
"duplicatedTokens": 130,
"percentage": 53.13,
"percentageTokens": 65.99,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/constants/ConstantsErrorTest.java": {
"lines": 32,
"tokens": 197,
"sources": 1,
"clones": 2,
"duplicatedLines": 17,
"duplicatedTokens": 130,
"percentage": 53.13,
"percentageTokens": 65.99,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/constants/AcceleratorTest.java": {
"lines": 41,
"tokens": 251,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/configs/CustomNumberPickerTest.java": {
"lines": 73,
"tokens": 483,
"sources": 1,
"clones": 2,
"duplicatedLines": 16,
"duplicatedTokens": 132,
"percentage": 21.92,
"percentageTokens": 27.33,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/configs/ConfigTest.java": {
"lines": 210,
"tokens": 1604,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/configs/ConfigSamplesTest.java": {
"lines": 110,
"tokens": 775,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/configs/ConfigResolutionTest.java": {
"lines": 121,
"tokens": 868,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/configs/ConfigRenderTaskTest.java": {
"lines": 177,
"tokens": 1519,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/configs/ConfigGlAttributeTest.java": {
"lines": 140,
"tokens": 1035,
"sources": 1,
"clones": 2,
"duplicatedLines": 22,
"duplicatedTokens": 236,
"percentage": 15.71,
"percentageTokens": 22.8,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/utils/package-info.java": {
"lines": 3,
"tokens": 9,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/utils/UtilsShader.java": {
"lines": 190,
"tokens": 1558,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/utils/UtilsLogging.java": {
"lines": 50,
"tokens": 334,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/utils/UtilsGlMatrices.java": {
"lines": 166,
"tokens": 1085,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/utils/UtilsGL.java": {
"lines": 208,
"tokens": 1370,
"sources": 1,
"clones": 1,
"duplicatedLines": 9,
"duplicatedTokens": 74,
"percentage": 4.33,
"percentageTokens": 5.4,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/utils/UtilsContext.java": {
"lines": 357,
"tokens": 2630,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/utils/UtilsBuffer.java": {
"lines": 80,
"tokens": 450,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/utils/Utils.java": {
"lines": 178,
"tokens": 1257,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/utils/CustomFileProvider.java": {
"lines": 15,
"tokens": 71,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/exceptions/package-info.java": {
"lines": 3,
"tokens": 9,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/exceptions/LowMemoryException.java": {
"lines": 35,
"tokens": 132,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/exceptions/FailureException.java": {
"lines": 45,
"tokens": 174,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/constants/package-info.java": {
"lines": 3,
"tokens": 9,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/constants/State.java": {
"lines": 49,
"tokens": 131,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/constants/Shader.java": {
"lines": 77,
"tokens": 277,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/constants/Scene.java": {
"lines": 77,
"tokens": 277,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/constants/CustomNumberPicker.java": {
"lines": 58,
"tokens": 362,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/constants/ConstantsUI.java": {
"lines": 106,
"tokens": 429,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/constants/ConstantsToast.java": {
"lines": 37,
"tokens": 131,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/constants/ConstantsRenderer.java": {
"lines": 31,
"tokens": 136,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/constants/ConstantsMethods.java": {
"lines": 53,
"tokens": 209,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/constants/ConstantsError.java": {
"lines": 35,
"tokens": 159,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/constants/Constants.java": {
"lines": 123,
"tokens": 577,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/constants/Accelerator.java": {
"lines": 75,
"tokens": 288,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/configs/package-info.java": {
"lines": 3,
"tokens": 9,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/utils/UtilsT.java": {
"lines": 224,
"tokens": 1524,
"sources": 1,
"clones": 2,
"duplicatedLines": 18,
"duplicatedTokens": 228,
"percentage": 8.04,
"percentageTokens": 14.96,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/utils/UtilsPickerT.java": {
"lines": 59,
"tokens": 391,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/utils/UtilsContextT.java": {
"lines": 155,
"tokens": 1573,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/system/NativeMemoryTest.java": {
"lines": 124,
"tokens": 839,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/system/FileSystemTest.java": {
"lines": 150,
"tokens": 1123,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/engine/package-info.java": {
"lines": 18,
"tokens": 9,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/engine/ShaderTest.java": {
"lines": 98,
"tokens": 530,
"sources": 1,
"clones": 1,
"duplicatedLines": 15,
"duplicatedTokens": 93,
"percentage": 15.31,
"percentageTokens": 17.55,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/engine/CameraTest.java": {
"lines": 36,
"tokens": 204,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/engine/AcceleratorTest.java": {
"lines": 77,
"tokens": 418,
"sources": 1,
"clones": 1,
"duplicatedLines": 15,
"duplicatedTokens": 93,
"percentage": 19.48,
"percentageTokens": 22.25,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/package-info.java": {
"lines": 5,
"tokens": 7,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/RenderTaskTest.java": {
"lines": 35,
"tokens": 198,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java": {
"lines": 420,
"tokens": 3115,
"sources": 1,
"clones": 14,
"duplicatedLines": 168,
"duplicatedTokens": 1666,
"percentage": 40,
"percentageTokens": 53.48,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/MainRendererTest.java": {
"lines": 431,
"tokens": 3672,
"sources": 1,
"clones": 18,
"duplicatedLines": 189,
"duplicatedTokens": 1793,
"percentage": 43.85,
"percentageTokens": 48.83,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/MainActivityTest.java": {
"lines": 253,
"tokens": 2096,
"sources": 1,
"clones": 7,
"duplicatedLines": 74,
"duplicatedTokens": 721,
"percentage": 29.25,
"percentageTokens": 34.4,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/DrawViewTest.java": {
"lines": 297,
"tokens": 2486,
"sources": 1,
"clones": 7,
"duplicatedLines": 64,
"duplicatedTokens": 659,
"percentage": 21.55,
"percentageTokens": 26.51,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/test/java/puscas/mobilertapp/ConstantsTests.java": {
"lines": 19,
"tokens": 68,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/package-info.java": {
"lines": 3,
"tokens": 7,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/MyEglContextFactory.java": {
"lines": 103,
"tokens": 704,
"sources": 1,
"clones": 1,
"duplicatedLines": 9,
"duplicatedTokens": 74,
"percentage": 8.74,
"percentageTokens": 10.51,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/MainRenderer.java": {
"lines": 991,
"tokens": 6301,
"sources": 1,
"clones": 2,
"duplicatedLines": 28,
"duplicatedTokens": 316,
"percentage": 2.83,
"percentageTokens": 5.02,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/MainActivity.java": {
"lines": 998,
"tokens": 8344,
"sources": 1,
"clones": 1,
"duplicatedLines": 6,
"duplicatedTokens": 65,
"percentage": 0.6,
"percentageTokens": 0.78,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/DrawView.java": {
"lines": 449,
"tokens": 2769,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/package-info.java": {
"lines": 7,
"tokens": 7,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/ViewActionWait.java": {
"lines": 127,
"tokens": 839,
"sources": 1,
"clones": 2,
"duplicatedLines": 10,
"duplicatedTokens": 170,
"percentage": 7.87,
"percentageTokens": 20.26,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/ViewActionNumberPicker.java": {
"lines": 66,
"tokens": 408,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/ViewActionButton.java": {
"lines": 106,
"tokens": 801,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/UiTest.java": {
"lines": 271,
"tokens": 2186,
"sources": 1,
"clones": 1,
"duplicatedLines": 8,
"duplicatedTokens": 75,
"percentage": 2.95,
"percentageTokens": 3.43,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/RayTracingTest.java": {
"lines": 111,
"tokens": 672,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/PreviewTest.java": {
"lines": 129,
"tokens": 1118,
"sources": 1,
"clones": 4,
"duplicatedLines": 38,
"duplicatedTokens": 426,
"percentage": 29.46,
"percentageTokens": 38.1,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/OrderRunner.java": {
"lines": 142,
"tokens": 1019,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/Order.java": {
"lines": 12,
"tokens": 88,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/MainRendererTest.java": {
"lines": 162,
"tokens": 962,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/InvokeMethodIgnoringErrors.java": {
"lines": 59,
"tokens": 373,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/ConstantsAndroidTests.java": {
"lines": 47,
"tokens": 187,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/androidTest/java/puscas/mobilertapp/AbstractTest.java": {
"lines": 526,
"tokens": 4835,
"sources": 1,
"clones": 2,
"duplicatedLines": 14,
"duplicatedTokens": 140,
"percentage": 2.66,
"percentageTokens": 2.9,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"total": {
"lines": 10746,
"tokens": 76350,
"sources": 87,
"clones": 60,
"duplicatedLines": 559,
"duplicatedTokens": 5312,
"percentage": 5.2,
"percentageTokens": 6.96,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"kotlin": {
"sources": {
"app/src/main/java/puscas/mobilertapp/utils/AsyncTaskCoroutine.kt": {
"lines": 146,
"tokens": 557,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/configs/ConfigSamples.kt": {
"lines": 26,
"tokens": 162,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/configs/ConfigResolution.kt": {
"lines": 28,
"tokens": 175,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/configs/ConfigRenderTask.kt": {
"lines": 58,
"tokens": 437,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/configs/ConfigGlAttribute.kt": {
"lines": 41,
"tokens": 217,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/configs/Config.kt": {
"lines": 55,
"tokens": 380,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/src/main/java/puscas/mobilertapp/RenderTask.kt": {
"lines": 336,
"tokens": 2004,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"total": {
"lines": 690,
"tokens": 3932,
"sources": 7,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"cpp": {
"sources": {
"app/System_dependent/Native/Qt/MobileRT/mainwindow.cpp": {
"lines": 151,
"tokens": 1572,
"sources": 1,
"clones": 4,
"duplicatedLines": 38,
"duplicatedTokens": 442,
"percentage": 25.17,
"percentageTokens": 28.12,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/System_dependent/Native/Qt/MobileRT/main.cpp": {
"lines": 85,
"tokens": 979,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/System_dependent/Native/Qt/MobileRT/config.cpp": {
"lines": 168,
"tokens": 1283,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/System_dependent/Native/Qt/MobileRT/about.cpp": {
"lines": 13,
"tokens": 116,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Unit_Testing/engine/ShaderTestEngine.cpp": {
"lines": 117,
"tokens": 1613,
"sources": 1,
"clones": 13,
"duplicatedLines": 131,
"duplicatedTokens": 2650,
"percentage": 111.97,
"percentageTokens": 164.29,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Unit_Testing/engine/CameraTestEngine.cpp": {
"lines": 54,
"tokens": 699,
"sources": 1,
"clones": 5,
"duplicatedLines": 54,
"duplicatedTokens": 908,
"percentage": 100,
"percentageTokens": 129.9,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Unit_Testing/engine/AcceleratorTestEngine.cpp": {
"lines": 78,
"tokens": 1069,
"sources": 1,
"clones": 4,
"duplicatedLines": 55,
"duplicatedTokens": 884,
"percentage": 70.51,
"percentageTokens": 82.69,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/System_dependent/Native/Utils_dependent.cpp": {
"lines": 20,
"tokens": 185,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/System_dependent/Native/C_wrapper.cpp": {
"lines": 261,
"tokens": 2822,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Utils/Utils.cpp": {
"lines": 296,
"tokens": 2327,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Utils/ErrorCode.cpp": {
"lines": 93,
"tokens": 931,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Shapes/Triangle.cpp": {
"lines": 401,
"tokens": 3846,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Shapes/Sphere.cpp": {
"lines": 119,
"tokens": 1260,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Shapes/Plane.cpp": {
"lines": 179,
"tokens": 1463,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Accelerators/AABB.cpp": {
"lines": 116,
"tokens": 932,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Shaders/Whitted.cpp": {
"lines": 90,
"tokens": 1052,
"sources": 1,
"clones": 1,
"duplicatedLines": 7,
"duplicatedTokens": 88,
"percentage": 7.78,
"percentageTokens": 8.37,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Shaders/PathTracer.cpp": {
"lines": 143,
"tokens": 1413,
"sources": 1,
"clones": 2,
"duplicatedLines": 12,
"duplicatedTokens": 156,
"percentage": 8.39,
"percentageTokens": 11.04,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Shaders/NoShadows.cpp": {
"lines": 42,
"tokens": 501,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Shaders/DiffuseMaterial.cpp": {
"lines": 24,
"tokens": 296,
"sources": 1,
"clones": 1,
"duplicatedLines": 5,
"duplicatedTokens": 68,
"percentage": 20.83,
"percentageTokens": 22.97,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Shaders/DepthMap.cpp": {
"lines": 14,
"tokens": 202,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/Stratified.cpp": {
"lines": 16,
"tokens": 226,
"sources": 1,
"clones": 1,
"duplicatedLines": 7,
"duplicatedTokens": 135,
"percentage": 43.75,
"percentageTokens": 59.73,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/StaticPCG.cpp": {
"lines": 12,
"tokens": 89,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/StaticMersenneTwister.cpp": {
"lines": 12,
"tokens": 89,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/StaticHaltonSeq.cpp": {
"lines": 18,
"tokens": 155,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/PCG.cpp": {
"lines": 9,
"tokens": 108,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/MersenneTwister.cpp": {
"lines": 8,
"tokens": 106,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/HaltonSeq.cpp": {
"lines": 16,
"tokens": 221,
"sources": 1,
"clones": 1,
"duplicatedLines": 7,
"duplicatedTokens": 135,
"percentage": 43.75,
"percentageTokens": 61.09,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/Constant.cpp": {
"lines": 8,
"tokens": 61,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Loaders/PerspectiveLoader.cpp": {
"lines": 57,
"tokens": 437,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Loaders/OBJLoader.cpp": {
"lines": 513,
"tokens": 6481,
"sources": 1,
"clones": 10,
"duplicatedLines": 120,
"duplicatedTokens": 1444,
"percentage": 23.39,
"percentageTokens": 22.28,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Loaders/CameraFactory.cpp": {
"lines": 18,
"tokens": 202,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Lights/PointLight.cpp": {
"lines": 18,
"tokens": 134,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Lights/AreaLight.cpp": {
"lines": 38,
"tokens": 398,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Cameras/Perspective.cpp": {
"lines": 61,
"tokens": 562,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Cameras/Orthographic.cpp": {
"lines": 43,
"tokens": 597,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Unit_Testing/TestTriangle.cpp": {
"lines": 426,
"tokens": 4150,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Unit_Testing/TestTextureLoader.cpp": {
"lines": 15,
"tokens": 79,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Unit_Testing/TestRay.cpp": {
"lines": 58,
"tokens": 591,
"sources": 1,
"clones": 2,
"duplicatedLines": 10,
"duplicatedTokens": 186,
"percentage": 17.24,
"percentageTokens": 31.47,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Unit_Testing/TestPlane.cpp": {
"lines": 277,
"tokens": 2844,
"sources": 1,
"clones": 8,
"duplicatedLines": 62,
"duplicatedTokens": 814,
"percentage": 22.38,
"percentageTokens": 28.62,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Unit_Testing/TestMain.cpp": {
"lines": 44,
"tokens": 65,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Unit_Testing/TestIntersection.cpp": {
"lines": 96,
"tokens": 994,
"sources": 1,
"clones": 4,
"duplicatedLines": 24,
"duplicatedTokens": 346,
"percentage": 25,
"percentageTokens": 34.81,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Unit_Testing/TestCameraLoader.cpp": {
"lines": 45,
"tokens": 380,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Unit_Testing/TestAABB.cpp": {
"lines": 126,
"tokens": 1076,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Scenes/Scenes.cpp": {
"lines": 293,
"tokens": 3184,
"sources": 1,
"clones": 2,
"duplicatedLines": 16,
"duplicatedTokens": 148,
"percentage": 5.46,
"percentageTokens": 4.65,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Texture.cpp": {
"lines": 131,
"tokens": 1405,
"sources": 1,
"clones": 2,
"duplicatedLines": 16,
"duplicatedTokens": 280,
"percentage": 12.21,
"percentageTokens": 19.93,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Shader.cpp": {
"lines": 308,
"tokens": 2629,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Scene.cpp": {
"lines": 36,
"tokens": 292,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Sampler.cpp": {
"lines": 43,
"tokens": 214,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Renderer.cpp": {
"lines": 202,
"tokens": 1942,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Ray.cpp": {
"lines": 93,
"tokens": 506,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/ObjectLoader.cpp": {
"lines": 15,
"tokens": 46,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Material.cpp": {
"lines": 41,
"tokens": 355,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Light.cpp": {
"lines": 16,
"tokens": 59,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Intersection.cpp": {
"lines": 62,
"tokens": 413,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/CameraLoader.cpp": {
"lines": 6,
"tokens": 20,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Camera.cpp": {
"lines": 61,
"tokens": 378,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"total": {
"lines": 5705,
"tokens": 56049,
"sources": 56,
"clones": 30,
"duplicatedLines": 282,
"duplicatedTokens": 4342,
"percentage": 4.94,
"percentageTokens": 7.75,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"yaml": {
"sources": {
"deploy/mobilert-chart/templates/tests/test-connection.yaml": {
"lines": 14,
"tokens": 113,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"deploy/mobilert-chart/templates/serviceaccount.yaml": {
"lines": 11,
"tokens": 120,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"deploy/mobilert-chart/templates/service.yaml": {
"lines": 14,
"tokens": 132,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"deploy/mobilert-chart/templates/ingress.yaml": {
"lines": 60,
"tokens": 689,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"deploy/mobilert-chart/templates/hpa.yaml": {
"lines": 27,
"tokens": 244,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"deploy/mobilert-chart/templates/deployment.yaml": {
"lines": 80,
"tokens": 727,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"deploy/mobilert-chart/templates/configmap.yaml": {
"lines": 7,
"tokens": 80,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"deploy/mobilert-chart/values.yaml": {
"lines": 86,
"tokens": 344,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"deploy/mobilert-chart/Chart.yaml": {
"lines": 23,
"tokens": 71,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
".github/workflows/reusable-native.yml": {
"lines": 369,
"tokens": 2085,
"sources": 1,
"clones": 2,
"duplicatedLines": 22,
"duplicatedTokens": 286,
"percentage": 5.96,
"percentageTokens": 13.72,
"newDuplicatedLines": 0,
"newClones": 0
},
".github/workflows/reusable-android.yml": {
"lines": 951,
"tokens": 6901,
"sources": 1,
"clones": 18,
"duplicatedLines": 448,
"duplicatedTokens": 3878,
"percentage": 47.11,
"percentageTokens": 56.19,
"newDuplicatedLines": 0,
"newClones": 0
},
".github/workflows/native.yml": {
"lines": 116,
"tokens": 701,
"sources": 1,
"clones": 1,
"duplicatedLines": 23,
"duplicatedTokens": 110,
"percentage": 19.83,
"percentageTokens": 15.69,
"newDuplicatedLines": 0,
"newClones": 0
},
".github/workflows/jekyll.yml": {
"lines": 146,
"tokens": 856,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
".github/workflows/docker.yml": {
"lines": 382,
"tokens": 2751,
"sources": 1,
"clones": 3,
"duplicatedLines": 68,
"duplicatedTokens": 352,
"percentage": 17.8,
"percentageTokens": 12.8,
"newDuplicatedLines": 0,
"newClones": 0
},
".github/workflows/code-analysis.yml": {
"lines": 320,
"tokens": 2110,
"sources": 1,
"clones": 3,
"duplicatedLines": 64,
"duplicatedTokens": 338,
"percentage": 20,
"percentageTokens": 16.02,
"newDuplicatedLines": 0,
"newClones": 0
},
".github/workflows/android_repeatable.yml": {
"lines": 169,
"tokens": 1011,
"sources": 1,
"clones": 2,
"duplicatedLines": 53,
"duplicatedTokens": 309,
"percentage": 31.36,
"percentageTokens": 30.56,
"newDuplicatedLines": 0,
"newClones": 0
},
".github/workflows/android.yml": {
"lines": 80,
"tokens": 473,
"sources": 1,
"clones": 1,
"duplicatedLines": 24,
"duplicatedTokens": 115,
"percentage": 30,
"percentageTokens": 24.31,
"newDuplicatedLines": 0,
"newClones": 0
},
".github/codeql/codeql-config.yml": {
"lines": 25,
"tokens": 53,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"docs/_config.yml": {
"lines": 36,
"tokens": 196,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"deploy/registry.yaml": {
"lines": 3,
"tokens": 18,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"deploy/docker-compose.yml": {
"lines": 168,
"tokens": 1061,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
".github/macports.yml": {
"lines": 3,
"tokens": 17,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
".github/dependabot.yml": {
"lines": 87,
"tokens": 342,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"codecov.yml": {
"lines": 61,
"tokens": 289,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
".bettercodehub.yml": {
"lines": 27,
"tokens": 126,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"total": {
"lines": 3265,
"tokens": 21510,
"sources": 25,
"clones": 15,
"duplicatedLines": 351,
"duplicatedTokens": 2694,
"percentage": 10.75,
"percentageTokens": 12.52,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"bash": {
"sources": {
"scripts/test/utils/utils.sh": {
"lines": 110,
"tokens": 473,
"sources": 1,
"clones": 1,
"duplicatedLines": 11,
"duplicatedTokens": 79,
"percentage": 10,
"percentageTokens": 16.7,
"newDuplicatedLines": 0,
"newClones": 0
},
"scripts/test/docker/dockerfile.sh": {
"lines": 150,
"tokens": 814,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"scripts/test/helper_functions.sh": {
"lines": 604,
"tokens": 4181,
"sources": 1,
"clones": 7,
"duplicatedLines": 117,
"duplicatedTokens": 839,
"percentage": 19.37,
"percentageTokens": 20.07,
"newDuplicatedLines": 0,
"newClones": 0
},
"scripts/plot/plot.sh": {
"lines": 105,
"tokens": 635,
"sources": 1,
"clones": 3,
"duplicatedLines": 27,
"duplicatedTokens": 229,
"percentage": 25.71,
"percentageTokens": 36.06,
"newDuplicatedLines": 0,
"newClones": 0
},
"scripts/run_tests_android.sh": {
"lines": 705,
"tokens": 5171,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"scripts/run_tests.sh": {
"lines": 121,
"tokens": 500,
"sources": 1,
"clones": 3,
"duplicatedLines": 131,
"duplicatedTokens": 373,
"percentage": 108.26,
"percentageTokens": 74.6,
"newDuplicatedLines": 0,
"newClones": 0
},
"scripts/profile.sh": {
"lines": 511,
"tokens": 3382,
"sources": 1,
"clones": 7,
"duplicatedLines": 109,
"duplicatedTokens": 797,
"percentage": 21.33,
"percentageTokens": 23.57,
"newDuplicatedLines": 0,
"newClones": 0
},
"scripts/install_dependencies.sh": {
"lines": 547,
"tokens": 4314,
"sources": 1,
"clones": 1,
"duplicatedLines": 42,
"duplicatedTokens": 120,
"percentage": 7.68,
"percentageTokens": 2.78,
"newDuplicatedLines": 0,
"newClones": 0
},
"scripts/helper_functions.sh": {
"lines": 533,
"tokens": 3870,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"scripts/docker.sh": {
"lines": 321,
"tokens": 2085,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"scripts/compile_native.sh": {
"lines": 353,
"tokens": 2330,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"scripts/compile_android.sh": {
"lines": 185,
"tokens": 1015,
"sources": 1,
"clones": 1,
"duplicatedLines": 45,
"duplicatedTokens": 129,
"percentage": 24.32,
"percentageTokens": 12.71,
"newDuplicatedLines": 0,
"newClones": 0
},
"scripts/check_android.sh": {
"lines": 120,
"tokens": 475,
"sources": 1,
"clones": 1,
"duplicatedLines": 44,
"duplicatedTokens": 124,
"percentage": 36.67,
"percentageTokens": 26.11,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"total": {
"lines": 4365,
"tokens": 29245,
"sources": 13,
"clones": 12,
"duplicatedLines": 263,
"duplicatedTokens": 1345,
"percentage": 6.03,
"percentageTokens": 4.6,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"markdown": {
"sources": {
"deploy/mobilert-chart/templates/NOTES.txt": {
"lines": 21,
"tokens": 207,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Unit_Testing/engine/README.md": {
"lines": 2,
"tokens": 41,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Unit_Testing/CMakeLists.txt": {
"lines": 102,
"tokens": 605,
"sources": 1,
"clones": 1,
"duplicatedLines": 23,
"duplicatedTokens": 92,
"percentage": 22.55,
"percentageTokens": 15.21,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/System_dependent/CMakeLists.txt": {
"lines": 21,
"tokens": 175,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/CMakeLists.txt": {
"lines": 70,
"tokens": 438,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/CMakeLists.txt": {
"lines": 56,
"tokens": 329,
"sources": 1,
"clones": 1,
"duplicatedLines": 23,
"duplicatedTokens": 92,
"percentage": 41.07,
"percentageTokens": 27.96,
"newDuplicatedLines": 0,
"newClones": 0
},
"docs/TOOLS.md": {
"lines": 86,
"tokens": 668,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"docs/SECURITY.md": {
"lines": 13,
"tokens": 155,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"docs/README.md": {
"lines": 281,
"tokens": 2173,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"docs/FEATURES.md": {
"lines": 214,
"tokens": 2447,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"docs/CODE_OF_CONDUCT.md": {
"lines": 71,
"tokens": 909,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"docs/BUILD_DOCS.md": {
"lines": 13,
"tokens": 96,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"docs/BLENDER.md": {
"lines": 74,
"tokens": 651,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/CMakeLists.txt": {
"lines": 635,
"tokens": 4257,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"LICENSE.md": {
"lines": 660,
"tokens": 9804,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"total": {
"lines": 2319,
"tokens": 22955,
"sources": 15,
"clones": 1,
"duplicatedLines": 23,
"duplicatedTokens": 92,
"percentage": 0.99,
"percentageTokens": 0.4,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"cpp-header": {
"sources": {
"app/System_dependent/Native/Utils_dependent.hpp": {
"lines": 10,
"tokens": 81,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/System_dependent/Android_JNI/Utils_dependent.hpp": {
"lines": 26,
"tokens": 257,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/System_dependent/Android_JNI/JNI_layer.hpp": {
"lines": 134,
"tokens": 593,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Utils/Utils.hpp": {
"lines": 358,
"tokens": 2175,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Utils/ErrorCode.hpp": {
"lines": 19,
"tokens": 61,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Utils/Constants.hpp": {
"lines": 77,
"tokens": 195,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Shapes/Triangle.hpp": {
"lines": 110,
"tokens": 902,
"sources": 1,
"clones": 2,
"duplicatedLines": 22,
"duplicatedTokens": 264,
"percentage": 20,
"percentageTokens": 29.27,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Shapes/Sphere.hpp": {
"lines": 36,
"tokens": 259,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Shapes/Plane.hpp": {
"lines": 46,
"tokens": 347,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Accelerators/RegularGrid.hpp": {
"lines": 543,
"tokens": 5554,
"sources": 1,
"clones": 4,
"duplicatedLines": 36,
"duplicatedTokens": 364,
"percentage": 6.63,
"percentageTokens": 6.55,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Accelerators/Naive.hpp": {
"lines": 130,
"tokens": 630,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Accelerators/BVH.hpp": {
"lines": 462,
"tokens": 4405,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Accelerators/AABB.hpp": {
"lines": 45,
"tokens": 297,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Shaders/Whitted.hpp": {
"lines": 28,
"tokens": 213,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Shaders/PathTracer.hpp": {
"lines": 32,
"tokens": 252,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Shaders/NoShadows.hpp": {
"lines": 28,
"tokens": 212,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Shaders/DiffuseMaterial.hpp": {
"lines": 25,
"tokens": 201,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Shaders/DepthMap.hpp": {
"lines": 29,
"tokens": 229,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/Stratified.hpp": {
"lines": 27,
"tokens": 190,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/StaticPCG.hpp": {
"lines": 23,
"tokens": 155,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/StaticMersenneTwister.hpp": {
"lines": 23,
"tokens": 155,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/StaticHaltonSeq.hpp": {
"lines": 25,
"tokens": 186,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/PCG.hpp": {
"lines": 25,
"tokens": 159,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/MersenneTwister.hpp": {
"lines": 23,
"tokens": 159,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/HaltonSeq.hpp": {
"lines": 25,
"tokens": 190,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Samplers/Constant.hpp": {
"lines": 28,
"tokens": 188,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Loaders/PerspectiveLoader.hpp": {
"lines": 12,
"tokens": 75,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Loaders/OBJLoader.hpp": {
"lines": 78,
"tokens": 783,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Loaders/CameraFactory.hpp": {
"lines": 11,
"tokens": 60,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Lights/PointLight.hpp": {
"lines": 32,
"tokens": 234,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Lights/AreaLight.hpp": {
"lines": 39,
"tokens": 267,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Cameras/Perspective.hpp": {
"lines": 42,
"tokens": 292,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Components/Cameras/Orthographic.hpp": {
"lines": 45,
"tokens": 291,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/Scenes/Scenes.hpp": {
"lines": 16,
"tokens": 148,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Texture.hpp": {
"lines": 47,
"tokens": 347,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Shader.hpp": {
"lines": 91,
"tokens": 637,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Scene.hpp": {
"lines": 50,
"tokens": 413,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Sampler.hpp": {
"lines": 58,
"tokens": 400,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Renderer.hpp": {
"lines": 56,
"tokens": 479,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Ray.hpp": {
"lines": 68,
"tokens": 333,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/ObjectLoader.hpp": {
"lines": 45,
"tokens": 245,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Material.hpp": {
"lines": 63,
"tokens": 353,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Light.hpp": {
"lines": 47,
"tokens": 213,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Intersection.hpp": {
"lines": 48,
"tokens": 398,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Config.hpp": {
"lines": 79,
"tokens": 213,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/CameraLoader.hpp": {
"lines": 30,
"tokens": 166,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"app/MobileRT/Camera.hpp": {
"lines": 63,
"tokens": 308,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"total": {
"lines": 3357,
"tokens": 24900,
"sources": 47,
"clones": 3,
"duplicatedLines": 29,
"duplicatedTokens": 314,
"percentage": 0.86,
"percentageTokens": 1.26,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"properties": {
"sources": {
"gradle/wrapper/gradle-wrapper.properties": {
"lines": 6,
"tokens": 26,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"sonar-project.properties": {
"lines": 35,
"tokens": 98,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"gradle.properties": {
"lines": 90,
"tokens": 219,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"total": {
"lines": 131,
"tokens": 343,
"sources": 3,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"css": {
"sources": {
"docs/README.md": {
"lines": 0,
"tokens": 6,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"total": {
"lines": 0,
"tokens": 6,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"url": {
"sources": {
"docs/README.md": {
"lines": 17,
"tokens": 61,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
},
"docs/CODE_OF_CONDUCT.md": {
"lines": 0,
"tokens": 4,
"sources": 1,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"total": {
"lines": 17,
"tokens": 65,
"sources": 2,
"clones": 0,
"duplicatedLines": 0,
"duplicatedTokens": 0,
"percentage": 0,
"percentageTokens": 0,
"newDuplicatedLines": 0,
"newClones": 0
}
}
},
"total": {
"lines": 30595,
"tokens": 235355,
"sources": 256,
"clones": 121,
"duplicatedLines": 1507,
"duplicatedTokens": 14099,
"percentage": 4.93,
"percentageTokens": 5.99,
"newDuplicatedLines": 0,
"newClones": 0
}
},
"duplicates": [
{
"format": "java",
"lines": 7,
"fragment": "= UtilsShader.class.getDeclaredConstructor();\n Assertions.assertThat(Modifier.isPrivate(constructor.getModifiers()))\n .as(\"The constructor is private\")\n .isTrue();\n constructor.setAccessible(true);\n Assertions.assertThatThrownBy(constructor::newInstance)\n .as(\"The default constructor of",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsShaderTest.java",
"start": 34,
"end": 40,
"startLoc": {
"line": 34,
"column": 12,
"position": 213
},
"endLoc": {
"line": 40,
"column": 41,
"position": 276
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsTest.java",
"start": 35,
"end": 41,
"startLoc": {
"line": 35,
"column": 6,
"position": 222
},
"endLoc": {
"line": 41,
"column": 35,
"position": 285
}
}
},
{
"format": "java",
"lines": 7,
"fragment": "= UtilsLogging.class.getDeclaredConstructor();\n Assertions.assertThat(Modifier.isPrivate(constructor.getModifiers()))\n .as(\"The constructor is private\")\n .isTrue();\n constructor.setAccessible(true);\n Assertions.assertThatThrownBy(constructor::newInstance)\n .as(\"The default constructor of",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsLoggingTest.java",
"start": 22,
"end": 28,
"startLoc": {
"line": 22,
"column": 13,
"position": 111
},
"endLoc": {
"line": 28,
"column": 42,
"position": 174
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsTest.java",
"start": 35,
"end": 41,
"startLoc": {
"line": 35,
"column": 6,
"position": 222
},
"endLoc": {
"line": 41,
"column": 35,
"position": 285
}
}
},
{
"format": "java",
"lines": 14,
"fragment": ";\n\nimport org.assertj.core.api.Assertions;\nimport org.easymock.EasyMock;\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.powermock.api.easymock.PowerMock;\nimport org.powermock.core.classloader.annotations.PrepareOnlyThisForTest;\nimport org.powermock.modules.junit4.PowerMockRunner;\n\nimport java.lang.reflect.Constructor;\nimport java.lang.reflect.InvocationTargetException;\nimport java.lang.reflect.Modifier;\nimport java",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsGlMatricesTest.java",
"start": 3,
"end": 16,
"startLoc": {
"line": 3,
"column": 7,
"position": 17
},
"endLoc": {
"line": 16,
"column": 5,
"position": 139
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsShaderTest.java",
"start": 3,
"end": 17,
"startLoc": {
"line": 3,
"column": 7,
"position": 17
},
"endLoc": {
"line": 17,
"column": 7,
"position": 140
}
}
},
{
"format": "java",
"lines": 7,
"fragment": "= UtilsGlMatrices.class.getDeclaredConstructor();\n Assertions.assertThat(Modifier.isPrivate(constructor.getModifiers()))\n .as(\"The constructor is private\")\n .isTrue();\n constructor.setAccessible(true);\n Assertions.assertThatThrownBy(constructor::newInstance)\n .as(\"The default constructor of ",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsGlMatricesTest.java",
"start": 52,
"end": 58,
"startLoc": {
"line": 52,
"column": 16,
"position": 388
},
"endLoc": {
"line": 58,
"column": 46,
"position": 451
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsTest.java",
"start": 35,
"end": 41,
"startLoc": {
"line": 35,
"column": 6,
"position": 222
},
"endLoc": {
"line": 41,
"column": 35,
"position": 285
}
}
},
{
"format": "java",
"lines": 11,
"fragment": ".INDEX_FOVX, 1.0f);\n camera.putFloat(UtilsGlMatrices.INDEX_FOVY, 0.0f);\n camera.putFloat(UtilsGlMatrices.INDEX_SIZEH, 0.0f);\n camera.putFloat(UtilsGlMatrices.INDEX_SIZEY, 0.0f);\n Assertions.assertThat(UtilsGlMatrices.createProjectionMatrix(camera, width, height))\n .as(\"The projection matrix should be zero\")\n .containsOnly(expectedEmptyArray);\n PowerMock.verifyAll();\n\n mockMatrixMethods(0, 0);\n camera.putFloat(UtilsGlMatrices",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsGlMatricesTest.java",
"start": 85,
"end": 95,
"startLoc": {
"line": 85,
"column": 5,
"position": 756
},
"endLoc": {
"line": 95,
"column": 5,
"position": 864
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsGlMatricesTest.java",
"start": 75,
"end": 85,
"startLoc": {
"line": 75,
"column": 5,
"position": 647
},
"endLoc": {
"line": 85,
"column": 5,
"position": 755
}
}
},
{
"format": "java",
"lines": 9,
"fragment": ".INDEX_FOVY, 1.0f);\n camera.putFloat(UtilsGlMatrices.INDEX_SIZEH, 0.0f);\n camera.putFloat(UtilsGlMatrices.INDEX_SIZEY, 0.0f);\n Assertions.assertThat(UtilsGlMatrices.createProjectionMatrix(camera, width, height))\n .as(\"The projection matrix should be zero\")\n .containsOnly(expectedEmptyArray);\n PowerMock.verifyAll();\n\n mo",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsGlMatricesTest.java",
"start": 96,
"end": 104,
"startLoc": {
"line": 96,
"column": 5,
"position": 879
},
"endLoc": {
"line": 104,
"column": 2,
"position": 956
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsGlMatricesTest.java",
"start": 76,
"end": 84,
"startLoc": {
"line": 76,
"column": 5,
"position": 661
},
"endLoc": {
"line": 84,
"column": 2,
"position": 738
}
}
},
{
"format": "java",
"lines": 6,
"fragment": ".INDEX_FOVX, 1.0f);\n camera.putFloat(UtilsGlMatrices.INDEX_FOVY, 1.0f);\n camera.putFloat(UtilsGlMatrices.INDEX_SIZEH, 0.0f);\n camera.putFloat(UtilsGlMatrices.INDEX_SIZEY, 0.0f);\n Assertions.assertThat(UtilsGlMatrices.createProjectionMatrix(camera, width, height))\n .as(\"The projection matrix should be filled with perspecti",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsGlMatricesTest.java",
"start": 105,
"end": 110,
"startLoc": {
"line": 105,
"column": 5,
"position": 974
},
"endLoc": {
"line": 110,
"column": 72,
"position": 1042
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsGlMatricesTest.java",
"start": 95,
"end": 100,
"startLoc": {
"line": 95,
"column": 5,
"position": 865
},
"endLoc": {
"line": 100,
"column": 39,
"position": 933
}
}
},
{
"format": "java",
"lines": 10,
"fragment": "INDEX_SIZEH, 1.0f);\n camera.putFloat(UtilsGlMatrices.INDEX_SIZEY, 0.0f);\n Assertions.assertThat(UtilsGlMatrices.createProjectionMatrix(camera, width, height))\n .as(\"The projection matrix should be zero\")\n .containsOnly(expectedEmptyArray);\n PowerMock.verifyAll();\n\n mockMatrixMethods(0, 0);\n camera.putFloat(UtilsGlMatrices.INDEX_FOVX, 0.0f);\n camera.putFloat(UtilsGlMatrices",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsGlMatricesTest.java",
"start": 117,
"end": 126,
"startLoc": {
"line": 117,
"column": 5,
"position": 1111
},
"endLoc": {
"line": 126,
"column": 5,
"position": 1205
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsGlMatricesTest.java",
"start": 77,
"end": 96,
"startLoc": {
"line": 77,
"column": 5,
"position": 675
},
"endLoc": {
"line": 96,
"column": 5,
"position": 878
}
}
},
{
"format": "java",
"lines": 7,
"fragment": ";\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.powermock.api.easymock.PowerMock;\nimport org.powermock.core.classloader.annotations.PrepareOnlyThisForTest;\nimport org.powermock.modules.junit4.PowerMockRunner;\nimport org",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsGLTest.java",
"start": 8,
"end": 14,
"startLoc": {
"line": 8,
"column": 9,
"position": 58
},
"endLoc": {
"line": 14,
"column": 4,
"position": 123
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsShaderTest.java",
"start": 6,
"end": 13,
"startLoc": {
"line": 6,
"column": 9,
"position": 40
},
"endLoc": {
"line": 13,
"column": 5,
"position": 106
}
}
},
{
"format": "java",
"lines": 7,
"fragment": "= UtilsGL.class.getDeclaredConstructor();\n Assertions.assertThat(Modifier.isPrivate(constructor.getModifiers()))\n .as(\"The constructor is private\")\n .isTrue();\n constructor.setAccessible(true);\n Assertions.assertThatThrownBy(constructor::newInstance)\n .as(\"The default constructor of",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsGLTest.java",
"start": 41,
"end": 47,
"startLoc": {
"line": 41,
"column": 8,
"position": 293
},
"endLoc": {
"line": 47,
"column": 37,
"position": 356
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsTest.java",
"start": 35,
"end": 41,
"startLoc": {
"line": 35,
"column": 6,
"position": 222
},
"endLoc": {
"line": 41,
"column": 35,
"position": 285
}
}
},
{
"format": "java",
"lines": 12,
"fragment": "package puscas.mobilertapp.utils;\n\nimport org.assertj.core.api.Assertions;\nimport org.junit.Test;\n\nimport java.lang.reflect.Constructor;\nimport java.lang.reflect.InvocationTargetException;\nimport java.lang.reflect.Modifier;\n\n/**\n * The unit tests for the {@link UtilsContext} util class.\n */",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsContextTest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsLoggingTest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
}
},
{
"format": "java",
"lines": 7,
"fragment": "= UtilsContext.class.getDeclaredConstructor();\n Assertions.assertThat(Modifier.isPrivate(constructor.getModifiers()))\n .as(\"The constructor is private\")\n .isTrue();\n constructor.setAccessible(true);\n Assertions.assertThatThrownBy(constructor::newInstance)\n .as(\"The default constructor of",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsContextTest.java",
"start": 22,
"end": 28,
"startLoc": {
"line": 22,
"column": 13,
"position": 111
},
"endLoc": {
"line": 28,
"column": 42,
"position": 174
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsTest.java",
"start": 35,
"end": 41,
"startLoc": {
"line": 35,
"column": 6,
"position": 222
},
"endLoc": {
"line": 41,
"column": 35,
"position": 285
}
}
},
{
"format": "java",
"lines": 12,
"fragment": "package puscas.mobilertapp.utils;\n\nimport org.assertj.core.api.Assertions;\nimport org.junit.Test;\n\nimport java.lang.reflect.Constructor;\nimport java.lang.reflect.InvocationTargetException;\nimport java.lang.reflect.Modifier;\n\n/**\n * The unit tests for the {@link UtilsBuffer} util class.\n */",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsBufferTest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsLoggingTest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
}
},
{
"format": "java",
"lines": 7,
"fragment": "= UtilsBuffer.class.getDeclaredConstructor();\n Assertions.assertThat(Modifier.isPrivate(constructor.getModifiers()))\n .as(\"The constructor is private\")\n .isTrue();\n constructor.setAccessible(true);\n Assertions.assertThatThrownBy(constructor::newInstance)\n .as(\"The default constructor of",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsBufferTest.java",
"start": 22,
"end": 28,
"startLoc": {
"line": 22,
"column": 12,
"position": 111
},
"endLoc": {
"line": 28,
"column": 41,
"position": 174
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsTest.java",
"start": 35,
"end": 41,
"startLoc": {
"line": 35,
"column": 6,
"position": 222
},
"endLoc": {
"line": 41,
"column": 35,
"position": 285
}
}
},
{
"format": "java",
"lines": 7,
"fragment": "= ConstantsUI.class.getDeclaredConstructor();\n Assertions.assertThat(Modifier.isPrivate(constructor.getModifiers()))\n .as(\"The constructor is private\")\n .isTrue();\n constructor.setAccessible(true);\n Assertions.assertThatThrownBy(constructor::newInstance)\n .as(\"The default constructor of",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsUITest.java",
"start": 22,
"end": 28,
"startLoc": {
"line": 22,
"column": 12,
"position": 111
},
"endLoc": {
"line": 28,
"column": 41,
"position": 174
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsTest.java",
"start": 35,
"end": 41,
"startLoc": {
"line": 35,
"column": 6,
"position": 222
},
"endLoc": {
"line": 41,
"column": 35,
"position": 285
}
}
},
{
"format": "java",
"lines": 12,
"fragment": "package puscas.mobilertapp.constants;\n\nimport org.assertj.core.api.Assertions;\nimport org.junit.Test;\n\nimport java.lang.reflect.Constructor;\nimport java.lang.reflect.InvocationTargetException;\nimport java.lang.reflect.Modifier;\n\n/**\n * The unit tests for the {@link ConstantsToast} util class.\n */",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsToastTest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsUITest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
}
},
{
"format": "java",
"lines": 7,
"fragment": "= ConstantsToast.class.getDeclaredConstructor();\n Assertions.assertThat(Modifier.isPrivate(constructor.getModifiers()))\n .as(\"The constructor is private\")\n .isTrue();\n constructor.setAccessible(true);\n Assertions.assertThatThrownBy(constructor::newInstance)\n .as(\"The default constructor of",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsToastTest.java",
"start": 22,
"end": 28,
"startLoc": {
"line": 22,
"column": 15,
"position": 111
},
"endLoc": {
"line": 28,
"column": 44,
"position": 174
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsTest.java",
"start": 35,
"end": 41,
"startLoc": {
"line": 35,
"column": 6,
"position": 222
},
"endLoc": {
"line": 41,
"column": 35,
"position": 285
}
}
},
{
"format": "java",
"lines": 12,
"fragment": "package puscas.mobilertapp.constants;\n\nimport org.assertj.core.api.Assertions;\nimport org.junit.Test;\n\nimport java.lang.reflect.Constructor;\nimport java.lang.reflect.InvocationTargetException;\nimport java.lang.reflect.Modifier;\n\n/**\n * The unit tests for the {@link Constants} util class.\n */",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsTest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsUITest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
}
},
{
"format": "java",
"lines": 7,
"fragment": "= Constants.class.getDeclaredConstructor();\n Assertions.assertThat(Modifier.isPrivate(constructor.getModifiers()))\n .as(\"The constructor is private\")\n .isTrue();\n constructor.setAccessible(true);\n Assertions.assertThatThrownBy(constructor::newInstance)\n .as(\"The default constructor of",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsTest.java",
"start": 22,
"end": 28,
"startLoc": {
"line": 22,
"column": 10,
"position": 111
},
"endLoc": {
"line": 28,
"column": 39,
"position": 174
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsTest.java",
"start": 35,
"end": 41,
"startLoc": {
"line": 35,
"column": 6,
"position": 222
},
"endLoc": {
"line": 41,
"column": 35,
"position": 285
}
}
},
{
"format": "java",
"lines": 12,
"fragment": "package puscas.mobilertapp.constants;\n\nimport org.assertj.core.api.Assertions;\nimport org.junit.Test;\n\nimport java.lang.reflect.Constructor;\nimport java.lang.reflect.InvocationTargetException;\nimport java.lang.reflect.Modifier;\n\n/**\n * The unit tests for the {@link ConstantsRenderer} util class.\n */",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsRendererTest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsUITest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
}
},
{
"format": "java",
"lines": 7,
"fragment": "= ConstantsRenderer.class.getDeclaredConstructor();\n Assertions.assertThat(Modifier.isPrivate(constructor.getModifiers()))\n .as(\"The constructor is private\")\n .isTrue();\n constructor.setAccessible(true);\n Assertions.assertThatThrownBy(constructor::newInstance)\n .as(\"The default constructor of",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsRendererTest.java",
"start": 22,
"end": 28,
"startLoc": {
"line": 22,
"column": 18,
"position": 111
},
"endLoc": {
"line": 28,
"column": 47,
"position": 174
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsTest.java",
"start": 35,
"end": 41,
"startLoc": {
"line": 35,
"column": 6,
"position": 222
},
"endLoc": {
"line": 41,
"column": 35,
"position": 285
}
}
},
{
"format": "java",
"lines": 12,
"fragment": "package puscas.mobilertapp.constants;\n\nimport org.assertj.core.api.Assertions;\nimport org.junit.Test;\n\nimport java.lang.reflect.Constructor;\nimport java.lang.reflect.InvocationTargetException;\nimport java.lang.reflect.Modifier;\n\n/**\n * The unit tests for the {@link ConstantsMethods} util class.\n */",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsMethodsTest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsUITest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
}
},
{
"format": "java",
"lines": 7,
"fragment": "= ConstantsMethods.class.getDeclaredConstructor();\n Assertions.assertThat(Modifier.isPrivate(constructor.getModifiers()))\n .as(\"The constructor is private\")\n .isTrue();\n constructor.setAccessible(true);\n Assertions.assertThatThrownBy(constructor::newInstance)\n .as(\"The default constructor of",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsMethodsTest.java",
"start": 22,
"end": 28,
"startLoc": {
"line": 22,
"column": 17,
"position": 111
},
"endLoc": {
"line": 28,
"column": 46,
"position": 174
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsTest.java",
"start": 35,
"end": 41,
"startLoc": {
"line": 35,
"column": 6,
"position": 222
},
"endLoc": {
"line": 41,
"column": 35,
"position": 285
}
}
},
{
"format": "java",
"lines": 12,
"fragment": "package puscas.mobilertapp.constants;\n\nimport org.assertj.core.api.Assertions;\nimport org.junit.Test;\n\nimport java.lang.reflect.Constructor;\nimport java.lang.reflect.InvocationTargetException;\nimport java.lang.reflect.Modifier;\n\n/**\n * The unit tests for the {@link ConstantsError} util class.\n */",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsErrorTest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsUITest.java",
"start": 1,
"end": 12,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 12,
"column": 4,
"position": 67
}
}
},
{
"format": "java",
"lines": 7,
"fragment": "= ConstantsError.class.getDeclaredConstructor();\n Assertions.assertThat(Modifier.isPrivate(constructor.getModifiers()))\n .as(\"The constructor is private\")\n .isTrue();\n constructor.setAccessible(true);\n Assertions.assertThatThrownBy(constructor::newInstance)\n .as(\"The default constructor of",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/constants/ConstantsErrorTest.java",
"start": 22,
"end": 28,
"startLoc": {
"line": 22,
"column": 15,
"position": 111
},
"endLoc": {
"line": 28,
"column": 44,
"position": 174
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsTest.java",
"start": 35,
"end": 41,
"startLoc": {
"line": 35,
"column": 6,
"position": 222
},
"endLoc": {
"line": 41,
"column": 35,
"position": 285
}
}
},
{
"format": "java",
"lines": 9,
"fragment": ".class);\n\n EasyMock.replay(viewMocked);\n Assertions.assertThatCode(() -> this.targetCustomNumberPicker.addView(viewMocked, EasyMock.mock(ViewGroup.LayoutParams.class)))\n .as(\"ViewManager#addView shouldn't throw any exception.\")\n .doesNotThrowAnyException();\n }\n\n}",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/configs/CustomNumberPickerTest.java",
"start": 66,
"end": 74,
"startLoc": {
"line": 66,
"column": 12,
"position": 417
},
"endLoc": {
"line": 74,
"column": 2,
"position": 483
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/configs/CustomNumberPickerTest.java",
"start": 49,
"end": 63,
"startLoc": {
"line": 49,
"column": 9,
"position": 320
},
"endLoc": {
"line": 63,
"column": 8,
"position": 387
}
}
},
{
"format": "java",
"lines": 12,
"fragment": "() {\n final ConfigGlAttribute.Builder builder = ConfigGlAttribute.Builder.Companion.create();\n final String attributeName = \"test name\";\n final ByteBuffer byteBuffer = ByteBuffer.allocate(1);\n final int attributeLocation = 123;\n final int attributeComponentsInBuffer = 456;\n builder.setAttributeName(attributeName);\n builder.setBuffer(byteBuffer);\n builder.setAttributeLocation(attributeLocation);\n builder.setComponentsInBuffer(attributeComponentsInBuffer);\n\n Assertions",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/configs/ConfigGlAttributeTest.java",
"start": 104,
"end": 115,
"startLoc": {
"line": 104,
"column": 12,
"position": 730
},
"endLoc": {
"line": 115,
"column": 11,
"position": 848
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/configs/ConfigGlAttributeTest.java",
"start": 30,
"end": 40,
"startLoc": {
"line": 30,
"column": 27,
"position": 147
},
"endLoc": {
"line": 40,
"column": 6,
"position": 264
}
}
},
{
"format": "java",
"lines": 16,
"fragment": "package puscas.mobilertapp.engine;\n\nimport org.junit.Test;\n\nimport java.util.concurrent.TimeoutException;\n\nimport puscas.mobilertapp.AbstractTest;\nimport puscas.mobilertapp.ConstantsAndroidTests;\nimport puscas.mobilertapp.MainActivity;\nimport puscas.mobilertapp.constants.Accelerator;\nimport puscas.mobilertapp.constants.Scene;\nimport puscas.mobilertapp.constants.Shader;\n\n/**\n * The test suite for the {@link Accelerator}s used in {@link MainActivity}.\n */",
"tokens": 0,
"firstFile": {
"name": "app/src/androidTest/java/puscas/mobilertapp/engine/AcceleratorTest.java",
"start": 1,
"end": 16,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 16,
"column": 4,
"position": 93
}
},
"secondFile": {
"name": "app/src/androidTest/java/puscas/mobilertapp/engine/ShaderTest.java",
"start": 1,
"end": 16,
"startLoc": {
"line": 1,
"column": 1,
"position": 0
},
"endLoc": {
"line": 16,
"column": 4,
"position": 93
}
}
},
{
"format": "java",
"lines": 13,
"fragment": "() {\n MemberModifier.suppress(MemberModifier.method(MainActivity.class, \"resetErrno\"));\n MemberModifier.suppress(MemberModifier.method(MainRenderer.class, \"setBitmap\"));\n\n final Context context = new MainActivity();\n final DrawView drawView = new DrawView(context);\n\n final GLSurfaceView.EGLContextFactory myEGLContextFactory = new MyEglContextFactory(drawView);\n final EGL10 egl = createEGL();\n\n // Values to be returned by the EGL10 mocked.\n eglContextDestroy = false;\n eglErrorReturnedByMock = EGL10.EGL_NONE",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 269,
"end": 281,
"startLoc": {
"line": 269,
"column": 33,
"position": 1848
},
"endLoc": {
"line": 281,
"column": 9,
"position": 1978
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 242,
"end": 254,
"startLoc": {
"line": 242,
"column": 25,
"position": 1645
},
"endLoc": {
"line": 254,
"column": 12,
"position": 1775
}
}
},
{
"format": "java",
"lines": 14,
"fragment": "() {\n MemberModifier.suppress(MemberModifier.method(MainActivity.class, \"resetErrno\"));\n MemberModifier.suppress(MemberModifier.method(MainRenderer.class, \"setBitmap\"));\n\n final Context context = new MainActivity();\n final DrawView drawView = new DrawView(context);\n\n final GLSurfaceView.EGLContextFactory myEGLContextFactory = new MyEglContextFactory(drawView);\n final EGL10 egl = createEGL();\n\n // Values to be returned by the EGL10 mocked.\n eglContextDestroy = false;\n eglErrorReturnedByMock = EGL10.EGL_SUCCESS;\n eglContextReturnedByMock = EasyMock",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 294,
"end": 307,
"startLoc": {
"line": 294,
"column": 18,
"position": 2048
},
"endLoc": {
"line": 307,
"column": 9,
"position": 2186
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 242,
"end": 255,
"startLoc": {
"line": 242,
"column": 25,
"position": 1645
},
"endLoc": {
"line": 255,
"column": 5,
"position": 1783
}
}
},
{
"format": "java",
"lines": 12,
"fragment": "() {\n MemberModifier.suppress(MemberModifier.method(MainActivity.class, \"resetErrno\"));\n MemberModifier.suppress(MemberModifier.method(MainRenderer.class, \"setBitmap\"));\n\n final Context context = new MainActivity();\n final DrawView drawView = new DrawView(context);\n\n final GLSurfaceView.EGLContextFactory myEGLContextFactory = new MyEglContextFactory(drawView);\n final EGL10 egl = createEGL();\n\n // Values to be returned by the EGL10 mocked.\n // Mock the 1st EGLContext.",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 320,
"end": 331,
"startLoc": {
"line": 320,
"column": 21,
"position": 2258
},
"endLoc": {
"line": 331,
"column": 28,
"position": 2374
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 242,
"end": 253,
"startLoc": {
"line": 242,
"column": 25,
"position": 1645
},
"endLoc": {
"line": 253,
"column": 18,
"position": 1761
}
}
},
{
"format": "java",
"lines": 10,
"fragment": "eglContextDestroy = false;\n eglErrorReturnedByMock = EGL10.EGL_SUCCESS;\n eglContextReturnedByMock = EasyMock.mock(EGLContext.class);\n\n final EGLContext eglContext = myEGLContextFactory.createContext(egl, null, null);\n Assertions.assertThat(eglContext)\n .as(\"The EGL context created\")\n .isNotNull();\n\n // Mock the 2nd EGLContext.",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 332,
"end": 341,
"startLoc": {
"line": 332,
"column": 9,
"position": 2377
},
"endLoc": {
"line": 341,
"column": 28,
"position": 2457
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 305,
"end": 313,
"startLoc": {
"line": 305,
"column": 9,
"position": 2164
},
"endLoc": {
"line": 313,
"column": 2,
"position": 2243
}
}
},
{
"format": "java",
"lines": 20,
"fragment": "() {\n MemberModifier.suppress(MemberModifier.method(MainActivity.class, \"resetErrno\"));\n MemberModifier.suppress(MemberModifier.method(MainRenderer.class, \"setBitmap\"));\n\n final Context context = new MainActivity();\n final DrawView drawView = new DrawView(context);\n\n final GLSurfaceView.EGLContextFactory myEGLContextFactory = new MyEglContextFactory(drawView);\n final EGL10 egl = createEGL();\n\n // Values to be returned by the EGL10 mocked.\n eglContextDestroy = false;\n eglErrorReturnedByMock = EGL10.EGL_SUCCESS;\n eglContextReturnedByMock = EasyMock.mock(EGLContext.class);\n\n final EGLContext eglContext = myEGLContextFactory.createContext(egl, null, null);\n Assertions.assertThat(eglContext)\n .as(\"The EGL context created\")\n .isNotNull();\n Assertions",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 359,
"end": 378,
"startLoc": {
"line": 359,
"column": 26,
"position": 2561
},
"endLoc": {
"line": 378,
"column": 11,
"position": 2756
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 242,
"end": 313,
"startLoc": {
"line": 242,
"column": 25,
"position": 1645
},
"endLoc": {
"line": 313,
"column": 2,
"position": 2243
}
}
},
{
"format": "java",
"lines": 14,
"fragment": ");\n final EGL10 egl = createEGL();\n\n // Values to be returned by the EGL10 mocked.\n eglContextDestroy = false;\n eglErrorReturnedByMock = EGL10.EGL_SUCCESS;\n eglContextReturnedByMock = EasyMock.mock(EGLContext.class);\n\n final EGLContext eglContext = myEGLContextFactory.createContext(egl, null, null);\n Assertions.assertThat(eglContext)\n .as(\"The EGL context created\")\n .isNotNull();\n\n final",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 395,
"end": 408,
"startLoc": {
"line": 395,
"column": 15,
"position": 2899
},
"endLoc": {
"line": 408,
"column": 6,
"position": 3001
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 301,
"end": 313,
"startLoc": {
"line": 301,
"column": 9,
"position": 2142
},
"endLoc": {
"line": 313,
"column": 2,
"position": 2243
}
}
},
{
"format": "java",
"lines": 8,
"fragment": ";\n\nimport org.assertj.core.api.Assertions;\nimport org.easymock.EasyMock;\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.powermock.api.easymock.PowerMock;\nimport org.powermock.api",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 9,
"end": 16,
"startLoc": {
"line": 9,
"column": 8,
"position": 59
},
"endLoc": {
"line": 16,
"column": 4,
"position": 123
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsShaderTest.java",
"start": 3,
"end": 10,
"startLoc": {
"line": 3,
"column": 7,
"position": 17
},
"endLoc": {
"line": 10,
"column": 5,
"position": 81
}
}
},
{
"format": "java",
"lines": 7,
"fragment": ";\nimport org.powermock.api.support.membermodification.MemberModifier;\nimport org.powermock.core.classloader.annotations.PrepareOnlyThisForTest;\nimport org.powermock.modules.junit4.PowerMockRunner;\nimport org.springframework.test.util.ReflectionTestUtils;\n\nimport java",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 15,
"end": 21,
"startLoc": {
"line": 15,
"column": 10,
"position": 115
},
"endLoc": {
"line": 21,
"column": 5,
"position": 176
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 13,
"end": 19,
"startLoc": {
"line": 13,
"column": 8,
"position": 97
},
"endLoc": {
"line": 19,
"column": 6,
"position": 158
}
}
},
{
"format": "java",
"lines": 14,
"fragment": "() {\n final MainRenderer mainRenderer = createMockedMainRenderer();\n\n final ActivityManager activityManagerMocked = EasyMock.mock(ActivityManager.class);\n final ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();\n ReflectionTestUtils.setField(memoryInfo, \"availMem\", 100L * BYTES_IN_MEGABYTE);\n ReflectionTestUtils.setField(mainRenderer, \"memoryInfo\", memoryInfo);\n\n final int initialValue = 1;\n final CountDownLatch countDownLatch = new CountDownLatch(initialValue);\n final Runnable runnable = countDownLatch::countDown;\n\n mainRenderer.setActivityManager(activityManagerMocked);\n Assertions.assertThatThrownBy",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 107,
"end": 120,
"startLoc": {
"line": 107,
"column": 25,
"position": 885
},
"endLoc": {
"line": 120,
"column": 19,
"position": 1037
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 45,
"end": 58,
"startLoc": {
"line": 45,
"column": 21,
"position": 334
},
"endLoc": {
"line": 58,
"column": 15,
"position": 486
}
}
},
{
"format": "java",
"lines": 12,
"fragment": ");\n\n Assertions.assertThatThrownBy(MainRenderer::new)\n .as(\"The MainRenderer#setBitmap method\")\n .isInstanceOf(IllegalArgumentException.class);\n\n EasyMock.reset(bitmapMocked);\n EasyMock.expect(bitmapMocked.isRecycled())\n .andReturn(false)\n .anyTimes();\n EasyMock.expect(bitmapMocked.getWidth())\n .andReturn(1",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 183,
"end": 194,
"startLoc": {
"line": 183,
"column": 13,
"position": 1522
},
"endLoc": {
"line": 194,
"column": 2,
"position": 1606
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 167,
"end": 178,
"startLoc": {
"line": 167,
"column": 2,
"position": 1396
},
"endLoc": {
"line": 178,
"column": 2,
"position": 1480
}
}
},
{
"format": "java",
"lines": 17,
"fragment": "() {\n MemberModifier.suppress(MemberModifier.method(MainActivity.class, \"showUiMessage\"));\n MemberModifier.suppress(MemberModifier.method(MainActivity.class, \"resetRenderButton\"));\n\n final MainRenderer mainRenderer = createMockedMainRenderer();\n\n final ActivityManager activityManagerMocked = PowerMock.createMock(ActivityManager.class);\n activityManagerMocked.getMemoryInfo(EasyMock.anyObject(ActivityManager.MemoryInfo.class));\n EasyMock.expectLastCall().andVoid().anyTimes();\n mainRenderer.setActivityManager(activityManagerMocked);\n\n final ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();\n ReflectionTestUtils.setField(memoryInfo, \"availMem\", 100L * BYTES_IN_MEGABYTE);\n ReflectionTestUtils.setField(mainRenderer, \"memoryInfo\", memoryInfo);\n\n\n final",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 328,
"end": 344,
"startLoc": {
"line": 328,
"column": 39,
"position": 2703
},
"endLoc": {
"line": 344,
"column": 6,
"position": 2883
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 297,
"end": 312,
"startLoc": {
"line": 297,
"column": 33,
"position": 2442
},
"endLoc": {
"line": 312,
"column": 11,
"position": 2621
}
}
},
{
"format": "java",
"lines": 13,
"fragment": "EasyMock.reset(bitmapMocked);\n EasyMock.expect(bitmapMocked.isRecycled())\n .andReturn(false)\n .anyTimes();\n EasyMock.expect(bitmapMocked.getWidth())\n .andReturn(2)\n .anyTimes();\n EasyMock.expect(bitmapMocked.getHeight())\n .andReturn(1)\n .anyTimes();\n\n EasyMock.replay(bitmapMocked);\n Assertions.assertThatThrownBy((",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 357,
"end": 369,
"startLoc": {
"line": 357,
"column": 9,
"position": 3043
},
"endLoc": {
"line": 369,
"column": 2,
"position": 3144
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 173,
"end": 185,
"startLoc": {
"line": 173,
"column": 9,
"position": 1430
},
"endLoc": {
"line": 185,
"column": 13,
"position": 1531
}
}
},
{
"format": "java",
"lines": 9,
"fragment": "EasyMock.reset(bitmapMocked);\n EasyMock.expect(bitmapMocked.isRecycled())\n .andReturn(false)\n .anyTimes();\n EasyMock.expect(bitmapMocked.getWidth())\n .andReturn(2)\n .anyTimes();\n EasyMock.expect(bitmapMocked.getHeight())\n .andReturn(2",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 377,
"end": 385,
"startLoc": {
"line": 377,
"column": 9,
"position": 3212
},
"endLoc": {
"line": 385,
"column": 2,
"position": 3288
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 173,
"end": 181,
"startLoc": {
"line": 173,
"column": 9,
"position": 1430
},
"endLoc": {
"line": 181,
"column": 2,
"position": 1506
}
}
},
{
"format": "java",
"lines": 11,
"fragment": ")\n .anyTimes();\n\n EasyMock.replay(bitmapMocked);\n Assertions.assertThatThrownBy(() -> mainRenderer.copyGlFrameBufferToBitmap(\n ConfigResolution.Builder.Companion.create().build(),\n ConfigResolution.Builder.Companion.create().build()\n ))\n .as(\"The call to MainRenderer#copyGlFrameBufferToBitmap method\")\n .isInstanceOf(IllegalArgumentException.class);\n }",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 385,
"end": 395,
"startLoc": {
"line": 385,
"column": 2,
"position": 3289
},
"endLoc": {
"line": 395,
"column": 2,
"position": 3377
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 365,
"end": 376,
"startLoc": {
"line": 365,
"column": 2,
"position": 3120
},
"endLoc": {
"line": 376,
"column": 26,
"position": 3209
}
}
},
{
"format": "java",
"lines": 9,
"fragment": ");\n EasyMock.expect(bitmapMocked.isRecycled())\n .andReturn(false)\n .anyTimes();\n EasyMock.expect(bitmapMocked.getWidth())\n .andReturn(1)\n .anyTimes();\n EasyMock.expect(bitmapMocked.getHeight())\n .andReturn(1",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 405,
"end": 413,
"startLoc": {
"line": 405,
"column": 6,
"position": 3421
},
"endLoc": {
"line": 413,
"column": 2,
"position": 3492
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 189,
"end": 197,
"startLoc": {
"line": 189,
"column": 13,
"position": 1561
},
"endLoc": {
"line": 197,
"column": 2,
"position": 1632
}
}
},
{
"format": "java",
"lines": 11,
"fragment": ")\n .anyTimes();\n EasyMock.expect(bitmapMocked.getWidth())\n .andReturn(1)\n .anyTimes();\n EasyMock.expect(bitmapMocked.getHeight())\n .andReturn(1)\n .anyTimes();\n EasyMock.replay(bitmapMocked);\n PowerMock.mockStatic(Bitmap.class);\n try",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 407,
"end": 417,
"startLoc": {
"line": 407,
"column": 6,
"position": 3441
},
"endLoc": {
"line": 417,
"column": 4,
"position": 3523
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainRendererTest.java",
"start": 153,
"end": 164,
"startLoc": {
"line": 153,
"column": 5,
"position": 1272
},
"endLoc": {
"line": 164,
"column": 9,
"position": 1355
}
}
},
{
"format": "java",
"lines": 9,
"fragment": ";\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.powermock.api.easymock.PowerMock;\nimport org.powermock.core.classloader.annotations.PrepareOnlyThisForTest;\nimport org.powermock.modules.junit4.PowerMockRunner;\nimport org.springframework.test.util.ReflectionTestUtils;\n\nimport java.io",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainActivityTest.java",
"start": 19,
"end": 27,
"startLoc": {
"line": 19,
"column": 7,
"position": 151
},
"endLoc": {
"line": 27,
"column": 3,
"position": 232
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/utils/UtilsShaderTest.java",
"start": 6,
"end": 16,
"startLoc": {
"line": 6,
"column": 9,
"position": 40
},
"endLoc": {
"line": 16,
"column": 5,
"position": 139
}
}
},
{
"format": "java",
"lines": 9,
"fragment": ", \"MobileRT\", \"WavefrontOBJs\", \"CornellBox\", \"CornellBox-Water.obj\"))\n .anyTimes();\n EasyMock.expect(uriMocked.getPath())\n .andReturn(pathToOBJFile)\n .anyTimes();\n EasyMock.expect(intentMocked.getData())\n .andReturn(uriMocked)\n .anyTimes();\n final",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainActivityTest.java",
"start": 219,
"end": 227,
"startLoc": {
"line": 219,
"column": 9,
"position": 1707
},
"endLoc": {
"line": 227,
"column": 6,
"position": 1782
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainActivityTest.java",
"start": 176,
"end": 184,
"startLoc": {
"line": 176,
"column": 6,
"position": 1314
},
"endLoc": {
"line": 184,
"column": 9,
"position": 1389
}
}
},
{
"format": "java",
"lines": 11,
"fragment": ")\n .anyTimes();\n EasyMock.replay(intentMocked, uriMocked);\n\n PowerMock.mockStatic(UtilsContext.class);\n EasyMock.expect(UtilsContext.getInternalStoragePath(EasyMock.anyObject(Context.class)))\n .andReturn(pathToInternalStorage)\n .anyTimes();\n PowerMock.mockStatic(Environment.class);\n EasyMock.expect(Environment.getExternalStorageDirectory())\n .andReturn(new File(\"/mockedSDCard\"",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainActivityTest.java",
"start": 229,
"end": 239,
"startLoc": {
"line": 229,
"column": 9,
"position": 1850
},
"endLoc": {
"line": 239,
"column": 16,
"position": 1948
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainActivityTest.java",
"start": 182,
"end": 193,
"startLoc": {
"line": 182,
"column": 10,
"position": 1379
},
"endLoc": {
"line": 193,
"column": 3,
"position": 1478
}
}
},
{
"format": "java",
"lines": 16,
"fragment": "))\n .anyTimes();\n PowerMock.replayAll();\n\n Assertions.assertThat((String) ReflectionTestUtils.getField(this.targetMainActivityMocked, \"sceneFilePath\"))\n .as(\"The 'MainActivity#sceneFilePath' field\")\n .isNull();\n\n final int openFileRequestCode = (int) Objects.requireNonNull(ReflectionTestUtils.getField(MainActivity.class, \"OPEN_FILE_REQUEST_CODE\"));\n this.targetMainActivityMocked.onActivityResult(openFileRequestCode, Activity.RESULT_OK, intentMocked);\n\n Assertions.assertThat((String) ReflectionTestUtils.getField(this.targetMainActivityMocked, \"sceneFilePath\"))\n .as(\"The 'MainActivity#sceneFilePath' field\")\n .isEqualTo(pathToOBJFile);\n }\n}",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainActivityTest.java",
"start": 239,
"end": 254,
"startLoc": {
"line": 239,
"column": 16,
"position": 1949
},
"endLoc": {
"line": 254,
"column": 2,
"position": 2096
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MainActivityTest.java",
"start": 193,
"end": 212,
"startLoc": {
"line": 193,
"column": 3,
"position": 1479
},
"endLoc": {
"line": 212,
"column": 8,
"position": 1628
}
}
},
{
"format": "java",
"lines": 9,
"fragment": ";\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.powermock.api.support.membermodification.MemberModifier;\nimport org.powermock.core.classloader.annotations.PrepareOnlyThisForTest;\nimport org.powermock.modules.junit4.PowerMockRunner;\nimport org.springframework.test.util.ReflectionTestUtils;\n\nimport java.util",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/DrawViewTest.java",
"start": 17,
"end": 25,
"startLoc": {
"line": 17,
"column": 9,
"position": 139
},
"endLoc": {
"line": 25,
"column": 5,
"position": 222
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/MyEglContextFactoryTest.java",
"start": 11,
"end": 21,
"startLoc": {
"line": 11,
"column": 9,
"position": 77
},
"endLoc": {
"line": 21,
"column": 4,
"position": 178
}
}
},
{
"format": "java",
"lines": 11,
"fragment": "() {\n MemberModifier.suppress(MemberModifier.method(MainActivity.class, \"resetErrno\"));\n MemberModifier.suppress(MemberModifier.method(MainRenderer.class, \"setBitmap\"));\n\n final DrawView drawViewMocked = EasyMock.partialMockBuilder(DrawView.class)\n .withConstructor(Context.class)\n .withArgs(new MainActivity())\n .addMockedMethod(\"getContext\")\n .createMock();\n\n final TextView",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/DrawViewTest.java",
"start": 120,
"end": 130,
"startLoc": {
"line": 120,
"column": 30,
"position": 922
},
"endLoc": {
"line": 130,
"column": 9,
"position": 1022
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/DrawViewTest.java",
"start": 89,
"end": 99,
"startLoc": {
"line": 89,
"column": 23,
"position": 666
},
"endLoc": {
"line": 99,
"column": 15,
"position": 766
}
}
},
{
"format": "java",
"lines": 11,
"fragment": " TimeoutException {\n MemberModifier.suppress(MemberModifier.method(MainActivity.class, \"resetErrno\"));\n MemberModifier.suppress(MemberModifier.method(MainRenderer.class, \"setBitmap\"));\n\n final DrawView drawViewMocked = EasyMock.partialMockBuilder(DrawView.class)\n .withConstructor(Context.class)\n .withArgs(new MainActivity())\n .addMockedMethod(\"getContext\")\n .createMock();\n\n ",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/DrawViewTest.java",
"start": 232,
"end": 242,
"startLoc": {
"line": 232,
"column": 2,
"position": 1942
},
"endLoc": {
"line": 242,
"column": 7,
"position": 2039
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/DrawViewTest.java",
"start": 89,
"end": 99,
"startLoc": {
"line": 89,
"column": 2,
"position": 669
},
"endLoc": {
"line": 99,
"column": 15,
"position": 766
}
}
},
{
"format": "java",
"lines": 9,
"fragment": "id testOnWindowFocusChanged() {\n MemberModifier.suppress(MemberModifier.method(MainActivity.class, \"resetErrno\"));\n MemberModifier.suppress(MemberModifier.method(MainRenderer.class, \"setBitmap\"));\n\n final DrawView drawViewMocked = EasyMock.partialMockBuilder(DrawView.class)\n .withConstructor(Context.class)\n .withArgs(new MainActivity())\n .addMockedMethod(\"getContext\")\n ",
"tokens": 0,
"firstFile": {
"name": "app/src/test/java/puscas/mobilertapp/DrawViewTest.java",
"start": 261,
"end": 269,
"startLoc": {
"line": 261,
"column": 25,
"position": 2168
},
"endLoc": {
"line": 269,
"column": 16,
"position": 2259
}
},
"secondFile": {
"name": "app/src/test/java/puscas/mobilertapp/DrawViewTest.java",
"start": 89,
"end": 97,
"startLoc": {
"line": 89,
"column": 23,
"position": 666
},
"endLoc": {
"line": 97,
"column": 11,
"position": 757
}
}
},
{
"format": "java",
"lines": 10,
"fragment": ";\n\nimport java.util.logging.Logger;\n\nimport javax.microedition.khronos.egl.EGL10;\nimport javax.microedition.khronos.egl.EGLConfig;\nimport javax.microedition.khronos.egl.EGLContext;\nimport javax.microedition.khronos.egl.EGLDisplay;\n\nimport java8.util.Objects",
"tokens": 0,
"firstFile": {
"name": "app/src/main/java/puscas/mobilertapp/MyEglContextFactory.java",
"start": 7,
"end": 16,
"startLoc": {
"line": 7,
"column": 9,
"position": 43
},
"endLoc": {
"line": 16,
"column": 8,
"position": 117
}
},
"secondFile": {
"name": "app/src/main/java/puscas/mobilertapp/utils/UtilsGL.java",
"start": 6,
"end": 15,
"startLoc": {
"line": 6,
"column": 8,
"position": 36
},
"endLoc": {
"line": 15,
"column": 9,
"position": 110
}
}
},
{
"format": "java",
"lines": 15,
"fragment": "teBuffer(this.verticesTexture);\n this.floatBufferTexture = UtilsBuffer.allocateBuffer(this.texCoords);\n\n // Bind Attributes\n final ConfigGlAttribute.Builder builderVerticesAttribute = ConfigGlAttribute.Builder.Companion.create();\n builderVerticesAttribute.setAttributeName(VERTEX_POSITION);\n builderVerticesAttribute.setBuffer(this.floatBufferVertices);\n builderVerticesAttribute.setAttributeLocation(0);\n builderVerticesAttribute.setComponentsInBuffer(VERTEX_COMPONENTS);\n UtilsShader.connectOpenGlAttribute(this.shaderProgram, builderVerticesAttribute.build());\n\n final ConfigGlAttribute.Builder builderTextureAttribute = ConfigGlAttribute.Builder.Companion.create();\n builderTextureAttribute.setAttributeName(VERTEX_TEX_COORD);\n builderTextureAttribute.setBuffer(this.floatBufferTexture);\n builderTextureAttribute.setAttributeLocation(1);\n builderTextureAttribute.setCompone",
"tokens": 0,
"firstFile": {
"name": "app/src/main/java/puscas/mobilertapp/MainRenderer.java",
"start": 907,
"end": 921,
"startLoc": {
"line": 907,
"column": 9,
"position": 5589
},
"endLoc": {
"line": 921,
"column": 8,
"position": 5747
}
},
"secondFile": {
"name": "app/src/main/java/puscas/mobilertapp/MainRenderer.java",
"start": 845,
"end": 859,
"startLoc": {
"line": 845,
"column": 9,
"position": 5015
},
"endLoc": {
"line": 859,
"column": 6,
"position": 5173
}
}
},
{
"format": "java",
"lines": 6,
"fragment": "Millis);\n if (this.viewId == R.id.preview) {\n final CheckBox checkbox = view.findViewById(this.viewId);\n value = checkbox.isChecked();\n }\n } while (this.expectedValue != null && !Objects.equals(value, this.expectedVal",
"tokens": 0,
"firstFile": {
"name": "app/src/androidTest/java/puscas/mobilertapp/ViewActionWait.java",
"start": 92,
"end": 97,
"startLoc": {
"line": 92,
"column": 12,
"position": 584
},
"endLoc": {
"line": 97,
"column": 3,
"position": 669
}
},
"secondFile": {
"name": "app/src/androidTest/java/puscas/mobilertapp/ViewActionWait.java",
"start": 83,
"end": 88,
"startLoc": {
"line": 83,
"column": 2,
"position": 455
},
"endLoc": {
"line": 88,
"column": 2,
"position": 539
}
}
},
{
"format": "java",
"lines": 11,
"fragment": ");\n\n ViewActionWait.waitForButtonUpdate(0);\n Espresso.onView(ViewMatchers.withId(R.id.preview))\n .inRoot(RootMatchers.isTouchable())\n .check((view, exception) -> {\n UtilsT.rethrowException(exception);\n UiTest.assertPreviewCheckBox(view, true);\n });\n ViewActionWait.waitForButtonUpdate(0);\n UtilsContextT.resetPickerValues(Scene.SPHERES",
"tokens": 0,
"firstFile": {
"name": "app/src/androidTest/java/puscas/mobilertapp/PreviewTest.java",
"start": 77,
"end": 87,
"startLoc": {
"line": 77,
"column": 43,
"position": 542
},
"endLoc": {
"line": 87,
"column": 8,
"position": 641
}
},
"secondFile": {
"name": "app/src/androidTest/java/puscas/mobilertapp/PreviewTest.java",
"start": 42,
"end": 52,
"startLoc": {
"line": 42,
"column": 42,
"position": 260
},
"endLoc": {
"line": 52,
"column": 8,
"position": 359
}
}
},
{
"format": "java",
"lines": 6,
"fragment": ");\n Espresso.onView(ViewMatchers.withId(R.id.drawLayout))\n .inRoot(RootMatchers.isTouchable())\n .perform(new ViewActionWait<>(0, R.id.drawLayout))\n .check((view, exception) -> {\n UtilsT",
"tokens": 0,
"firstFile": {
"name": "app/src/androidTest/java/puscas/mobilertapp/PreviewTest.java",
"start": 92,
"end": 97,
"startLoc": {
"line": 92,
"column": 5,
"position": 713
},
"endLoc": {
"line": 97,
"column": 7,
"position": 782
}
},
"secondFile": {
"name": "app/src/androidTest/java/puscas/mobilertapp/utils/UtilsT.java",
"start": 160,
"end": 165,
"startLoc": {
"line": 160,
"column": 2,
"position": 1041
},
"endLoc": {
"line": 165,
"column": 17,
"position": 1110
}
}
},
{
"format": "java",
"lines": 14,
"fragment": ");\n Espresso.onView(ViewMatchers.withId(R.id.drawLayout))\n .inRoot(RootMatchers.isTouchable())\n .perform(new ViewActionWait<>(0, R.id.drawLayout))\n .check((view, exception) -> {\n UtilsT.rethrowException(exception);\n // TODO: Fix bitmap losing rendered pixels.\n final DrawView drawView = (DrawView) view;\n final MainRenderer renderer = drawView.getRenderer();\n final Bitmap bitmap = UtilsT.getPrivateField(renderer, \"bitmap\");\n UtilsT.assertRayTracingResultInBitmap(bitmap, false);\n });\n ViewActionWait.waitForButtonUpdate(0);\n UtilsContextT",
"tokens": 0,
"firstFile": {
"name": "app/src/androidTest/java/puscas/mobilertapp/PreviewTest.java",
"start": 106,
"end": 119,
"startLoc": {
"line": 106,
"column": 2,
"position": 877
},
"endLoc": {
"line": 119,
"column": 14,
"position": 1036
}
},
"secondFile": {
"name": "app/src/androidTest/java/puscas/mobilertapp/utils/UtilsT.java",
"start": 160,
"end": 106,
"startLoc": {
"line": 160,
"column": 2,
"position": 1041
},
"endLoc": {
"line": 106,
"column": 7,
"position": 873
}
}
},
{
"format": "java",
"lines": 9,
"fragment": ";\n\nimport puscas.mobilertapp.constants.Accelerator;\nimport puscas.mobilertapp.constants.Constants;\nimport puscas.mobilertapp.constants.ConstantsUI;\nimport puscas.mobilertapp.constants.Scene;\nimport puscas.mobilertapp.constants.Shader;\nimport puscas.mobilertapp.constants.State;\nimport puscas.mobilertapp.exceptions",
"tokens": 0,
"firstFile": {
"name": "app/src/androidTest/java/puscas/mobilertapp/AbstractTest.java",
"start": 61,
"end": 69,
"startLoc": {
"line": 61,
"column": 7,
"position": 567
},
"endLoc": {
"line": 69,
"column": 11,
"position": 642
}
},
"secondFile": {
"name": "app/src/androidTest/java/puscas/mobilertapp/UiTest.java",
"start": 28,
"end": 35,
"startLoc": {
"line": 28,
"column": 11,
"position": 224
},
"endLoc": {
"line": 35,
"column": 6,
"position": 298
}
}
},
{
"format": "java",
"lines": 7,
"fragment": ";\nimport puscas.mobilertapp.constants.ConstantsUI;\nimport puscas.mobilertapp.constants.Scene;\nimport puscas.mobilertapp.constants.Shader;\nimport puscas.mobilertapp.constants.State;\nimport puscas.mobilertapp.exceptions.FailureException;\nimport puscas.mobilertapp.utils.UtilsContext",
"tokens": 0,
"firstFile": {
"name": "app/src/androidTest/java/puscas/mobilertapp/AbstractTest.java",
"start": 64,
"end": 70,
"startLoc": {
"line": 64,
"column": 10,
"position": 590
},
"endLoc": {
"line": 70,
"column": 13,
"position": 655
}
},
"secondFile": {
"name": "app/src/main/java/puscas/mobilertapp/MainActivity.java",
"start": 55,
"end": 61,
"startLoc": {
"line": 55,
"column": 15,
"position": 483
},
"endLoc": {
"line": 61,
"column": 6,
"position": 548
}
}
},
{
"format": "cpp",
"lines": 8,
"fragment": "icsView->resize(m_config.width + 2, m_config.height + 2);\n}\n\nvoid MainWindow::setImage(const ::MobileRT::Config &config, const bool async) {\n m_async = async;\n m_config = config;\n\n LOG_DEBUG(\"width = \", m_config.width);\n LOG_DEBUG(\"height = \", m_config.height);\n LOG_DEBUG(\"async ",
"tokens": 0,
"firstFile": {
"name": "app/System_dependent/Native/Qt/MobileRT/mainwindow.cpp",
"start": 78,
"end": 85,
"startLoc": {
"line": 78,
"column": 8,
"position": 646
},
"endLoc": {
"line": 85,
"column": 10,
"position": 742
}
},
"secondFile": {
"name": "app/System_dependent/Native/Qt/MobileRT/mainwindow.cpp",
"start": 53,
"end": 60,
"startLoc": {
"line": 53,
"column": 2,
"position": 331
},
"endLoc": {
"line": 60,
"column": 3,
"position": 427
}
}
},
{
"format": "cpp",
"lines": 13,
"fragment": "(m_config.height)};\n LOG_DEBUG(\"width = \", m_config.width);\n LOG_DEBUG(\"height = \", m_config.height);\n m_config.bitmap = ::std::vector<::std::int32_t> (size);\n\n LOG_DEBUG(\"obj = \", m_config.objFilePath);\n LOG_DEBUG(\"mtl = \", m_config.mtlFilePath);\n LOG_DEBUG(\"cam = \", m_config.camFilePath);\n\n RayTrace(m_config",
"tokens": 0,
"firstFile": {
"name": "app/System_dependent/Native/Qt/MobileRT/mainwindow.cpp",
"start": 87,
"end": 99,
"startLoc": {
"line": 87,
"column": 12,
"position": 774
},
"endLoc": {
"line": 99,
"column": 14,
"position": 899
}
},
"secondFile": {
"name": "app/System_dependent/Native/Qt/MobileRT/mainwindow.cpp",
"start": 60,
"end": 72,
"startLoc": {
"line": 60,
"column": 2,
"position": 451
},
"endLoc": {
"line": 72,
"column": 9,
"position": 576
}
}
},
{
"format": "cpp",
"lines": 11,
"fragment": "SceneWithWhitted start\");\n\n config.sceneIndex = -1; // OBJ\n config.shader = 1; // Whitted\n config.accelerator = ::MobileRT::Shader::Accelerator::ACC_BVH;\n\n config.objFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.obj\"};\n config.mtlFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.mtl\"};\n config.camFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.cam\"};\n\n ASSERT_TRUE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholders::_1, config.bitmap.front())));\n RayTrace(config, false);\n ASSERT_FALSE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholde",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/engine/ShaderTestEngine.cpp",
"start": 58,
"end": 68,
"startLoc": {
"line": 58,
"column": 5,
"position": 604
},
"endLoc": {
"line": 68,
"column": 33,
"position": 816
}
},
"secondFile": {
"name": "app/Unit_Testing/engine/ShaderTestEngine.cpp",
"start": 40,
"end": 50,
"startLoc": {
"line": 40,
"column": 5,
"position": 338
},
"endLoc": {
"line": 50,
"column": 35,
"position": 550
}
}
},
{
"format": "cpp",
"lines": 11,
"fragment": "hPathTracing start\");\n\n config.sceneIndex = -1; // OBJ\n config.shader = 2; // PathTracing\n config.accelerator = ::MobileRT::Shader::Accelerator::ACC_BVH;\n\n config.objFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.obj\"};\n config.mtlFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.mtl\"};\n config.camFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.cam\"};\n\n ASSERT_TRUE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholders::_1, config.bitmap.front())));\n RayTrace(config, false);\n ASSERT_FALSE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholders::",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/engine/ShaderTestEngine.cpp",
"start": 76,
"end": 86,
"startLoc": {
"line": 76,
"column": 5,
"position": 870
},
"endLoc": {
"line": 86,
"column": 37,
"position": 1082
}
},
"secondFile": {
"name": "app/Unit_Testing/engine/ShaderTestEngine.cpp",
"start": 40,
"end": 50,
"startLoc": {
"line": 40,
"column": 5,
"position": 338
},
"endLoc": {
"line": 50,
"column": 35,
"position": 550
}
}
},
{
"format": "cpp",
"lines": 11,
"fragment": "eneWithDepthMap start\");\n\n config.sceneIndex = -1; // OBJ\n config.shader = 3; // DepthMap\n config.accelerator = ::MobileRT::Shader::Accelerator::ACC_BVH;\n\n config.objFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.obj\"};\n config.mtlFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.mtl\"};\n config.camFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.cam\"};\n\n ASSERT_TRUE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholders::_1, config.bitmap.front())));\n RayTrace(config, false);\n ASSERT_FALSE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholder",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/engine/ShaderTestEngine.cpp",
"start": 94,
"end": 104,
"startLoc": {
"line": 94,
"column": 5,
"position": 1136
},
"endLoc": {
"line": 104,
"column": 34,
"position": 1348
}
},
"secondFile": {
"name": "app/Unit_Testing/engine/ShaderTestEngine.cpp",
"start": 40,
"end": 50,
"startLoc": {
"line": 40,
"column": 5,
"position": 338
},
"endLoc": {
"line": 50,
"column": 35,
"position": 550
}
}
},
{
"format": "cpp",
"lines": 11,
"fragment": "hDiffuse start\");\n\n config.sceneIndex = -1; // OBJ\n config.shader = 4; // DiffuseMaterial\n config.accelerator = ::MobileRT::Shader::Accelerator::ACC_BVH;\n\n config.objFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.obj\"};\n config.mtlFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.mtl\"};\n config.camFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.cam\"};\n\n ASSERT_TRUE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholders::_1, config.bitmap.front())));\n RayTrace(config, false);\n ASSERT_FALSE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholde",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/engine/ShaderTestEngine.cpp",
"start": 112,
"end": 122,
"startLoc": {
"line": 112,
"column": 5,
"position": 1402
},
"endLoc": {
"line": 122,
"column": 33,
"position": 1614
}
},
"secondFile": {
"name": "app/Unit_Testing/engine/ShaderTestEngine.cpp",
"start": 40,
"end": 50,
"startLoc": {
"line": 40,
"column": 5,
"position": 338
},
"endLoc": {
"line": 50,
"column": 35,
"position": 550
}
}
},
{
"format": "cpp",
"lines": 13,
"fragment": "d SetUp () final {\n config.width = 30;\n config.height = 30;\n config.threads = 3;\n config.samplesPixel = 1;\n config.samplesLight = 1;\n config.repeats = 1;\n config.printStdOut = true;\n config.objFilePath = ::std::string {\"\"};\n config.mtlFilePath = ::std::string {\"\"};\n config.camFilePath = ::std::string {\"\"};\n const ::std::uint32_t size {static_cast<::std::uint32_t> (config.width) * static_cast<::std::uint32_t> (config.height)}",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/engine/CameraTestEngine.cpp",
"start": 13,
"end": 25,
"startLoc": {
"line": 13,
"column": 2,
"position": 75
},
"endLoc": {
"line": 25,
"column": 9,
"position": 246
}
},
"secondFile": {
"name": "app/Unit_Testing/engine/ShaderTestEngine.cpp",
"start": 14,
"end": 26,
"startLoc": {
"line": 14,
"column": 2,
"position": 85
},
"endLoc": {
"line": 26,
"column": 6,
"position": 256
}
}
},
{
"format": "cpp",
"lines": 7,
"fragment": "\n config.shader = 1; // Whitted\n config.accelerator = ::MobileRT::Shader::Accelerator::ACC_BVH;\n\n ASSERT_TRUE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholders::_1, config.bitmap.front())));\n RayTrace(config, false);\n ASSERT_FALSE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholders::_",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/engine/CameraTestEngine.cpp",
"start": 39,
"end": 45,
"startLoc": {
"line": 39,
"column": 8,
"position": 341
},
"endLoc": {
"line": 45,
"column": 38,
"position": 487
}
},
"secondFile": {
"name": "app/Unit_Testing/engine/ShaderTestEngine.cpp",
"start": 44,
"end": 50,
"startLoc": {
"line": 44,
"column": 2,
"position": 404
},
"endLoc": {
"line": 50,
"column": 35,
"position": 550
}
}
},
{
"format": "cpp",
"lines": 8,
"fragment": "kSystemError(\"testRenderSceneWithPerspective start\");\n\n config.sceneIndex = 0; // CornellBox\n config.shader = 1; // Whitted\n config.accelerator = ::MobileRT::Shader::Accelerator::ACC_BVH;\n\n ASSERT_TRUE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholders::_1, config.bitmap.front())));\n RayTrace(config, false);\n ASSERT_FALSE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholders::",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/engine/CameraTestEngine.cpp",
"start": 52,
"end": 59,
"startLoc": {
"line": 52,
"column": 5,
"position": 528
},
"endLoc": {
"line": 59,
"column": 37,
"position": 700
}
},
"secondFile": {
"name": "app/Unit_Testing/engine/CameraTestEngine.cpp",
"start": 38,
"end": 50,
"startLoc": {
"line": 38,
"column": 5,
"position": 315
},
"endLoc": {
"line": 50,
"column": 35,
"position": 550
}
}
},
{
"format": "cpp",
"lines": 23,
"fragment": "/C_wrapper.h\"\n#include <gtest/gtest.h>\n\n#include \"MobileRT/Shader.hpp\"\n\nclass AcceleratorTestEngine : public testing::Test {\nprotected:\n ::MobileRT::Config config {};\n\n void SetUp () final {\n config.width = 30;\n config.height = 30;\n config.threads = 3;\n config.samplesPixel = 1;\n config.samplesLight = 1;\n config.repeats = 1;\n config.printStdOut = true;\n config.objFilePath = ::std::string {\"\"};\n config.mtlFilePath = ::std::string {\"\"};\n config.camFilePath = ::std::string {\"\"};\n const ::std::uint32_t size {static_cast<::std::uint32_t> (config.width) * static_cast<::std::uint32_t> (config.height)};\n config.bitmap = ::std::vec",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/engine/AcceleratorTestEngine.cpp",
"start": 6,
"end": 28,
"startLoc": {
"line": 6,
"column": 2,
"position": 9
},
"endLoc": {
"line": 28,
"column": 22,
"position": 256
}
},
"secondFile": {
"name": "app/Unit_Testing/engine/CameraTestEngine.cpp",
"start": 6,
"end": 28,
"startLoc": {
"line": 6,
"column": 2,
"position": 9
},
"endLoc": {
"line": 28,
"column": 17,
"position": 256
}
}
},
{
"format": "cpp",
"lines": 11,
"fragment": " config.shader = 1; // Whitted\n config.accelerator = ::MobileRT::Shader::Accelerator::ACC_NAIVE;\n\n config.objFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.obj\"};\n config.mtlFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.mtl\"};\n config.camFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.cam\"};\n\n ASSERT_TRUE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholders::_1, config.bitmap.front())));\n RayTrace(config, false);\n ASSERT_FALSE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placehol",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/engine/AcceleratorTestEngine.cpp",
"start": 39,
"end": 49,
"startLoc": {
"line": 39,
"column": 10,
"position": 342
},
"endLoc": {
"line": 49,
"column": 31,
"position": 540
}
},
"secondFile": {
"name": "app/Unit_Testing/engine/ShaderTestEngine.cpp",
"start": 40,
"end": 50,
"startLoc": {
"line": 40,
"column": 8,
"position": 352
},
"endLoc": {
"line": 50,
"column": 35,
"position": 550
}
}
},
{
"format": "cpp",
"lines": 11,
"fragment": "ig.shader = 1; // Whitted\n config.accelerator = ::MobileRT::Shader::Accelerator::ACC_REGULAR_GRID;\n\n config.objFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.obj\"};\n config.mtlFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.mtl\"};\n config.camFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.cam\"};\n\n ASSERT_TRUE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholders::_1, config.bitmap.front())));\n RayTrace(config, false);\n ASSERT_FALSE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholders::",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/engine/AcceleratorTestEngine.cpp",
"start": 56,
"end": 66,
"startLoc": {
"line": 56,
"column": 17,
"position": 607
},
"endLoc": {
"line": 66,
"column": 37,
"position": 805
}
},
"secondFile": {
"name": "app/Unit_Testing/engine/ShaderTestEngine.cpp",
"start": 40,
"end": 50,
"startLoc": {
"line": 40,
"column": 8,
"position": 352
},
"endLoc": {
"line": 50,
"column": 35,
"position": 550
}
}
},
{
"format": "cpp",
"lines": 14,
"fragment": "estEngine, testRenderSceneWithBVH) {\n ::MobileRT::checkSystemError(\"testRenderSceneWithBVH start\");\n config.sceneIndex = -1; // OBJ\n config.shader = 1; // Whitted\n config.accelerator = ::MobileRT::Shader::Accelerator::ACC_BVH;\n\n config.objFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.obj\"};\n config.mtlFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.mtl\"};\n config.camFilePath = ::std::string {\"./app/src/androidTest/resources/CornellBox/CornellBox-Water.cam\"};\n\n ASSERT_TRUE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeholders::_1, config.bitmap.front())));\n RayTrace(config, false);\n ASSERT_FALSE(::std::all_of(config.bitmap.begin()+1, config.bitmap.end(), ::std::bind(std::equal_to<int>(), ::std::placeh",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/engine/AcceleratorTestEngine.cpp",
"start": 70,
"end": 83,
"startLoc": {
"line": 70,
"column": 31,
"position": 829
},
"endLoc": {
"line": 83,
"column": 29,
"position": 1070
}
},
"secondFile": {
"name": "app/Unit_Testing/engine/ShaderTestEngine.cpp",
"start": 54,
"end": 50,
"startLoc": {
"line": 54,
"column": 35,
"position": 574
},
"endLoc": {
"line": 50,
"column": 35,
"position": 550
}
}
},
{
"format": "cpp-header",
"lines": 12,
"fragment": "oordC () const;\n\n ::std::int32_t getMaterialIndex () const;\n\n friend ::std::ostream& operator << (::std::ostream &os, const Triangle& triangle);\n\n class Builder final {\n private:\n ::glm::vec3 AC_ {};\n ::glm::vec3 AB_ {};\n ::glm::vec3 pointA_ {};\n ::glm::vec3 normalA_ {};\n ::glm::vec3 normalB_ {};\n ::glm::vec3 norm",
"tokens": 0,
"firstFile": {
"name": "app/MobileRT/Shapes/Triangle.hpp",
"start": 78,
"end": 89,
"startLoc": {
"line": 78,
"column": 9,
"position": 560
},
"endLoc": {
"line": 89,
"column": 7,
"position": 692
}
},
"secondFile": {
"name": "app/MobileRT/Shapes/Triangle.hpp",
"start": 17,
"end": 29,
"startLoc": {
"line": 17,
"column": 5,
"position": 38
},
"endLoc": {
"line": 29,
"column": 8,
"position": 171
}
}
},
{
"format": "cpp-header",
"lines": 7,
"fragment": " }\n tmax[2] = (tmax[2] + tdelta[2]);\n }\n }\n\n }\n testloop:\n while (true) {\n\n // Get the primitives in the cell.\n const ::std::int32_t index {getCellIndex(cellX, cellY, cellZ)};\n const auto itPrimitives {this->grid_.begin() + index};\n ",
"tokens": 0,
"firstFile": {
"name": "app/MobileRT/Accelerators/RegularGrid.hpp",
"start": 464,
"end": 470,
"startLoc": {
"line": 464,
"column": 13,
"position": 4828
},
"endLoc": {
"line": 470,
"column": 13,
"position": 4915
}
},
"secondFile": {
"name": "app/MobileRT/Accelerators/RegularGrid.hpp",
"start": 413,
"end": 419,
"startLoc": {
"line": 413,
"column": 13,
"position": 4339
},
"endLoc": {
"line": 419,
"column": 6,
"position": 4426
}
}
},
{
"format": "cpp-header",
"lines": 13,
"fragment": " break;\n }\n cellY += stepY;\n if (cellY == outY) {\n break;\n }\n tmax[1] = (tmax[1] + tdelta[1]);\n } else {\n if (intersection.length_ < tmax[2]) {\n break;\n }\n ",
"tokens": 0,
"firstFile": {
"name": "app/MobileRT/Accelerators/RegularGrid.hpp",
"start": 501,
"end": 513,
"startLoc": {
"line": 501,
"column": 2,
"position": 5232
},
"endLoc": {
"line": 513,
"column": 2,
"position": 5327
}
},
"secondFile": {
"name": "app/MobileRT/Accelerators/RegularGrid.hpp",
"start": 481,
"end": 492,
"startLoc": {
"line": 481,
"column": 2,
"position": 5042
},
"endLoc": {
"line": 492,
"column": 5,
"position": 5136
}
}
},
{
"format": "cpp",
"lines": 8,
"fragment": "ht = \", this->samplesLight_);\n}\n\n//pag 28 slides Monte Carlo\nbool PathTracer::shade(::glm::vec3 *const rgb, const Intersection &intersection) {\n const ::std::int32_t rayDepth {intersection.ray_.depth_};\n if (rayDepth > RayDepthMax) {\n return false;\n }\n\n const ::glm::vec3 &",
"tokens": 0,
"firstFile": {
"name": "app/Components/Shaders/PathTracer.cpp",
"start": 22,
"end": 29,
"startLoc": {
"line": 22,
"column": 11,
"position": 158
},
"endLoc": {
"line": 29,
"column": 39,
"position": 246
}
},
"secondFile": {
"name": "app/Components/Shaders/Whitted.cpp",
"start": 13,
"end": 20,
"startLoc": {
"line": 13,
"column": 8,
"position": 96
},
"endLoc": {
"line": 20,
"column": 39,
"position": 184
}
}
},
{
"format": "cpp",
"lines": 6,
"fragment": "onst ::glm::vec3 &lE {intersection.material_->Le_};\n const ::glm::vec3 &kD {intersection.material_->Kd_};\n const ::glm::vec3 &kS {intersection.material_->Ks_};\n const ::glm",
"tokens": 0,
"firstFile": {
"name": "app/Components/Shaders/DiffuseMaterial.cpp",
"start": 12,
"end": 17,
"startLoc": {
"line": 12,
"column": 4,
"position": 114
},
"endLoc": {
"line": 17,
"column": 3,
"position": 182
}
},
"secondFile": {
"name": "app/Components/Shaders/PathTracer.cpp",
"start": 37,
"end": 42,
"startLoc": {
"line": 37,
"column": 2,
"position": 326
},
"endLoc": {
"line": 42,
"column": 6,
"position": 394
}
}
},
{
"format": "cpp",
"lines": 8,
"fragment": "width, height, samples} {\n}\n\nfloat HaltonSeq::getSample(const ::std::uint32_t sample) {\n const ::std::uint32_t current {this->sample_.fetch_add(1, ::std::memory_order_relaxed)};\n if (current >= (this->domainSize_ * (sample + 1))) {\n this->sample_.fetch_sub(1, ::std::memory_order_relaxed);\n return 1.0F;\n }\n const ::std::uint32_t index {current - (sample * ",
"tokens": 0,
"firstFile": {
"name": "app/Components/Samplers/HaltonSeq.cpp",
"start": 10,
"end": 17,
"startLoc": {
"line": 10,
"column": 10,
"position": 69
},
"endLoc": {
"line": 17,
"column": 3,
"position": 204
}
},
"secondFile": {
"name": "app/Components/Samplers/Stratified.cpp",
"start": 10,
"end": 17,
"startLoc": {
"line": 10,
"column": 11,
"position": 69
},
"endLoc": {
"line": 17,
"column": 12,
"position": 204
}
}
},
{
"format": "cpp",
"lines": 7,
"fragment": "lm::vec3> OBJLoader::loadNormal(\n const ::tinyobj::shape_t &shape,\n const ::std::int32_t indexOffset,\n const triple<::glm::vec3, ::glm::vec3, ::glm::vec3> &vertex\n) const {\n const auto itIdx {shape.mesh.indices.cbegin() +",
"tokens": 0,
"firstFile": {
"name": "app/Components/Loaders/OBJLoader.cpp",
"start": 158,
"end": 164,
"startLoc": {
"line": 158,
"column": 1,
"position": 1698
},
"endLoc": {
"line": 164,
"column": 3,
"position": 1796
}
},
"secondFile": {
"name": "app/Components/Loaders/OBJLoader.cpp",
"start": 119,
"end": 126,
"startLoc": {
"line": 119,
"column": 1,
"position": 1150
},
"endLoc": {
"line": 126,
"column": 6,
"position": 1249
}
}
},
{
"format": "cpp",
"lines": 14,
"fragment": ">cend()) {// If the texture is not in the cache.\n const ::std::string texturePath {filePath + texPath};\n Texture &&texture {Texture::createTexture(texturePath)};\n ::std::pair<::std::string, Texture> &&pair {::std::make_pair(texPath, ::std::move(texture))};\n const Texture *res {nullptr};\n const ::std::pair<::std::unordered_map<::std::string, Texture>::iterator, bool> pairResult {texturesCache->emplace(::std::move(pair))}; // Add it to the cache.\n res = &(::std::get<0>(pairResu",
"tokens": 0,
"firstFile": {
"name": "app/Components/Loaders/OBJLoader.cpp",
"start": 262,
"end": 275,
"startLoc": {
"line": 262,
"column": 12,
"position": 2909
},
"endLoc": {
"line": 275,
"column": 4,
"position": 3066
}
},
"secondFile": {
"name": "app/Components/Loaders/OBJLoader.cpp",
"start": 233,
"end": 252,
"startLoc": {
"line": 233,
"column": 5,
"position": 2609
},
"endLoc": {
"line": 252,
"column": 4,
"position": 2766
}
}
},
{
"format": "cpp",
"lines": 15,
"fragment": "da(), triangle));\n }\n } else {\n // If it is a primitive.\n Triangle::Builder builder {\n Triangle::Builder(\n ::std::get<0> (vertices), ::std::get<1> (vertices), ::std::get<2> (vertices)\n )\n .withNormals(\n ::std::get<0>(normal),\n ::std::get<1>(normal),\n ::std::get<2>(normal)\n )\n .withTexCoords(\n ::std::get<0>(texCoor",
"tokens": 0,
"firstFile": {
"name": "app/Components/Loaders/OBJLoader.cpp",
"start": 390,
"end": 404,
"startLoc": {
"line": 390,
"column": 2,
"position": 4742
},
"endLoc": {
"line": 404,
"column": 2,
"position": 4885
}
},
"secondFile": {
"name": "app/Components/Loaders/OBJLoader.cpp",
"start": 369,
"end": 383,
"startLoc": {
"line": 369,
"column": 2,
"position": 4539
},
"endLoc": {
"line": 383,
"column": 2,
"position": 4682
}
}
},
{
"format": "cpp",
"lines": 10,
"fragment": " const ::glm::vec3 &emission {0.0F, 0.0F, 0.0F};\n Material material {diffuse, specular, transmittance, indexRefraction, emission};\n Triangle::Builder builder {\n Triangle::Builder(\n ::std::get<0> (vertices), ::std::get<1> (vertices), ::std::get<2> (vertices)\n )\n .withNormals(\n ",
"tokens": 0,
"firstFile": {
"name": "app/Components/Loaders/OBJLoader.cpp",
"start": 434,
"end": 443,
"startLoc": {
"line": 434,
"column": 21,
"position": 5320
},
"endLoc": {
"line": 443,
"column": 2,
"position": 5423
}
},
"secondFile": {
"name": "app/Components/Loaders/OBJLoader.cpp",
"start": 390,
"end": 378,
"startLoc": {
"line": 390,
"column": 25,
"position": 4736
},
"endLoc": {
"line": 378,
"column": 2,
"position": 4636
}
}
},
{
"format": "cpp",
"lines": 19,
"fragment": " .withNormals(\n ::std::get<0>(normal),\n ::std::get<1>(normal),\n ::std::get<2>(normal)\n )\n };\n ::std::int32_t materialIndex {-1};\n {\n const ::std::lock_guard<::std::mutex> lock {*mutex};\n const auto itFoundMat {::std::find(scene->materials_.begin(), scene->materials_.end(), material)};\n if (itFoundMat != scene->materials_.cend()) {\n // If the material is already in the scene.\n materialIndex = static_cast<::std::int32_t> (itFoundMat - scene->materials_.cbegin());\n } else {\n // If the scene doesn't have material yet.\n materialIndex = static_cast<::std::int32_t> (scene->materials_.size());\n scene->materials_.emplace_back(::std::move(material));\n }\n ",
"tokens": 0,
"firstFile": {
"name": "app/Components/Loaders/OBJLoader.cpp",
"start": 441,
"end": 459,
"startLoc": {
"line": 441,
"column": 7,
"position": 5417
},
"endLoc": {
"line": 459,
"column": 35,
"position": 5638
}
},
"secondFile": {
"name": "app/Components/Loaders/OBJLoader.cpp",
"start": 402,
"end": 421,
"startLoc": {
"line": 402,
"column": 9,
"position": 4879
},
"endLoc": {
"line": 421,
"column": 5,
"position": 5101
}
}
},
{
"format": "bash",
"lines": 12,
"fragment": "exitValue=1;\n return 1;\n fi\n\n expected=\"${1}\";\n actual=\"${2}\";\n message=\"${3}\";\n\n if [ \"${expected}\" != \"${actual}\" ]; then\n logError '[FAILED]';\n echo \"${message} | Expected '${expected}', but the actual value is '${actual}'\";\n export",
"tokens": 0,
"firstFile": {
"name": "scripts/test/helper_functions.sh",
"start": 140,
"end": 151,
"startLoc": {
"line": 140,
"column": 2,
"position": 564
},
"endLoc": {
"line": 151,
"column": 7,
"position": 643
}
},
"secondFile": {
"name": "scripts/test/utils/utils.sh",
"start": 82,
"end": 93,
"startLoc": {
"line": 82,
"column": 5,
"position": 276
},
"endLoc": {
"line": 93,
"column": 28,
"position": 355
}
}
},
{
"format": "bash",
"lines": 18,
"fragment": ";\n\n _clearEnvVariables;\n # Validate the help message returns the expected value.\n eval '$(${_functionName} -h > /dev/null)';\n returnValue=\"$?\";\n expected='1';\n assertEqual \"${expected}\" \"${returnValue}\" \"${_testName} -h\";\n\n _clearEnvVariables;\n # Validate the help message returns the expected value, when using the wrong parameter.\n eval '$(${_functionName} -z > /dev/null 2>&1)';\n returnValue=\"$?\";\n expected='1';\n assertEqual \"${expected}\" \"${returnValue}\" \"${_testName} ?\";\n}\n\n# Tests the parseArgumentsToTestAndroid function.",
"tokens": 0,
"firstFile": {
"name": "scripts/test/helper_functions.sh",
"start": 282,
"end": 299,
"startLoc": {
"line": 282,
"column": 5,
"position": 1644
},
"endLoc": {
"line": 299,
"column": 50,
"position": 1760
}
},
"secondFile": {
"name": "scripts/test/helper_functions.sh",
"start": 222,
"end": 239,
"startLoc": {
"line": 222,
"column": 5,
"position": 1123
},
"endLoc": {
"line": 239,
"column": 53,
"position": 1239
}
}
},
{
"format": "bash",
"lines": 19,
"fragment": ";\n assertEqual \"${expected}\" \"${cpu_architecture}\" \"${_testName} -f\";\n\n _clearEnvVariables;\n # Validate the help message returns the expected value.\n eval '$(${_functionName} -h > /dev/null)';\n returnValue=\"$?\";\n expected='1';\n assertEqual \"${expected}\" \"${returnValue}\" \"${_testName} -h\";\n\n _clearEnvVariables;\n # Validate the help message returns the expected value, when using the wrong parameter.\n eval '$(${_functionName} -z > /dev/null 2>&1)';\n returnValue=\"$?\";\n expected='1';\n assertEqual \"${expected}\" \"${returnValue}\" \"${_testName} ?\";\n}\n\n# Tests the parseArgumentsToCheck function.",
"tokens": 0,
"firstFile": {
"name": "scripts/test/helper_functions.sh",
"start": 333,
"end": 351,
"startLoc": {
"line": 333,
"column": 16,
"position": 2065
},
"endLoc": {
"line": 351,
"column": 44,
"position": 2197
}
},
"secondFile": {
"name": "scripts/test/helper_functions.sh",
"start": 281,
"end": 239,
"startLoc": {
"line": 281,
"column": 12,
"position": 1628
},
"endLoc": {
"line": 239,
"column": 53,
"position": 1239
}
}
},
{
"format": "bash",
"lines": 19,
"fragment": ";\n assertEqual \"${expected}\" \"${cpu_architecture}\" \"${_testName} -f\";\n\n _clearEnvVariables;\n # Validate the help message returns the expected value.\n eval '$(${_functionName} -h > /dev/null)';\n returnValue=\"$?\";\n expected='1';\n assertEqual \"${expected}\" \"${returnValue}\" \"${_testName} -h\";\n\n _clearEnvVariables;\n # Validate the help message returns the expected value, when using the wrong parameter.\n eval '$(${_functionName} -z > /dev/null 2>&1)';\n returnValue=\"$?\";\n expected='1';\n assertEqual \"${expected}\" \"${returnValue}\" \"${_testName} ?\";\n}\n\n# Tests the printCommandExitCode function.",
"tokens": 0,
"firstFile": {
"name": "scripts/test/helper_functions.sh",
"start": 361,
"end": 379,
"startLoc": {
"line": 361,
"column": 22,
"position": 2276
},
"endLoc": {
"line": 379,
"column": 43,
"position": 2408
}
},
"secondFile": {
"name": "scripts/test/helper_functions.sh",
"start": 281,
"end": 239,
"startLoc": {
"line": 281,
"column": 12,
"position": 1628
},
"endLoc": {
"line": 239,
"column": 53,
"position": 1239
}
}
},
{
"format": "cpp",
"lines": 6,
"fragment": "], ray.origin_[i]);\n }\n}\n\n/**\n * Tests the Ray id generator.\n */\nTEST_F(TestRay, TestId) {\n const ::glm::vec3 direction {::glm::vec3 {10.0F, 0.0F, 10.0F}};\n const ::glm::vec3 origin {::glm::vec3 {0.0F, 0.0F, 10.0F}};\n ",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/TestRay.cpp",
"start": 54,
"end": 59,
"startLoc": {
"line": 54,
"column": 7,
"position": 440
},
"endLoc": {
"line": 59,
"column": 5,
"position": 533
}
},
"secondFile": {
"name": "app/Unit_Testing/TestRay.cpp",
"start": 36,
"end": 41,
"startLoc": {
"line": 36,
"column": 16,
"position": 224
},
"endLoc": {
"line": 41,
"column": 4,
"position": 317
}
}
},
{
"format": "cpp",
"lines": 7,
"fragment": " copy constructor.\n */\nTEST_F(TestPlane, TestCopyConstructor) {\n const ::std::int32_t materialIndex {19};\n const ::glm::vec3 point {1, 2, 3};\n const ::glm::vec3 normal {4, 5, 6};\n const ::glm::vec3 normal2 {::glm::normalize(normal)};\n ",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/TestPlane.cpp",
"start": 86,
"end": 92,
"startLoc": {
"line": 86,
"column": 20,
"position": 729
},
"endLoc": {
"line": 92,
"column": 6,
"position": 830
}
},
"secondFile": {
"name": "app/Unit_Testing/TestPlane.cpp",
"start": 69,
"end": 76,
"startLoc": {
"line": 69,
"column": 16,
"position": 531
},
"endLoc": {
"line": 76,
"column": 10,
"position": 633
}
}
},
{
"format": "cpp",
"lines": 6,
"fragment": " move constructor.\n */\nTEST_F(TestPlane, TestMoveConstructor) {\n const ::std::int32_t materialIndex {19};\n const ::glm::vec3 point {1, 2, 3};\n const ::glm::vec3 normal {4, 5, 6};\n con",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/TestPlane.cpp",
"start": 104,
"end": 109,
"startLoc": {
"line": 104,
"column": 20,
"position": 939
},
"endLoc": {
"line": 109,
"column": 6,
"position": 1022
}
},
"secondFile": {
"name": "app/Unit_Testing/TestPlane.cpp",
"start": 69,
"end": 74,
"startLoc": {
"line": 69,
"column": 16,
"position": 531
},
"endLoc": {
"line": 74,
"column": 6,
"position": 614
}
}
},
{
"format": "cpp",
"lines": 13,
"fragment": " materialIndex};\n const Plane plane3 {::std::move(plane2)};\n\n ASSERT_EQ(materialIndex, plane3.getMaterialIndex());\n for (int i {0}; i < ::MobileRT::NumberOfAxes; ++i) {\n ASSERT_FLOAT_EQ(point[i], plane3.getPoint()[i]);\n ASSERT_FLOAT_EQ(normal2[i], plane3.getNormal()[i]);\n }\n}\n\n/**\n * Tests intersecting an AABB with a plane.\n",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/TestPlane.cpp",
"start": 110,
"end": 122,
"startLoc": {
"line": 110,
"column": 2,
"position": 1052
},
"endLoc": {
"line": 122,
"column": 4,
"position": 1145
}
},
"secondFile": {
"name": "app/Unit_Testing/TestPlane.cpp",
"start": 92,
"end": 103,
"startLoc": {
"line": 92,
"column": 7,
"position": 838
},
"endLoc": {
"line": 103,
"column": 4,
"position": 931
}
}
},
{
"format": "cpp",
"lines": 9,
"fragment": "ayInsideX) {\n const ::glm::vec3 direction {::glm::vec3 {-10.0F, 0.0F, 10.0F}};\n const ::glm::vec3 origin {::glm::vec3 {0.0F, 0.0F, 10.0F}};\n const ::std::int32_t depth {19};\n ::MobileRT::Ray ray {direction, origin, depth, false, nullptr};\n ::MobileRT::Intersection intersection {::std::move(ray)};\n\n const float lastDist {intersection.length_};\n inter",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/TestPlane.cpp",
"start": 272,
"end": 280,
"startLoc": {
"line": 272,
"column": 2,
"position": 2704
},
"endLoc": {
"line": 280,
"column": 5,
"position": 2834
}
},
"secondFile": {
"name": "app/Unit_Testing/TestPlane.cpp",
"start": 255,
"end": 263,
"startLoc": {
"line": 255,
"column": 2,
"position": 2528
},
"endLoc": {
"line": 263,
"column": 6,
"position": 2658
}
}
},
{
"format": "cpp",
"lines": 7,
"fragment": " const ::glm::vec3 normal {::glm::vec3 {0.0F, 0.0F, 10.0F}};\n const void *primitive {nullptr};\n const ::std::int32_t materialIndex {0};\n const ::glm::vec2 texCoords {0.4F, 0.6F};\n Ray ray {::glm::vec3 {1.0F}, ::glm::vec3 {}, 0, fal",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/TestIntersection.cpp",
"start": 46,
"end": 52,
"startLoc": {
"line": 46,
"column": 6,
"position": 380
},
"endLoc": {
"line": 52,
"column": 13,
"position": 470
}
},
"secondFile": {
"name": "app/Unit_Testing/TestIntersection.cpp",
"start": 30,
"end": 36,
"startLoc": {
"line": 30,
"column": 5,
"position": 176
},
"endLoc": {
"line": 36,
"column": 13,
"position": 266
}
}
},
{
"format": "cpp",
"lines": 7,
"fragment": "c3 normal {::glm::normalize(::glm::vec3 {0.0F, 0.0F, 10.0F})};\n const void *primitive {nullptr};\n const ::std::int32_t materialIndex {0};\n const ::glm::vec2 texCoords {0.4F, 0.6F};\n Ray ra",
"tokens": 0,
"firstFile": {
"name": "app/Unit_Testing/TestIntersection.cpp",
"start": 73,
"end": 79,
"startLoc": {
"line": 73,
"column": 2,
"position": 680
},
"endLoc": {
"line": 79,
"column": 6,
"position": 763
}
},
"secondFile": {
"name": "app/Unit_Testing/TestIntersection.cpp",
"start": 30,
"end": 36,
"startLoc": {
"line": 30,
"column": 2,
"position": 177
},
"endLoc": {
"line": 36,
"column": 19,
"position": 260
}
}
},
{
"format": "cpp",
"lines": 9,
"fragment": "glm::vec3 {0.5F, 0.5F, 0.99F}\n )\n .withMaterialIndex(static_cast<::std::int32_t> (scene.materials_.size()))\n .build()\n };\n\n scene.triangles_.emplace_back(triangle4);\n scene.materials_.emplace_back(greenMat);\n\n // sphere - mir",
"tokens": 0,
"firstFile": {
"name": "app/Scenes/Scenes.cpp",
"start": 208,
"end": 216,
"startLoc": {
"line": 208,
"column": 9,
"position": 2049
},
"endLoc": {
"line": 216,
"column": 25,
"position": 2123
}
},
"secondFile": {
"name": "app/Scenes/Scenes.cpp",
"start": 122,
"end": 129,
"startLoc": {
"line": 122,
"column": 10,
"position": 1212
},
"endLoc": {
"line": 129,
"column": 18,
"position": 1285
}
}
},
{
"format": "cpp",
"lines": 9,
"fragment": "r reading texture '\" + texturePath + \"': \" + error)};\n }\n ::std::uint8_t *const data {stbi_load(texturePath.c_str(), &width, &height, &channels, 0)};\n if (data == nullptr || width <= 0 || height <= 0 || channels <= 0) {\n const char *error {stbi_failure_reason()};\n LOG_ERROR(\"Error reading texture: \", error);\n throw ::std::runtime_error {error};\n }\n ::std::shared_",
"tokens": 0,
"firstFile": {
"name": "app/MobileRT/Texture.cpp",
"start": 102,
"end": 110,
"startLoc": {
"line": 102,
"column": 2,
"position": 1012
},
"endLoc": {
"line": 110,
"column": 2,
"position": 1152
}
},
"secondFile": {
"name": "app/MobileRT/Texture.cpp",
"start": 68,
"end": 76,
"startLoc": {
"line": 68,
"column": 5,
"position": 597
},
"endLoc": {
"line": 76,
"column": 10,
"position": 737
}
}
},
{
"format": "markdown",
"lines": 24,
"fragment": "###########################\n\n\n###############################################################################\n# Set headers\n###############################################################################\nmessage( STATUS \"Adding MobileRT and third party headers.\" )\ntarget_include_directories( ${PROJECT_NAME} SYSTEM PUBLIC\n \"${THIRD_PARTY_HEADERS}\" )\ntarget_include_directories( ${PROJECT_NAME} PRIVATE \"${MOBILE_R",
"tokens": 0,
"firstFile": {
"name": "app/Components/CMakeLists.txt",
"start": 31,
"end": 54,
"startLoc": {
"line": 31,
"column": 2,
"position": 186
},
"endLoc": {
"line": 54,
"column": 9,
"position": 278
}
},
"secondFile": {
"name": "app/Unit_Testing/CMakeLists.txt",
"start": 69,
"end": 81,
"startLoc": {
"line": 69,
"column": 2,
"position": 355
},
"endLoc": {
"line": 81,
"column": 4,
"position": 436
}
}
},
{
"format": "yaml",
"lines": 12,
"fragment": "uses: actions/cache@v4\n with:\n # Check available parameters in: https://github.com/actions/cache/blob/main/action.yml\n key: reports_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.name }}_${{ inputs.host_os }}_${{ inputs.type }}_${{ inputs.compiler }}\n restore-keys: reports_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.name }}_${{ inputs.host_os }}_${{ inputs.type }}_${{ inputs.compiler }}\n path: |\n code_coverage_base.info\n code_coverage.info\n code_coverage_test.info\n code_coverage_filtered.info\n\n -",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/reusable-native.yml",
"start": 333,
"end": 344,
"startLoc": {
"line": 333,
"column": 9,
"position": 1775
},
"endLoc": {
"line": 344,
"column": 2,
"position": 1918
}
},
"secondFile": {
"name": ".github/workflows/reusable-native.yml",
"start": 306,
"end": 318,
"startLoc": {
"line": 306,
"column": 9,
"position": 1492
},
"endLoc": {
"line": 318,
"column": 6,
"position": 1636
}
}
},
{
"format": "yaml",
"lines": 30,
"fragment": "timeout-minutes: 360\n steps:\n - name: Checkout\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_MEDIUM) }}\n if: success()\n uses: actions/checkout@v4\n\n - name: Set up JDK\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_MEDIUM) }}\n if: success()\n uses: actions/setup-java@v4\n with:\n # Check available parameters in: https://github.com/actions/setup-java/blob/main/action.yml\n java-version: 21\n distribution: zulu\n java-package: jdk\n architecture: x64\n check-latest: false\n server-id: github\n server-username: GITHUB_ACTOR\n server-password: GITHUB_TOKEN\n settings-path: ~/.gradle\n overwrite-settings: true\n gpg-private-key: ''\n gpg-passphrase: GPG_PASSPHRASE\n cache: gradle\n cache-dependency-path: '**/build.gradle'\n\n - name: Add custom environment variables\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_SMALL)",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 332,
"end": 361,
"startLoc": {
"line": 332,
"column": 5,
"position": 2510
},
"endLoc": {
"line": 361,
"column": 40,
"position": 2706
}
},
"secondFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 31,
"end": 60,
"startLoc": {
"line": 31,
"column": 5,
"position": 169
},
"endLoc": {
"line": 60,
"column": 41,
"position": 365
}
}
},
{
"format": "yaml",
"lines": 8,
"fragment": "}}\n if: success()\n uses: actions/cache@v4\n with:\n # Check available parameters in: https://github.com/actions/cache/blob/main/action.yml\n key: compiled_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n restore-keys: compiled_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n fail-on-cache-miss: true",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 374,
"end": 381,
"startLoc": {
"line": 374,
"column": 2,
"position": 2763
},
"endLoc": {
"line": 381,
"column": 5,
"position": 2895
}
},
"secondFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 234,
"end": 241,
"startLoc": {
"line": 234,
"column": 2,
"position": 1134
},
"endLoc": {
"line": 241,
"column": 6,
"position": 1266
}
}
},
{
"format": "yaml",
"lines": 8,
"fragment": "}}\n if: success()\n uses: actions/cache@v4\n with:\n # Check available parameters in: https://github.com/actions/cache/blob/main/action.yml\n key: gradle_packages_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n restore-keys: gradle_packages_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n fail-on-cache-miss: true",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 388,
"end": 395,
"startLoc": {
"line": 388,
"column": 2,
"position": 2931
},
"endLoc": {
"line": 395,
"column": 5,
"position": 3063
}
},
"secondFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 302,
"end": 309,
"startLoc": {
"line": 302,
"column": 2,
"position": 2191
},
"endLoc": {
"line": 309,
"column": 6,
"position": 2323
}
}
},
{
"format": "yaml",
"lines": 41,
"fragment": "steps:\n - name: Checkout\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_MEDIUM) }}\n if: success()\n uses: actions/checkout@v4\n\n - name: Set up JDK\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_MEDIUM) }}\n if: success()\n uses: actions/setup-java@v4\n with:\n # Check available parameters in: https://github.com/actions/setup-java/blob/main/action.yml\n java-version: 21\n distribution: zulu\n java-package: jdk\n architecture: x64\n check-latest: false\n server-id: github\n server-username: GITHUB_ACTOR\n server-password: GITHUB_TOKEN\n settings-path: ~/.gradle\n overwrite-settings: true\n gpg-private-key: ''\n gpg-passphrase: GPG_PASSPHRASE\n cache: gradle\n cache-dependency-path: '**/build.gradle'\n\n - name: Add custom environment variables\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_SMALL) }}\n if: success() && !startsWith(inputs.host_os, 'windows')\n working-directory: .\n run: |\n echo 'Available Android versions:';\n du -h -d 1 ${ANDROID_HOME}/ndk;\n du -h -d 1 ${ANDROID_HOME}/cmake || true;\n du -h -d 1 ${ANDROID_HOME}/build-tools;\n ls -lahp ${ANDROID_HOME}/platforms;\n ls -lahp ${HOME};\n echo \"GRADLE_PATH=${HOME}/.gradle\" >> \"${GITHUB_ENV}\";\n\n - name: Download gradle",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 579,
"end": 619,
"startLoc": {
"line": 579,
"column": 5,
"position": 4479
},
"endLoc": {
"line": 619,
"column": 7,
"position": 4708
}
},
"secondFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 32,
"end": 373,
"startLoc": {
"line": 32,
"column": 5,
"position": 175
},
"endLoc": {
"line": 373,
"column": 10,
"position": 2745
}
}
},
{
"format": "yaml",
"lines": 21,
"fragment": "- name: Download gradle packages from cache\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_MEDIUM) }}\n if: success()\n uses: actions/cache@v4\n with:\n # Check available parameters in: https://github.com/actions/cache/blob/main/action.yml\n key: gradle_packages_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n restore-keys: gradle_packages_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n fail-on-cache-miss: true\n path: |\n ${{ env.GRADLE_PATH }}/gradle-packages.zip\n\n - name: Extract and check files from gradle artifact\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_MEDIUM) }}\n if: success() && !startsWith(inputs.host_os, 'windows')\n working-directory: .\n run: |\n # shellcheck disable=SC1091\n . scripts/helper_functions.sh && extractFilesFromArtifact ${{ env.GRADLE_PATH }};\n\n - name: Download",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 619,
"end": 639,
"startLoc": {
"line": 619,
"column": 7,
"position": 4701
},
"endLoc": {
"line": 639,
"column": 9,
"position": 4933
}
},
"secondFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 387,
"end": 407,
"startLoc": {
"line": 387,
"column": 7,
"position": 2906
},
"endLoc": {
"line": 407,
"column": 6,
"position": 3138
}
}
},
{
"format": "yaml",
"lines": 15,
"fragment": "- name: Download generated binaries from cache\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_MEDIUM) }}\n if: success()\n uses: actions/cache@v4\n with:\n # Check available parameters in: https://github.com/actions/cache/blob/main/action.yml\n key: compiled_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n restore-keys: compiled_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n fail-on-cache-miss: true\n path: |\n app/build\n app/.cxx\n app/third_party\n\n - name: Check",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 639,
"end": 653,
"startLoc": {
"line": 639,
"column": 7,
"position": 4928
},
"endLoc": {
"line": 653,
"column": 6,
"position": 5101
}
},
"secondFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 373,
"end": 387,
"startLoc": {
"line": 373,
"column": 7,
"position": 2738
},
"endLoc": {
"line": 387,
"column": 9,
"position": 2911
}
}
},
{
"format": "yaml",
"lines": 76,
"fragment": "java-version: 21\n distribution: zulu\n java-package: jdk\n architecture: x64\n check-latest: false\n server-id: github\n server-username: GITHUB_ACTOR\n server-password: GITHUB_TOKEN\n settings-path: ~/.gradle\n overwrite-settings: true\n gpg-private-key: ''\n gpg-passphrase: GPG_PASSPHRASE\n cache: gradle\n cache-dependency-path: '**/build.gradle'\n\n - name: Add custom environment variables\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_SMALL) }}\n if: success() && !startsWith(inputs.host_os, 'windows')\n working-directory: .\n run: |\n echo 'Available Android versions:';\n du -h -d 1 ${ANDROID_HOME}/ndk;\n du -h -d 1 ${ANDROID_HOME}/cmake || true;\n du -h -d 1 ${ANDROID_HOME}/build-tools;\n ls -lahp ${ANDROID_HOME}/platforms;\n ls -lahp ${HOME};\n echo \"GRADLE_PATH=${HOME}/.gradle\" >> \"${GITHUB_ENV}\";\n\n - name: Download gradle packages from cache\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_MEDIUM) }}\n if: success()\n uses: actions/cache@v4\n with:\n # Check available parameters in: https://github.com/actions/cache/blob/main/action.yml\n key: gradle_packages_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n restore-keys: gradle_packages_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n fail-on-cache-miss: true\n path: |\n ${{ env.GRADLE_PATH }}/gradle-packages.zip\n\n - name: Extract and check files from gradle artifact\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_MEDIUM) }}\n if: success() && !startsWith(inputs.host_os, 'windows')\n working-directory: .\n run: |\n # shellcheck disable=SC1091\n . scripts/helper_functions.sh && extractFilesFromArtifact ${{ env.GRADLE_PATH }};\n\n - name: Download generated binaries from cache\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_MEDIUM) }}\n if: success()\n uses: actions/cache@v4\n with:\n # Check available parameters in: https://github.com/actions/cache/blob/main/action.yml\n key: compiled_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n restore-keys: compiled_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n fail-on-cache-miss: true\n path: |\n app/build\n app/.cxx\n app/third_party\n\n - name: Check binaries' paths\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_SMALL) }}\n if: success()\n run: |\n # shellcheck disable=SC1091\n . scripts/helper_functions.sh && checkPathExists app/build;\n . scripts/helper_functions.sh && checkPathExists app/build/intermediates;\n . scripts/helper_functions.sh && checkPathExists app/build/intermediates/javac;\n . scripts/helper_functions.sh && checkPathExists app/build/intermediates/javac/debug;\n . scripts/helper_functions.sh && checkPathExists app/build/intermediates/javac/debugUnitTest;\n . scripts/helper_functions.sh && checkPathExists app/build/intermediates/javac/debugAndroidTest;\n . scripts/helper_functions.sh && checkPathExists app/build/tmp/kotlin-classes/debug;\n . scripts/helper_functions.sh && checkPathExists app/.cxx;\n . scripts/helper_functions.sh && checkPathExists app/third_party;",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 755,
"end": 830,
"startLoc": {
"line": 755,
"column": 11,
"position": 5612
},
"endLoc": {
"line": 830,
"column": 76,
"position": 6180
}
},
"secondFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 44,
"end": 664,
"startLoc": {
"line": 44,
"column": 11,
"position": 259
},
"endLoc": {
"line": 664,
"column": 76,
"position": 5131
}
}
},
{
"format": "yaml",
"lines": 9,
"fragment": "uses: actions/cache@v4\n with:\n # Check available parameters in: https://github.com/actions/cache/blob/main/action.yml\n key: reports_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n restore-keys: reports_${{ github.sha }}_${{ github.run_id }}_${{ github.run_number }}_${{ inputs.android_api }}_${{ inputs.type }}_${{ inputs.host_os }}\n path: |\n app/build/reports\n\n - name: Check",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 842,
"end": 850,
"startLoc": {
"line": 842,
"column": 9,
"position": 6269
},
"endLoc": {
"line": 850,
"column": 6,
"position": 6401
}
},
"secondFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 532,
"end": 540,
"startLoc": {
"line": 532,
"column": 9,
"position": 3961
},
"endLoc": {
"line": 540,
"column": 4,
"position": 4093
}
}
},
{
"format": "yaml",
"lines": 24,
"fragment": "- '!**/CMakeLists*'\n - '!**/AndroidTest/resources/**'\n - '!**/*.c*'\n - '!**/*.h'\n - '!**/*.hpp'\n - '!**/*.ui*'\n\ndefaults:\n run:\n shell: sh\n working-directory: .\n\nconcurrency:\n group: ${{ github.workflow }} ${{ github.ref }}\n cancel-in-progress: true\n\n# Default environment variables.\nenv:\n GITHUB_STEP_TIMEOUT_SMALL: 4\n GITHUB_STEP_TIMEOUT_MEDIUM: 10\n GITHUB_STEP_TIMEOUT_LONG: 20\n\njobs:\n Build",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/docker.yml",
"start": 19,
"end": 42,
"startLoc": {
"line": 19,
"column": 5,
"position": 82
},
"endLoc": {
"line": 42,
"column": 6,
"position": 192
}
},
"secondFile": {
"name": ".github/workflows/native.yml",
"start": 18,
"end": 41,
"startLoc": {
"line": 18,
"column": 7,
"position": 79
},
"endLoc": {
"line": 41,
"column": 7,
"position": 189
}
}
},
{
"format": "yaml",
"lines": 23,
"fragment": "defaults:\n run:\n shell: sh\n working-directory: .\n\nconcurrency:\n group: ${{ github.workflow }} ${{ github.ref }}\n cancel-in-progress: true\n\n# Default environment variables.\nenv:\n GITHUB_STEP_TIMEOUT_SMALL: 4\n GITHUB_STEP_TIMEOUT_MEDIUM: 10\n GITHUB_STEP_TIMEOUT_LONG: 20\n\njobs:\n Build:\n if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'\n\n strategy:\n fail-fast: false\n matrix:\n # Override automatic language detection by changing the below list",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/code-analysis.yml",
"start": 26,
"end": 48,
"startLoc": {
"line": 26,
"column": 1,
"position": 114
},
"endLoc": {
"line": 48,
"column": 67,
"position": 232
}
},
"secondFile": {
"name": ".github/workflows/docker.yml",
"start": 26,
"end": 48,
"startLoc": {
"line": 26,
"column": 1,
"position": 112
},
"endLoc": {
"line": 48,
"column": 8,
"position": 230
}
}
},
{
"format": "yaml",
"lines": 19,
"fragment": "uses: actions/setup-java@v4\n with:\n # Check available parameters in: https://github.com/actions/setup-java/blob/main/action.yml\n java-version: 21\n distribution: zulu\n java-package: jdk\n architecture: x64\n check-latest: false\n server-id: github\n server-username: GITHUB_ACTOR\n server-password: GITHUB_TOKEN\n settings-path: ~/.gradle\n overwrite-settings: true\n gpg-private-key: ''\n gpg-passphrase: GPG_PASSPHRASE\n cache: gradle\n cache-dependency-path: '**/build.gradle'\n\n - name: Check",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/code-analysis.yml",
"start": 68,
"end": 86,
"startLoc": {
"line": 68,
"column": 7,
"position": 386
},
"endLoc": {
"line": 86,
"column": 6,
"position": 491
}
},
"secondFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 41,
"end": 59,
"startLoc": {
"line": 41,
"column": 9,
"position": 244
},
"endLoc": {
"line": 59,
"column": 4,
"position": 349
}
}
},
{
"format": "yaml",
"lines": 24,
"fragment": "defaults:\n run:\n shell: sh\n working-directory: .\n\nconcurrency:\n group: ${{ github.workflow }} ${{ github.ref }}\n cancel-in-progress: true\n\n# Default environment variables.\nenv:\n GITHUB_STEP_TIMEOUT_SMALL: 4\n GITHUB_STEP_TIMEOUT_MEDIUM: 10\n GITHUB_STEP_TIMEOUT_LONG: 20\n\njobs:\n Build:\n if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'\n\n strategy:\n fail-fast: false\n matrix:\n include:\n - test",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/android_repeatable.yml",
"start": 11,
"end": 34,
"startLoc": {
"line": 11,
"column": 1,
"position": 37
},
"endLoc": {
"line": 34,
"column": 5,
"position": 161
}
},
"secondFile": {
"name": ".github/workflows/docker.yml",
"start": 26,
"end": 49,
"startLoc": {
"line": 26,
"column": 1,
"position": 112
},
"endLoc": {
"line": 49,
"column": 8,
"position": 236
}
}
},
{
"format": "yaml",
"lines": 31,
"fragment": "}}\n timeout-minutes: 360\n\n steps:\n - name: Checkout\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_MEDIUM) }}\n if: success()\n uses: actions/checkout@v4\n\n - name: Set up JDK\n timeout-minutes: ${{ fromJSON(env.GITHUB_STEP_TIMEOUT_MEDIUM) }}\n if: success()\n uses: actions/setup-java@v4\n with:\n # Check available parameters in: https://github.com/actions/setup-java/blob/main/action.yml\n java-version: 21\n distribution: zulu\n java-package: jdk\n architecture: x64\n check-latest: false\n server-id: github\n server-username: GITHUB_ACTOR\n server-password: GITHUB_TOKEN\n settings-path: ~/.gradle\n overwrite-settings: true\n gpg-private-key: ''\n gpg-passphrase: GPG_PASSPHRASE\n cache: gradle\n cache-dependency-path: '**/build.gradle'\n\n - name: Set",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/android_repeatable.yml",
"start": 40,
"end": 70,
"startLoc": {
"line": 40,
"column": 2,
"position": 232
},
"endLoc": {
"line": 70,
"column": 4,
"position": 417
}
},
"secondFile": {
"name": ".github/workflows/reusable-android.yml",
"start": 331,
"end": 59,
"startLoc": {
"line": 331,
"column": 2,
"position": 2506
},
"endLoc": {
"line": 59,
"column": 4,
"position": 349
}
}
},
{
"format": "yaml",
"lines": 25,
"fragment": "- '!**/CMakeLists*'\n - '!**/*.java*'\n - '!**/*.kt*'\n - '!**/*.c*'\n - '!**/*.h'\n - '!**/*.hpp'\n - '!**/*gradle*'\n\ndefaults:\n run:\n shell: sh\n working-directory: .\n\nconcurrency:\n group: ${{ github.workflow }} ${{ github.ref }}\n cancel-in-progress: true\n\n# Default environment variables.\nenv:\n GITHUB_STEP_TIMEOUT_SMALL: 4\n GITHUB_STEP_TIMEOUT_MEDIUM: 10\n GITHUB_STEP_TIMEOUT_LONG: 20\n\njobs:\n Matrix",
"tokens": 0,
"firstFile": {
"name": ".github/workflows/android.yml",
"start": 19,
"end": 43,
"startLoc": {
"line": 19,
"column": 5,
"position": 82
},
"endLoc": {
"line": 43,
"column": 7,
"position": 197
}
},
"secondFile": {
"name": ".github/workflows/code-analysis.yml",
"start": 18,
"end": 42,
"startLoc": {
"line": 18,
"column": 5,
"position": 79
},
"endLoc": {
"line": 42,
"column": 6,
"position": 194
}
}
},
{
"format": "bash",
"lines": 7,
"fragment": "setPaths() {\n PATH_TO_SEARCH='./';\n FILE_TO_SEARCH='MobileRT.jks';\n\n FIND_MOBILERT=$(find ${PATH_TO_SEARCH} -iname \"${FILE_TO_SEARCH}\" 2> /dev/null | head -n 1 || true);\n MOBILERT_PATH=$(echo \"${FIND_MOBILERT}\" | sed 's/\\/app\\/.*//g' || true);\n MOBILERT_PATH",
"tokens": 0,
"firstFile": {
"name": "scripts/profile.sh",
"start": 49,
"end": 55,
"startLoc": {
"line": 49,
"column": 1,
"position": 134
},
"endLoc": {
"line": 55,
"column": 14,
"position": 202
}
},
"secondFile": {
"name": "scripts/plot/plot.sh",
"start": 36,
"end": 43,
"startLoc": {
"line": 36,
"column": 1,
"position": 113
},
"endLoc": {
"line": 43,
"column": 3,
"position": 181
}
}
},
{
"format": "bash",
"lines": 7,
"fragment": ");\n\n if [ -z \"${MOBILERT_PATH}\" ]; then\n PATH_TO_SEARCH='/';\n FIND_MOBILERT=$(find ${PATH_TO_SEARCH} -iname \"MobileRT\" 2> /dev/null | head -n 1);\n MOBILERT_PATH=$(echo \"${FIND_MOBILERT}\" | sed \"s/\\/app\\/${FILE_TO_SEARCH}/g\");\n MOBILERT_PATH",
"tokens": 0,
"firstFile": {
"name": "scripts/profile.sh",
"start": 55,
"end": 61,
"startLoc": {
"line": 55,
"column": 2,
"position": 210
},
"endLoc": {
"line": 61,
"column": 14,
"position": 277
}
},
"secondFile": {
"name": "scripts/plot/plot.sh",
"start": 41,
"end": 47,
"startLoc": {
"line": 41,
"column": 5,
"position": 177
},
"endLoc": {
"line": 47,
"column": 3,
"position": 244
}
}
},
{
"format": "bash",
"lines": 16,
"fragment": ";\n\n set +u;\n if [ -z \"${PLOT_GRAPHS}\" ]; then\n PLOT_GRAPHS=${SCRIPTS_PATH}/\"graphs\";\n fi\n set -u;\n\n mkdir -p \"${PLOT_GRAPHS}\";\n set +u;\n if [ -z \"${PLOT_GRAPHS}\" ]; then\n PLOT_GRAPHS=${SCRIPTS_PATH}/\"graphs\";\n fi\n set -u;\n}\n###############################################################################",
"tokens": 0,
"firstFile": {
"name": "scripts/profile.sh",
"start": 84,
"end": 99,
"startLoc": {
"line": 84,
"column": 2,
"position": 483
},
"endLoc": {
"line": 99,
"column": 80,
"position": 577
}
},
"secondFile": {
"name": "scripts/plot/plot.sh",
"start": 50,
"end": 66,
"startLoc": {
"line": 50,
"column": 7,
"position": 261
},
"endLoc": {
"line": 66,
"column": 17,
"position": 356
}
}
},
{
"format": "bash",
"lines": 23,
"fragment": "() {\n set +u;\n if [ -z \"${1}\" ]; then\n WIDTH='900';\n HEIGHT='900';\n else\n WIDTH=\"${1}\";\n HEIGHT=\"${1}\";\n fi\n if [ -z \"${1}\" ]; then\n ASYNC='true';\n else\n ASYNC=\"${2}\";\n fi\n set -u;\n\n echo '';\n echo \"THREAD = ${THREAD}\";\n echo \"SHADER = ${SHADER}\";\n echo \"SCENE = ${SCENE}\";\n echo \"ACC = ${ACC}\";\n\n # gdb --args \\",
"tokens": 0,
"firstFile": {
"name": "scripts/profile.sh",
"start": 253,
"end": 275,
"startLoc": {
"line": 253,
"column": 6,
"position": 1369
},
"endLoc": {
"line": 275,
"column": 15,
"position": 1513
}
},
"secondFile": {
"name": "scripts/profile.sh",
"start": 215,
"end": 235,
"startLoc": {
"line": 215,
"column": 8,
"position": 1098
},
"endLoc": {
"line": 235,
"column": 5,
"position": 1240
}
}
},
{
"format": "bash",
"lines": 20,
"fragment": ";\n echo \"THREAD = ${THREAD}\";\n echo \"SHADER = ${SHADER}\";\n echo \"SCENE = ${SCENE}\";\n echo \"ACC = ${ACC}\";\n echo \"ASYNC = ${ASYNC}\";\n echo \"WIDTH = ${WIDTH}\";\n echo \"HEIGHT = ${HEIGHT}\";\n\n set +u;\n if [ \"${1}\" = 'release' ]; then\n echo 'Executing in release mode.';\n BIN_PATH_EXE=\"${BIN_RELEASE_EXE}\";\n elif [ \"${1}\" = 'debug' ]; then\n echo 'Executing in debug mode.';\n BIN_PATH_EXE=\"${BIN_DEBUG_EXE}\";\n fi\n set -u;\n\n echo",
"tokens": 0,
"firstFile": {
"name": "scripts/profile.sh",
"start": 402,
"end": 421,
"startLoc": {
"line": 402,
"column": 2,
"position": 2551
},
"endLoc": {
"line": 421,
"column": 5,
"position": 2691
}
},
"secondFile": {
"name": "scripts/profile.sh",
"start": 296,
"end": 315,
"startLoc": {
"line": 296,
"column": 3,
"position": 1671
},
"endLoc": {
"line": 315,
"column": 16,
"position": 1811
}
}
},
{
"format": "bash",
"lines": 43,
"fragment": "###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Exit immediately if a command exits with a non-zero status.\n###############################################################################\nset -eu;\n###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Change directory to MobileRT root.\n###############################################################################\nif [ $# -ge 1 ]; then\n cd \"$(dirname \"${0}\")/..\" || return 1;\nfi\n###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Get helper functions.\n###############################################################################\n# shellcheck disable=SC1091\n. scripts/helper_functions.sh;\n###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Execute Shellcheck on this script.\n###############################################################################\nif [ $# -ge 1 ] && command -v shellcheck > /dev/null; then\n shellcheck \"${0}\" || return 1;\nfi\n###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Install dependencies.",
"tokens": 0,
"firstFile": {
"name": "scripts/install_dependencies.sh",
"start": 21,
"end": 63,
"startLoc": {
"line": 21,
"column": 1,
"position": 39
},
"endLoc": {
"line": 63,
"column": 24,
"position": 159
}
},
"secondFile": {
"name": "scripts/run_tests.sh",
"start": 7,
"end": 49,
"startLoc": {
"line": 7,
"column": 1,
"position": 11
},
"endLoc": {
"line": 49,
"column": 25,
"position": 131
}
}
},
{
"format": "bash",
"lines": 46,
"fragment": "###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Exit immediately if a command exits with a non-zero status.\n###############################################################################\nset -eu;\n###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Change directory to MobileRT root.\n###############################################################################\nif [ $# -ge 1 ]; then\n cd \"$(dirname \"${0}\")/..\" || return 1;\nfi\n###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Get helper functions.\n###############################################################################\n# shellcheck disable=SC1091\n. scripts/helper_functions.sh;\n###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Execute Shellcheck on this script.\n###############################################################################\nif [ $# -ge 1 ] && command -v shellcheck > /dev/null; then\n shellcheck \"${0}\" || return 1;\nfi\n###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Set default arguments.\n###############################################################################\ntype='release';\nrecompile",
"tokens": 0,
"firstFile": {
"name": "scripts/compile_android.sh",
"start": 8,
"end": 53,
"startLoc": {
"line": 8,
"column": 1,
"position": 13
},
"endLoc": {
"line": 53,
"column": 10,
"position": 142
}
},
"secondFile": {
"name": "scripts/run_tests.sh",
"start": 7,
"end": 52,
"startLoc": {
"line": 7,
"column": 1,
"position": 11
},
"endLoc": {
"line": 52,
"column": 20,
"position": 140
}
}
},
{
"format": "bash",
"lines": 45,
"fragment": "###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Exit immediately if a command exits with a non-zero status.\n###############################################################################\nset -eu;\n###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Change directory to MobileRT root.\n###############################################################################\nif [ $# -ge 1 ]; then\n cd \"$(dirname \"${0}\")/..\" || return 1;\nfi\n###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Get helper functions.\n###############################################################################\n# shellcheck disable=SC1091\n. scripts/helper_functions.sh;\n###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Execute Shellcheck on this script.\n###############################################################################\nif [ $# -ge 1 ] && command -v shellcheck > /dev/null; then\n shellcheck \"${0}\" || return 1;\nfi\n###############################################################################\n###############################################################################\n\n\n###############################################################################\n# Set default arguments.\n###############################################################################\nandroid_api_version",
"tokens": 0,
"firstFile": {
"name": "scripts/check_android.sh",
"start": 7,
"end": 51,
"startLoc": {
"line": 7,
"column": 1,
"position": 11
},
"endLoc": {
"line": 51,
"column": 20,
"position": 135
}
},
"secondFile": {
"name": "scripts/run_tests.sh",
"start": 7,
"end": 51,
"startLoc": {
"line": 7,
"column": 1,
"position": 11
},
"endLoc": {
"line": 51,
"column": 5,
"position": 135
}
}
}
]
}