package org.trifort.rootbeer.testcases.rootbeertest.serialization; import org.trifort.rootbeer.runtime.Kernel; import org.trifort.rootbeer.runtime.RootbeerGpu; public class ArrayCloneRunOnGpu implements Kernel { private int[] m_array1; private int[] m_array2; private int[][] m_array3; private int[][] m_array4; public ArrayCloneRunOnGpu(){ m_array1 = new int[10]; for(int i = 0; i < 10; ++i){ m_array1[i] = i; } m_array3 = new int[10][]; for(int i = 0; i < 10; ++i){ m_array3[i] = new int[10]; for(int j = 0; j < 10; ++j){ m_array3[i][j] = j; } } } public void gpuMethod(){ m_array2 = m_array1.clone(); m_array4 = m_array3.clone(); } public boolean compare(ArrayCloneRunOnGpu rhs) { if(m_array2.length != rhs.m_array2.length){ System.out.println("m_array2.length"); return false; } for(int i = 0; i < m_array2.length; ++i){ if(m_array2[i] != rhs.m_array2[i]){ System.out.println("m_array2[i]"); return false; } } if(m_array4.length != rhs.m_array4.length){ System.out.println("m_array4.length"); return false; } for(int i = 0; i < m_array4.length; ++i){ int[] lhs_inner = m_array4[i]; int[] rhs_inner = rhs.m_array4[i]; if(lhs_inner.length != rhs_inner.length){ System.out.println("m_array4[i].length"); return false; } for(int j = 0; j < lhs_inner.length; ++j){ if(lhs_inner[j] != rhs_inner[j]){ System.out.println("m_array4["+i+"]["+j+"]"); System.out.println("lhs: "+lhs_inner[j]); System.out.println("rhs: "+rhs_inner[j]); return false; } } } return true; } }