Package edu.brown.designer.partitioners

Source Code of edu.brown.designer.partitioners.TestAbstractPartitioner$MockPartitioner

package edu.brown.designer.partitioners;

import java.util.HashSet;

import org.voltdb.catalog.Table;

import edu.brown.benchmark.tm1.TM1Constants;
import edu.brown.costmodel.SingleSitedCostModel;
import edu.brown.costmodel.TimeIntervalCostModel;
import edu.brown.designer.AccessGraph;
import edu.brown.designer.Designer;
import edu.brown.designer.DesignerEdge;
import edu.brown.designer.DesignerHints;
import edu.brown.designer.DesignerInfo;
import edu.brown.designer.DesignerVertex;
import edu.brown.designer.generators.AccessGraphGenerator;
import edu.brown.designer.partitioners.plan.PartitionPlan;
import edu.brown.utils.CollectionUtil;
import edu.brown.utils.ProjectType;

/**
* @author pavlo
*/
public class TestAbstractPartitioner extends BasePartitionerTestCase {

    public static class MockPartitioner extends AbstractPartitioner {
       
        public MockPartitioner(Designer designer, DesignerInfo info) {
            super(designer, info);
        }
        @Override
        public PartitionPlan generate(DesignerHints hints) throws Exception {
            return null;
        }
    }
   
    private MockPartitioner partitioner;
    private AccessGraph agraph;
   
    @Override
    protected void setUp() throws Exception {
        super.setUp(ProjectType.TM1, true);
       
        // BasePartitionerTestCase will setup most of what we need
        this.info.setCostModel(new TimeIntervalCostModel<SingleSitedCostModel>(catalogContext, SingleSitedCostModel.class, info.getNumIntervals()));
        this.info.setPartitionerClass(MockPartitioner.class);
        assertNotNull(info.getStats());
       
        this.designer = new Designer(this.info, this.hints, this.info.getArgs());
        this.partitioner = (MockPartitioner) this.designer.getPartitioner();
        assertNotNull(this.partitioner);
        this.agraph = AccessGraphGenerator.convertToSingleColumnEdges(catalog_db, this.partitioner.generateAccessGraph());
        assertNotNull(this.agraph);
    }
   
    /**
     * testGenerateAccessGraph
     */
    public void testGenerateAccessGraph() throws Exception {
        // Make sure all of our tables are there
        for (Table catalog_tbl : catalog_db.getTables()) {
            DesignerVertex v = agraph.getVertex(catalog_tbl);
            assertNotNull("Missing " + catalog_tbl, v);
        } // FOR
       
        // Make sure our edges have weights
        // Only the self-referencing edges for CALL_FORWARDING and SUBSCRIBER will be zero
        HashSet<Table> skip = new HashSet<Table>();
        skip.add(this.getTable(TM1Constants.TABLENAME_SUBSCRIBER));
        skip.add(this.getTable(TM1Constants.TABLENAME_CALL_FORWARDING));
        for (DesignerEdge e : agraph.getEdges()) {
            DesignerVertex v0 = CollectionUtil.get(agraph.getIncidentVertices(e), 0);
            DesignerVertex v1 = CollectionUtil.get(agraph.getIncidentVertices(e), 1);
            if (!(v0.getCatalogItem().equals(v1.getCatalogItem()) && skip.contains(v0.getCatalogItem()))) {
                assert(e.getTotalWeight() > 0) : "No edge weight for " + e;
            }
        } // FOR
    }
   

   

}
TOP

Related Classes of edu.brown.designer.partitioners.TestAbstractPartitioner$MockPartitioner

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.