/*
Copyright 2008-2010 Gephi
Authors : Cezary Bartosiak
Website : http://www.gephi.org
This file is part of Gephi.
Gephi is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
Gephi is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with Gephi. If not, see <http://www.gnu.org/licenses/>.
*/
package org.gephi.data.attributes.type;
import java.util.ArrayList;
import java.util.List;
import org.gephi.data.attributes.api.AttributeType;
import org.gephi.data.attributes.api.Estimator;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Unit test for DynamicType class.
*
* @author Cezary Bartosiak
*/
public class DynamicTypeTest {
public DynamicTypeTest() { }
@BeforeClass
public static void setUpClass() throws Exception { }
@AfterClass
public static void tearDownClass() throws Exception { }
@Before
public void setUp() { }
@After
public void tearDown() { }
@Test
public void testCopyConstructors() {
System.out.println("copyConstructors");
DynamicDouble expected1 = makeTree1();
DynamicDouble instance1 = makeTree1();
DynamicDouble expected2 = makeTree1_in();
DynamicDouble instance2 = new DynamicDouble(makeTree1(),
new Interval<Double>(-2.0, -1.0, 10.0));
DynamicDouble expected3 = makeTree1_out();
DynamicDouble instance3 = new DynamicDouble(makeTree1(),
null,
new Interval<Double>(0.0, 30.0));
DynamicDouble expected4 = makeTree1_in_out();
DynamicDouble instance4 = new DynamicDouble(makeTree1(),
new Interval<Double>(-2.0, -1.0, 10.0),
new Interval<Double>(0.0, 30.0));
assertEquals(expected1, instance1);
assertEquals(expected2, instance2);
assertEquals(expected3, instance3);
assertEquals(expected4, instance4);
System.out.println("instance1: " + instance1);
System.out.println("instance2: " + instance2);
System.out.println("instance3: " + instance3);
System.out.println("instance4: " + instance4);
System.out.println();
}
@Test
public void testGetLow() {
System.out.println("getLow()");
DynamicDouble instance1 = makeTree1();
DynamicDouble instance2 = new DynamicDouble();
Double expResult1 = 0.0;
Double result1 = instance1.getLow();
Double expResult2 = Double.NEGATIVE_INFINITY;
Double result2 = instance2.getLow();
assertEquals(expResult1, result1);
assertEquals(expResult2, result2);
System.out.println("expResult1: " + expResult1);
System.out.println("result1: " + result1);
System.out.println("expResult2: " + expResult2);
System.out.println("result2: " + result2);
System.out.println();
}
@Test
public void testGetHigh() {
System.out.println("getHigh()");
DynamicDouble instance1 = makeTree1();
DynamicDouble instance2 = new DynamicDouble();
Double expResult1 = 30.0;
Double result1 = instance1.getHigh();
Double expResult2 = Double.POSITIVE_INFINITY;
Double result2 = instance2.getHigh();
assertEquals(expResult1, result1);
assertEquals(expResult2, result2);
System.out.println("expResult1: " + expResult1);
System.out.println("result1: " + result1);
System.out.println("expResult2: " + expResult2);
System.out.println("result2: " + result2);
System.out.println();
}
@Test
public void testIsInRange() {
System.out.println("isInRange()");
DynamicDouble instance = makeTree1();
Boolean expResult1 = false;
Boolean result1 = instance.isInRange(11.0, 14.0);
Boolean expResult2 = true;
Boolean result2 = instance.isInRange(9.0, 12.0);
assertEquals(expResult1, result1);
assertEquals(expResult2, result2);
System.out.println("expResult1: " + expResult1);
System.out.println("result1: " + result1);
System.out.println("expResult2: " + expResult2);
System.out.println("result2: " + result2);
System.out.println();
}
@Test
public void testGetValue_0args() {
System.out.println("getValue()");
DynamicDouble instance = makeTree1();
Double value1 = instance.getValue();
Double value2 = 0.0;
assertEquals(value1, value2);
System.out.println("value1: " + value1);
System.out.println("value2: " + value2);
System.out.println();
}
@Test
public void testGetValue_double_double() {
System.out.println("getValue(double, double)");
DynamicDouble instance = makeTree1();
Double value1 = instance.getValue(14, 16);
Double value2 = 4.0;
assertEquals(value1, value2);
System.out.println("value1: " + value1);
System.out.println("value2: " + value2);
System.out.println();
}
@Test
public void testGetValue_Estimator() {
System.out.println("getValue(Estimator)");
DynamicDouble dInstance = makeTree1();
DynamicInteger nInstance = makeTreeInteger();
DynamicBoolean bInstance = makeTreeBoolean();
DynamicCharacter cInstance = makeTreeCharacter();
DynamicString sInstance = makeTreeString();
Double valueRealAverage1 = dInstance.getValue(Estimator.AVERAGE);
Double valueRealAverage2 = 4.5;
Double valueRealMedian1 = dInstance.getValue(Estimator.MEDIAN);
Double valueRealMedian2 = 4.5;
Integer valueIntegerAverage1 = nInstance.getValue(Estimator.AVERAGE);
Integer valueIntegerAverage2 = 4;
Integer valueIntegerMedian1 = nInstance.getValue(Estimator.MEDIAN);
Integer valueIntegerMedian2 = 4;
Integer valueIntegerSum1 = nInstance.getValue(Estimator.SUM);
Integer valueIntegerSum2 = 45;
Integer valueIntegerMin1 = nInstance.getValue(Estimator.MIN);
Integer valueIntegerMin2 = 0;
Integer valueIntegerMax1 = nInstance.getValue(Estimator.MAX);
Integer valueIntegerMax2 = 9;
Boolean valueBooleanMin1 = bInstance.getValue(Estimator.MIN);
Boolean valueBooleanMin2 = false;
Boolean valueBooleanMax1 = bInstance.getValue(Estimator.MAX);
Boolean valueBooleanMax2 = true;
Character valueCharacterMin1 = cInstance.getValue(Estimator.MIN);
Character valueCharacterMin2 = '0';
Character valueCharacterMax1 = cInstance.getValue(Estimator.MAX);
Character valueCharacterMax2 = '9';
String valueStringMedian1 = sInstance.getValue(Estimator.MEDIAN);
String valueStringMedian2 = "5";
String valueStringMode1 = sInstance.getValue(Estimator.MODE);
String valueStringMode2 = "0_repeat";
String valueStringMin1 = sInstance.getValue(Estimator.MIN);
String valueStringMin2 = "0";
String valueStringMax1 = sInstance.getValue(Estimator.MAX);
String valueStringMax2 = "9";
String valueStringFirst1 = sInstance.getValue(Estimator.FIRST);
String valueStringFirst2 = "0";
String valueStringLast1 = sInstance.getValue(Estimator.LAST);
String valueStringLast2 = "0_repeat";
assertEquals(valueRealAverage1, valueRealAverage2);
assertEquals(valueRealMedian1, valueRealMedian2);
assertEquals(valueIntegerAverage1, valueIntegerAverage2);
assertEquals(valueIntegerMedian1, valueIntegerMedian2);
assertEquals(valueIntegerSum1, valueIntegerSum2);
assertEquals(valueIntegerMin1, valueIntegerMin2);
assertEquals(valueIntegerMax1, valueIntegerMax2);
assertEquals(valueBooleanMin1, valueBooleanMin2);
assertEquals(valueBooleanMax1, valueBooleanMax2);
assertEquals(valueCharacterMin1, valueCharacterMin2);
assertEquals(valueCharacterMax1, valueCharacterMax2);
assertEquals(valueStringMedian1, valueStringMedian2);
assertEquals(valueStringMode1, valueStringMode2);
assertEquals(valueStringMin1, valueStringMin2);
assertEquals(valueStringMax1, valueStringMax2);
assertEquals(valueStringFirst1, valueStringFirst2);
assertEquals(valueStringLast1, valueStringLast2);
System.out.println("valueRealAverage1: " + valueRealAverage1);
System.out.println("valueRealAverage2: " + valueRealAverage2);
System.out.println("valueRealMedian1: " + valueRealMedian1);
System.out.println("valueRealMedian2: " + valueRealMedian2);
System.out.println("valueIntegerAverage1: " + valueIntegerAverage1);
System.out.println("valueIntegerAverage2: " + valueIntegerAverage2);
System.out.println("valueIntegerMedian1: " + valueIntegerMedian1);
System.out.println("valueIntegerMedian2: " + valueIntegerMedian2);
System.out.println("valueIntegerSum1: " + valueIntegerSum1);
System.out.println("valueIntegerSum2: " + valueIntegerSum2);
System.out.println("valueIntegerMin1: " + valueIntegerMin1);
System.out.println("valueIntegerMin2: " + valueIntegerMin2);
System.out.println("valueIntegerMax1: " + valueIntegerMax1);
System.out.println("valueIntegerMax2: " + valueIntegerMax2);
System.out.println("valueBooleanMin1: " + valueBooleanMin1);
System.out.println("valueBooleanMin2: " + valueBooleanMin2);
System.out.println("valueBooleanMax1: " + valueBooleanMax1);
System.out.println("valueBooleanMax2: " + valueBooleanMax2);
System.out.println("valueCharacterMin1: " + valueCharacterMin1);
System.out.println("valueCharacterMin2: " + valueCharacterMin2);
System.out.println("valueCharacterMax1: " + valueCharacterMax1);
System.out.println("valueCharacterMax2: " + valueCharacterMax2);
System.out.println("valueStringMedian1: " + valueStringMedian1);
System.out.println("valueStringMedian2: " + valueStringMedian2);
System.out.println("valueStringMode1: " + valueStringMode1);
System.out.println("valueStringMode2: " + valueStringMode2);
System.out.println("valueStringMin1: " + valueStringMin1);
System.out.println("valueStringMin2: " + valueStringMin2);
System.out.println("valueStringMax1: " + valueStringMax1);
System.out.println("valueStringMax2: " + valueStringMax2);
System.out.println("valueStringFirst1: " + valueStringFirst1);
System.out.println("valueStringFirst2: " + valueStringFirst2);
System.out.println("valueStringLast1: " + valueStringLast1);
System.out.println("valueStringLast2: " + valueStringLast2);
System.out.println();
}
@Test
public void testGetValue_3args() {
System.out.println("getValue(double, double, Estimator)");
DynamicDouble instance = makeTree1();
Double valueRealAverage1 = instance.getValue(1, 9, Estimator.AVERAGE);
Double valueRealAverage2 = 1.5;
Double valueRealSum1 = instance.getValue(1, 9, Estimator.SUM);
Double valueRealSum2 = 6.0;
assertEquals(valueRealAverage1, valueRealAverage2);
assertEquals(valueRealSum1, valueRealSum2);
System.out.println("valueRealAverage1: " + valueRealAverage1);
System.out.println("valueRealAverage2: " + valueRealAverage2);
System.out.println("valueRealSum1: " + valueRealSum1);
System.out.println("valueRealSum2: " + valueRealSum2);
System.out.println();
}
@Test
public void testGetValues_0args() {
System.out.println("getValues()");
DynamicDouble instance = makeTree3();
List<Double> values1 = instance.getValues();
List<Double> values2 = new ArrayList<Double>();
for (int i = 0; i < 4; ++i)
values2.add((double)i);
assertEquals(values1, values2);
System.out.println("values1: " + values1);
System.out.println("values2: " + values2);
System.out.println();
}
@Test
public void testGetValues_double_double() {
System.out.println("getValues(double, double)");
DynamicDouble instance = makeTree1();
List<Double> values11 = instance.getValues(
Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY);
List<Double> values12 = new ArrayList<Double>();
for (int i = 0; i < 10; ++i)
values12.add((double)i);
List<Double> values21 = instance.getValues(0, 9);
List<Double> values22 = new ArrayList<Double>();
for (int i = 0; i < 4; ++i)
values22.add((double)i);
List<Double> values31 = instance.getValues(14, 19);
List<Double> values32 = new ArrayList<Double>();
for (int i = 4; i < 8; ++i)
values32.add((double)i);
List<Double> values41 = instance.getValues(24, 31);
List<Double> values42 = new ArrayList<Double>();
for (int i = 8; i < 10; ++i)
values42.add((double)i);
assertEquals(values11, values12);
assertEquals(values21, values22);
assertEquals(values31, values32);
assertEquals(values41, values42);
System.out.println("values11: " + values11);
System.out.println("values12: " + values12);
System.out.println("values21: " + values21);
System.out.println("values22: " + values22);
System.out.println("values31: " + values31);
System.out.println("values32: " + values32);
System.out.println("values41: " + values41);
System.out.println("values42: " + values42);
System.out.println();
}
@Test
public void testGetIntervals() {
System.out.println("getIntervals(double, double)");
DynamicDouble instance = makeTree1();
List<Interval<Double>> list = instance.getIntervals(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY);
String result = "<empty>";
if (!list.isEmpty()) {
StringBuilder sb = new StringBuilder("<");
sb.append(list.get(0).toString());
for (int i = 1; i < list.size(); ++i)
sb.append("; ").append(list.get(i).toString());
sb.append(">");
result = sb.toString();
}
String expResult = instance.toString();
assertEquals(result, expResult);
System.out.println("result: " + result);
System.out.println("expResult: " + expResult);
System.out.println();
}
@Test
public void testGetUnderlyingType() {
System.out.println("getUnderlyingType");
DynamicType dInstance = makeTree1();
DynamicType nInstance = makeTreeInteger();
DynamicType bInstance = makeTreeBoolean();
DynamicType cInstance = makeTreeCharacter();
DynamicType sInstance = makeTreeString();
assertEquals(dInstance.getUnderlyingType(), Double.class);
assertEquals(nInstance.getUnderlyingType(), Integer.class);
assertEquals(bInstance.getUnderlyingType(), Boolean.class);
assertEquals(cInstance.getUnderlyingType(), Character.class);
assertEquals(sInstance.getUnderlyingType(), String.class);
System.out.println("dInstance: " + dInstance.getUnderlyingType());
System.out.println("nInstance: " + nInstance.getUnderlyingType());
System.out.println("bInstance: " + bInstance.getUnderlyingType());
System.out.println("cInstance: " + cInstance.getUnderlyingType());
System.out.println("sInstance: " + sInstance.getUnderlyingType());
System.out.println();
}
@Test
public void testEquals() {
System.out.println("equals(Object)");
DynamicDouble instance1 = makeTree1();
DynamicDouble instance2 = makeTree1();
DynamicDouble instance3 = makeTree2();
DynamicDouble instance4 = makeTree3();
boolean expResult1 = true;
boolean result1 = instance1.equals(instance1);
boolean expResult2 = true;
boolean result2 = instance1.equals(instance2);
boolean expResult3 = false;
boolean result3 = instance2.equals(instance3);
boolean expResult4 = false;
boolean result4 = instance3.equals(instance4);
assertEquals(expResult1, result1);
assertEquals(expResult2, result2);
assertEquals(expResult3, result3);
assertEquals(expResult4, result4);
System.out.println();
}
@Test
public void testHashCode() {
System.out.println("hashCode()");
DynamicDouble instance1 = makeTree1();
DynamicDouble instance2 = makeTree1();
assertEquals(instance1.hashCode(), instance1.hashCode());
assertEquals(instance1.hashCode(), instance2.hashCode());
System.out.println("instance1.hashcode(): " + instance1.hashCode());
System.out.println("instance2.hashcode(): " + instance2.hashCode());
System.out.println();
}
@Test
public void testToString() {
System.out.println("toString()");
DynamicDouble instance = makeELboundsTree();
StringBuilder expResult = new StringBuilder("<");
expResult.append("[0.1, 0.2, 1.0); ");
expResult.append("[0.2, 0.3, 2.0); ");
expResult.append("(0.3, 0.4, 3.0)");
expResult.append(">");
String result = instance.toString();
assertEquals(expResult.toString(), result);
System.out.println("expResult: " + expResult);
System.out.println("result: " + result);
System.out.println();
}
@Test
public void testDeserialization() {
System.out.println("deserialization");
DynamicDouble instance1 = makeELboundsTree();
DynamicDouble instance2 = (DynamicDouble)AttributeType.DYNAMIC_DOUBLE.parse(instance1.toString());
DynamicDouble instance3 = new DynamicDouble();
DynamicDouble instance4 = (DynamicDouble)AttributeType.DYNAMIC_DOUBLE.parse(instance3.toString());
TimeInterval instance5 = makeTimeInterval();
TimeInterval instance6 = (TimeInterval)AttributeType.TIME_INTERVAL.parse(instance5.toString());
assertEquals(instance1, instance2);
assertEquals(instance3, instance4);
assertEquals(instance5, instance6);
System.out.println("instance1: " + instance1);
System.out.println("instance2: " + instance2);
System.out.println("instance3: " + instance3);
System.out.println("instance4: " + instance4);
System.out.println("instance5: " + instance5);
System.out.println("instance6: " + instance6);
System.out.println();
}
@Test
public void testOrder() {
DynamicInteger instance = new DynamicInteger();
instance = new DynamicInteger(instance, new Interval<Integer>(2009, 2010, 1));
instance = new DynamicInteger(instance, new Interval<Integer>(2006, 2007, 2));
instance = new DynamicInteger(instance, new Interval<Integer>(2001, 2002, 3));
List<Interval<Integer>> intervals = instance.getIntervals(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY);
assertEquals(new Interval<Integer>(2001, 2002, 3), intervals.get(0));
assertEquals(new Interval<Integer>(2006, 2007, 2), intervals.get(1));
assertEquals(new Interval<Integer>(2009, 2010, 1), intervals.get(2));
}
private TimeInterval makeTimeInterval() {
List<Interval> intervals = new ArrayList<Interval>();
intervals.add(new Interval<Double>(0.1, 0.2, false, true));
intervals.add(new Interval<Double>(0.2, 0.3, false, true));
intervals.add(new Interval<Double>(0.3, 0.4, true, true));
return new TimeInterval(intervals);
}
private DynamicDouble makeELboundsTree() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
intervals.add(new Interval<Double>(0.1, 0.2, false, true, 1.0));
intervals.add(new Interval<Double>(0.2, 0.3, false, true, 2.0));
intervals.add(new Interval<Double>(0.3, 0.4, true, true, 3.0));
return new DynamicDouble(intervals);
}
private DynamicDouble makeTree1() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
intervals.add(new Interval<Double>(26.0, 26.0, 9.0));
intervals.add(new Interval<Double>(0.0, 3.0, 0.0));
intervals.add(new Interval<Double>(6.0, 10.0, 2.0));
intervals.add(new Interval<Double>(5.0, 8.0, 1.0));
intervals.add(new Interval<Double>(8.0, 9.0, 3.0));
intervals.add(new Interval<Double>(17.0, 19.0, 6.0));
intervals.add(new Interval<Double>(16.0, 21.0, 5.0));
intervals.add(new Interval<Double>(15.0, 23.0, 4.0));
intervals.add(new Interval<Double>(25.0, 30.0, 8.0));
intervals.add(new Interval<Double>(19.0, 20.0, 7.0));
return new DynamicDouble(intervals);
}
private DynamicDouble makeTree1_in() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
intervals.add(new Interval<Double>( 26.0, 26.0, 9.0));
intervals.add(new Interval<Double>( 0.0, 3.0, 0.0));
intervals.add(new Interval<Double>( 6.0, 10.0, 2.0));
intervals.add(new Interval<Double>( 5.0, 8.0, 1.0));
intervals.add(new Interval<Double>( 8.0, 9.0, 3.0));
intervals.add(new Interval<Double>( 17.0, 19.0, 6.0));
intervals.add(new Interval<Double>( 16.0, 21.0, 5.0));
intervals.add(new Interval<Double>( 15.0, 23.0, 4.0));
intervals.add(new Interval<Double>( 25.0, 30.0, 8.0));
intervals.add(new Interval<Double>( 19.0, 20.0, 7.0));
intervals.add(new Interval<Double>(-2.0, -1.0, 10.0));
return new DynamicDouble(intervals);
}
private DynamicDouble makeTree1_out() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
return new DynamicDouble(intervals);
}
private DynamicDouble makeTree1_in_out() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
intervals.add(new Interval<Double>(-2.0, -1.0, 10.0));
return new DynamicDouble(intervals);
}
private DynamicDouble makeTree2() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
intervals.add(new Interval<Double>(3.0, 7.0, 0.0));
intervals.add(new Interval<Double>(4.0, 5.0, 1.0));
intervals.add(new Interval<Double>(6.0, 6.0, 2.0));
intervals.add(new Interval<Double>(9.0, 10.0, 3.0));
intervals.add(new Interval<Double>(11.0, 12.0, 4.0));
intervals.add(new Interval<Double>(15.0, 20.0, 5.0));
intervals.add(new Interval<Double>(16.0, 20.0, 6.0));
intervals.add(new Interval<Double>(18.0, 21.0, 7.0));
intervals.add(new Interval<Double>(24.0, 29.0, 8.0));
intervals.add(new Interval<Double>(30.0, 31.0, 9.0));
return new DynamicDouble(intervals);
}
private DynamicDouble makeTree3() {
List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();
intervals.add(new Interval<Double>(0.0, 3.0, 0.0));
intervals.add(new Interval<Double>(5.0, 8.0, 1.0));
intervals.add(new Interval<Double>(6.0, 10.0, 2.0));
intervals.add(new Interval<Double>(8.0, 9.0, 3.0));
return new DynamicDouble(intervals);
}
private DynamicInteger makeTreeInteger() {
List<Interval<Integer>> intervals = new ArrayList<Interval<Integer>>();
intervals.add(new Interval<Integer>(0.0, 3.0, 0));
intervals.add(new Interval<Integer>(5.0, 8.0, 1));
intervals.add(new Interval<Integer>(6.0, 10.0, 2));
intervals.add(new Interval<Integer>(8.0, 9.0, 3));
intervals.add(new Interval<Integer>(15.0, 23.0, 4));
intervals.add(new Interval<Integer>(16.0, 21.0, 5));
intervals.add(new Interval<Integer>(17.0, 19.0, 6));
intervals.add(new Interval<Integer>(19.0, 20.0, 7));
intervals.add(new Interval<Integer>(25.0, 30.0, 8));
intervals.add(new Interval<Integer>(26.0, 26.0, 9));
return new DynamicInteger(intervals);
}
private DynamicBoolean makeTreeBoolean() {
List<Interval<Boolean>> intervals = new ArrayList<Interval<Boolean>>();
intervals.add(new Interval<Boolean>(0.0, 3.0, false));
intervals.add(new Interval<Boolean>(5.0, 8.0, false));
intervals.add(new Interval<Boolean>(6.0, 10.0, false));
intervals.add(new Interval<Boolean>(8.0, 9.0, false));
intervals.add(new Interval<Boolean>(15.0, 23.0, false));
intervals.add(new Interval<Boolean>(16.0, 21.0, false));
intervals.add(new Interval<Boolean>(17.0, 19.0, true));
intervals.add(new Interval<Boolean>(19.0, 20.0, true));
intervals.add(new Interval<Boolean>(25.0, 30.0, true));
intervals.add(new Interval<Boolean>(26.0, 26.0, true));
return new DynamicBoolean(intervals);
}
private DynamicCharacter makeTreeCharacter() {
List<Interval<Character>> intervals =
new ArrayList<Interval<Character>>();
intervals.add(new Interval<Character>(0.0, 3.0, '0'));
intervals.add(new Interval<Character>(5.0, 8.0, '1'));
intervals.add(new Interval<Character>(6.0, 10.0, '2'));
intervals.add(new Interval<Character>(8.0, 9.0, '3'));
intervals.add(new Interval<Character>(15.0, 23.0, '4'));
intervals.add(new Interval<Character>(16.0, 21.0, '5'));
intervals.add(new Interval<Character>(17.0, 19.0, '6'));
intervals.add(new Interval<Character>(19.0, 20.0, '7'));
intervals.add(new Interval<Character>(25.0, 30.0, '8'));
intervals.add(new Interval<Character>(26.0, 26.0, '9'));
return new DynamicCharacter(intervals);
}
private DynamicString makeTreeString() {
List<Interval<String>> intervals = new ArrayList<Interval<String>>();
intervals.add(new Interval<String>(0.0, 3.0, "0"));
intervals.add(new Interval<String>(5.0, 8.0, "1"));
intervals.add(new Interval<String>(6.0, 10.0, "2"));
intervals.add(new Interval<String>(8.0, 9.0, "3"));
intervals.add(new Interval<String>(15.0, 23.0, "4"));
intervals.add(new Interval<String>(16.0, 21.0, "5"));
intervals.add(new Interval<String>(17.0, 19.0, "6"));
intervals.add(new Interval<String>(19.0, 20.0, "7"));
intervals.add(new Interval<String>(25.0, 30.0, "8"));
intervals.add(new Interval<String>(26.0, 26.0, "9"));
intervals.add(new Interval<String>(26.0, 26.0, "0_repeat"));
intervals.add(new Interval<String>(27.0, 27.0, "0_repeat"));
return new DynamicString(intervals);
}
}