Package edu.brown.markov

Source Code of edu.brown.markov.TestMarkovUtil

package edu.brown.markov;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import org.json.JSONObject;
import org.voltdb.catalog.Procedure;

import edu.brown.BaseTestCase;
import edu.brown.benchmark.tm1.procedures.GetNewDestination;
import edu.brown.markov.containers.MarkovGraphsContainerUtil;
import edu.brown.markov.containers.MarkovGraphsContainer;
import edu.brown.utils.FileUtil;
import edu.brown.utils.ProjectType;

public class TestMarkovUtil extends BaseTestCase {
   
    public void setUp() throws Exception {
        super.setUp(ProjectType.TM1);
        this.addPartitions(10);
    }
   
    private void examineVertices(MarkovVertex v0, MarkovVertex v1) {
        assertNotNull(v0);
        assertNotNull(v1);
        assertNotSame(v0, v1);
        assertEquals(v0.getCatalogKey(), v0.getCatalogKey());
        assertEquals(v0.getCatalogItem(), v1.getCatalogItem());
    }
   
    /**
     * testSerialization
     */
    public void testSerialization() throws Exception {
        Procedure catalog_proc = this.getProcedure(GetNewDestination.class);
       
        // Make a bunch of MarkovGraphsContainers
        Map<Integer, MarkovGraphsContainer> markovs = new HashMap<Integer, MarkovGraphsContainer>();
        for (int i = 1000; i < 1010; i++) {
            MarkovGraphsContainer m = new MarkovGraphsContainer();
            for (int p : catalogContext.getAllPartitionIds()) {
                m.getOrCreate(p, catalog_proc).initialize();
            } // FOR
            markovs.put(i, m);
        } // FOR
       
        // Serialize them out to a file. This will also make a nice little index in the file
        File temp = FileUtil.getTempFile("markovs", true);
        assertNotNull(temp);
        MarkovGraphsContainerUtil.save(markovs, temp);
//        System.err.println("MARKOV FILE: " + temp);
       
        // Now read it back in make sure everything is there
        Map<Integer, MarkovGraphsContainer> clone = MarkovUtil.load(catalogContext, temp);
        assertNotNull(clone);
        assertEquals(markovs.size(), clone.size());
        assert(markovs.keySet().containsAll(clone.keySet()));
        for (Integer id : markovs.keySet()) {
            MarkovGraphsContainer clone_m = clone.get(id);
            assertNotNull(clone_m);
        } // FOR
    }
   
    /**
     * testGetStartVertex
     */
    public void testGetStartVertex() throws Exception {
        this.examineVertices(MarkovUtil.getStartVertex(catalogContext), MarkovUtil.getStartVertex(catalogContext));
    }

    /**
     * testGetStopVertex
     */
    public void testGetStopVertex() throws Exception {
        this.examineVertices(MarkovUtil.getCommitVertex(catalogContext), MarkovUtil.getCommitVertex(catalogContext));
    }

    /**
     * testGetAbortVertex
     */
    public void testGetAbortVertex() throws Exception {
        this.examineVertices(MarkovUtil.getAbortVertex(catalogContext), MarkovUtil.getAbortVertex(catalogContext));
    }

    /**
     * testSpecialVertexSerialization
     */
    public void testSpecialVertexSerialization() throws Exception {
        MarkovVertex.Type types[] = new MarkovVertex.Type[] {
                MarkovVertex.Type.START,
                MarkovVertex.Type.COMMIT,
                MarkovVertex.Type.ABORT,
        };
        for (MarkovVertex.Type type : types) {
            MarkovVertex v = MarkovUtil.getSpecialVertex(catalogContext.database, type);
            assertNotNull(v);
           
            String json = v.toJSONString();
            assertFalse(json.isEmpty());
            assertTrue(json.contains(v.getCatalogKey()));
        } // FOR
    }
   
    /**
     * testVertexDeserialization
     */
    public void testSpecialVertexDeserialization() throws Exception {
        MarkovVertex.Type types[] = new MarkovVertex.Type[] {
                MarkovVertex.Type.START,
                MarkovVertex.Type.COMMIT,
                MarkovVertex.Type.ABORT,
        };
        for (MarkovVertex.Type type : types) {
            MarkovVertex v = MarkovUtil.getSpecialVertex(catalogContext.database, type);
            assertNotNull(v);
           
            String json = v.toJSONString();
            JSONObject json_obj = new JSONObject(json);
            assertNotNull(json_obj);
            //System.err.println(json_obj.toString(2));
           
            MarkovVertex clone = new MarkovVertex();
            clone.fromJSON(json_obj, catalogContext.database);
            this.examineVertices(v, clone);
           
//            System.err.println(clone.getCatalogItem());
//            System.err.println(clone.getCatalogItem().getClass());
//            System.err.println("--------------------");
        } // FOR
    }
}
TOP

Related Classes of edu.brown.markov.TestMarkovUtil

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.