Package org.timepedia.chronoscope.client

Source Code of org.timepedia.chronoscope.client.DatasetsTest

package org.timepedia.chronoscope.client;

import junit.framework.TestCase;

import org.timepedia.chronoscope.client.data.DatasetFactory;
import org.timepedia.chronoscope.client.data.DatasetRequest;
import org.timepedia.chronoscope.client.data.DatasetRequestMaker;
import org.timepedia.chronoscope.client.data.ChronoscopeDatasetFactory;
import org.timepedia.chronoscope.client.data.MutableDatasetND;
import org.timepedia.chronoscope.client.data.Mutation;
import org.timepedia.chronoscope.client.util.Interval;

/**
* @author chad takahashi
*/
public class DatasetsTest extends TestCase {
  private DatasetRequestMaker dsMaker = new DatasetRequestMaker();
  private DatasetFactory dsFactory = new ChronoscopeDatasetFactory();
 
  public void testAggregateCalcs() {
    MutableDataset mds = newMutableDataset(new double[] {1.0, 2.0}, new double[] {10.0, 20.0});
    Datasets grp = new Datasets();
    grp.add(mds);
    assertEquals(new Interval(1.0, 2.0), grp.getDomainExtrema());
    assertEquals(1.0, grp.getMinInterval());
  }
 

  public void testIndexOf() {
    Dataset ds0 = newDataset(new double[] {1.0}, new double[] {10.0});
    Dataset ds1 = newDataset(new double[] {1.0}, new double[] {10.0});
    Dataset ds2 = newDataset(new double[] {1.0}, new double[] {10.0});
    Datasets grp = new Datasets();
    grp.add(ds0);
    grp.add(ds1);
    grp.add(ds2);
   
    assertEquals(0, grp.indexOf(ds0));
    assertEquals(1, grp.indexOf(ds1));
    assertEquals(2, grp.indexOf(ds2));
    assertEquals(-1, grp.indexOf(newDataset(new double[] {1.0}, new double[] {10.0})));
  }
 
  public void testIsEmpty() {
    Datasets grp = new Datasets();
    assertTrue(grp.isEmpty());
    grp.add(newDataset(new double[] {1.0}, new double[] {10.0}));
    assertFalse(grp.isEmpty());
    grp.remove(0);
    assertTrue(grp.isEmpty());
  }
 
  public void testMutableDataset() {
    MutableDataset mds = newMutableDataset(new double[] {1.0, 2.0}, new double[] {10.0, 20.0});
    Datasets grp = new Datasets();
    grp.add(mds);
   
    mds.mutate(Mutation.append(3.0, 30.0));
    mds.mutate(Mutation.append(4.0, 40.0));
    mds.mutate(Mutation.setY(0, -9.0));
    mds.mutate(Mutation.append(4.1, 0.1));
   
    assertEquals(new Interval(1.0, 4.1), grp.getDomainExtrema());
    assertEquals(0.1, grp.getMinInterval(), 0.000000000000001);
  }
 
  public void testRemove() {
    Dataset ds0 = newMutableDataset(new double[] {2.0, 5.0}, new double[] {10.0, 11.0});
    Dataset ds1 = newMutableDataset(new double[] {1.0, 8.0}, new double[] {30.0, 4.0});
    Dataset ds2 = newMutableDataset(new double[] {3.0, 7.0}, new double[] {20.0, 5.0});
    Datasets grp = new Datasets();
    grp.add(ds0);
    grp.add(ds1);
    grp.add(ds2);
   
    MutableDatasetND removedDataset = (MutableDatasetND)grp.remove(1);
   
    // verify the removed element corresponds to the index
    assertTrue(ds1 == removedDataset);
    // verify the new size of the container
    assertEquals(2, grp.size());
    // verify the order of the remaining elements
    assertTrue(ds0 == grp.get(0));
    assertTrue(ds2 == grp.get(1));
   
    // make sure aggregate properties were updated
    assertEquals(new Interval(2.0, 7.0), grp.getDomainExtrema());
    assertEquals(3.0, grp.getMinInterval());
   
    // verify that the container de-registered itself as a listener
    // to the removed dataset.
    //removedDataset.mutate(Mutation.RangeMutation.setY(0, 999.0));
    //assertEquals(20.0, grp.getMaxRange());
  }
 
  public void testSize() {
    Datasets grp = new Datasets();
    assertEquals(0, grp.size());
    grp.add(newDataset(new double[] {1.0}, new double[] {10.0}));
    assertEquals(1, grp.size());
    grp.add(newDataset(new double[] {1.0}, new double[] {10.0}));
    assertEquals(2, grp.size());
    grp.add(newDataset(new double[] {1.0}, new double[] {10.0}));
    assertEquals(3, grp.size());
  }
 
  private Dataset newDataset(double[] domain, double[] range) {
    DatasetRequest.Basic request = dsMaker.newRequest(domain, range);
    return dsFactory.create(request);
  }

  private MutableDataset newMutableDataset(double[] domain, double[] range) {
    DatasetRequest.Basic request = dsMaker.newRequest(domain, range);
    return dsFactory.createMutable(request);
  }
}
TOP

Related Classes of org.timepedia.chronoscope.client.DatasetsTest

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.