Package edu.cmu.graphchi.preprocessing

Source Code of edu.cmu.graphchi.preprocessing.TestIdPacking

package edu.cmu.graphchi.preprocessing;

import edu.cmu.graphchi.datablocks.FloatConverter;
import org.junit.Test;

import java.util.Random;

import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;

/**
*
*/
public class TestIdPacking {

    @Test
    public void testPacking() {
        Random r = new Random();
        for(int j=0; j < 100000; j++) {
            int i = r.nextInt(Integer.MAX_VALUE);
            long l  = FastSharder.packEdges(j, i);
            assertEquals(j, FastSharder.getFirst(l));
            assertEquals(i, FastSharder.getSecond(l));

            long k  = FastSharder.packEdges(i, j);
            assertEquals(i, FastSharder.getFirst(k));
            assertEquals(j, FastSharder.getSecond(k));
        }
    }

    @Test
    public void testSortWithValues() {
        long[] ids = new long[] {7,4,5,8,2,9};
        float[] valuef = new float[] {7.0f, 4.0f, 5.0f, 8.0f, 2.0f, 9.0f};
        byte[] valuedat = new byte[4 * valuef.length];

        FloatConverter floatConv = new FloatConverter();
        for(int i=0; i < valuef.length; i++) {
            byte[] tmp = new byte[4];
            floatConv.setValue(tmp, valuef[i]);
            System.arraycopy(tmp, 0, valuedat, i * 4, 4);
        }

        FastSharder.sortWithValues(ids, valuedat, 4);

        for(int i=0; i < valuef.length; i++) {
             byte[] tmp = new byte[4];
             System.arraycopy(valuedat, i * 4, tmp, 0, 4);
             float f = floatConv.getValue(tmp);
             assertEquals(ids[i] * 1.0f, f);
             assertTrue(i == 0 || ids[i] > ids[i-1]);
        }
    }
}
TOP

Related Classes of edu.cmu.graphchi.preprocessing.TestIdPacking

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.