X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.history%2Ftest%2Forg%2Fsimantics%2Fhistory%2Ftest%2FTestMedian.java;h=f777ac73bd32dcdd7eda47ca25bde259d25fc306;hb=refs%2Fchanges%2F38%2F238%2F2;hp=9a1cc20414cac9875f18a83abe2d20b3507ee463;hpb=24e2b34260f219f0d1644ca7a138894980e25b14;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.history/test/org/simantics/history/test/TestMedian.java b/bundles/org.simantics.history/test/org/simantics/history/test/TestMedian.java index 9a1cc2041..f777ac73b 100644 --- a/bundles/org.simantics.history/test/org/simantics/history/test/TestMedian.java +++ b/bundles/org.simantics.history/test/org/simantics/history/test/TestMedian.java @@ -1,76 +1,76 @@ -/******************************************************************************* - * Copyright (c) 2007, 2011 Association for Decentralized Information Management in - * Industry THTH ry. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics.history.test; - -import java.util.Arrays; -import java.util.TreeSet; - -import org.simantics.databoard.Bindings; -import org.simantics.databoard.binding.ArrayBinding; -import org.simantics.databoard.binding.Binding; -import org.simantics.databoard.binding.error.BindingConstructionException; -import org.simantics.databoard.binding.reflection.BindingProvider; -import org.simantics.databoard.binding.reflection.BindingRequest; -import org.simantics.databoard.serialization.Serializer; -import org.simantics.databoard.type.ArrayType; -import org.simantics.history.util.Median; -import org.simantics.history.util.MedianBinding; - -public class TestMedian { - - public static void main(String[] args) throws Exception { - - TreeSet numbers = new TreeSet(); - Median fastMedian = new Median( Bindings.INTEGER ); - - for (int i = 1; i < 10; i += 2) { - numbers.add(i); - fastMedian.add(i); - System.out.println(numbers + " median: " + fastMedian.getMedian()); - } - - for (int i = 10; i >= 2; i -= 2) { - numbers.add(i); - fastMedian.add(i); - System.out.println(numbers + " median: " + fastMedian.getMedian()); - } - - BindingProvider medianBindingFactory = new BindingProvider() { - public Binding provideBinding(org.simantics.databoard.binding.reflection.ClassBindingFactory master, BindingRequest request) throws BindingConstructionException { - if (Median.class.isAssignableFrom( request.getClazz() )) { - return new MedianBinding(new ArrayType(null), null); - } - return null; - } - }; - - Bindings.classBindingFactory.addFactory( medianBindingFactory ); - - ArrayBinding b = (ArrayBinding) Bindings.getBindingUnchecked(Median.class, Integer.class); - Median qu = (Median) b.createDefault(); - qu.add( 5 ); - System.out.println( b.get(qu, 0) ) ; - - System.out.println( b.toString( fastMedian ) ); - fastMedian.setSize( 3 ); - System.out.println( b.toString( fastMedian ) ); - - - Serializer s = Bindings.getSerializerUnchecked( b ); - byte[] data = s.serialize( fastMedian ); - System.out.println(Arrays.toString(data)); - Median q2 = (Median) s.deserialize( data ); - System.out.println( b.toString(q2) ); - - System.out.println(); - } -} +/******************************************************************************* + * Copyright (c) 2007, 2011 Association for Decentralized Information Management in + * Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.history.test; + +import java.util.Arrays; +import java.util.TreeSet; + +import org.simantics.databoard.Bindings; +import org.simantics.databoard.binding.ArrayBinding; +import org.simantics.databoard.binding.Binding; +import org.simantics.databoard.binding.error.BindingConstructionException; +import org.simantics.databoard.binding.reflection.BindingProvider; +import org.simantics.databoard.binding.reflection.BindingRequest; +import org.simantics.databoard.serialization.Serializer; +import org.simantics.databoard.type.ArrayType; +import org.simantics.history.util.Median; +import org.simantics.history.util.MedianBinding; + +public class TestMedian { + + public static void main(String[] args) throws Exception { + + TreeSet numbers = new TreeSet(); + Median fastMedian = new Median( Bindings.INTEGER ); + + for (int i = 1; i < 10; i += 2) { + numbers.add(i); + fastMedian.add(i); + System.out.println(numbers + " median: " + fastMedian.getMedian()); + } + + for (int i = 10; i >= 2; i -= 2) { + numbers.add(i); + fastMedian.add(i); + System.out.println(numbers + " median: " + fastMedian.getMedian()); + } + + BindingProvider medianBindingFactory = new BindingProvider() { + public Binding provideBinding(org.simantics.databoard.binding.reflection.ClassBindingFactory master, BindingRequest request) throws BindingConstructionException { + if (Median.class.isAssignableFrom( request.getClazz() )) { + return new MedianBinding(new ArrayType(null), null); + } + return null; + } + }; + + Bindings.classBindingFactory.addFactory( medianBindingFactory ); + + ArrayBinding b = (ArrayBinding) Bindings.getBindingUnchecked(Median.class, Integer.class); + Median qu = (Median) b.createDefault(); + qu.add( 5 ); + System.out.println( b.get(qu, 0) ) ; + + System.out.println( b.toString( fastMedian ) ); + fastMedian.setSize( 3 ); + System.out.println( b.toString( fastMedian ) ); + + + Serializer s = Bindings.getSerializerUnchecked( b ); + byte[] data = s.serialize( fastMedian ); + System.out.println(Arrays.toString(data)); + Median q2 = (Median) s.deserialize( data ); + System.out.println( b.toString(q2) ); + + System.out.println(); + } +}