/* * Copyright [2012-2014] PayPal Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package ml.shifu.shifu; import ml.shifu.shifu.container.*; import ml.shifu.shifu.container.BinningObject.DataType; import ml.shifu.shifu.container.BinningObject.VariableObjectComparator; import ml.shifu.shifu.container.ModelResultObject.ModelResultObjectComparator; import ml.shifu.shifu.container.ValueObject.ValueObjectComparator; import ml.shifu.shifu.container.meta.MetaGroup; import ml.shifu.shifu.container.meta.MetaItem; import ml.shifu.shifu.container.meta.ValidateResult; import ml.shifu.shifu.container.meta.ValueOption; import ml.shifu.shifu.container.obj.*; import ml.shifu.shifu.container.obj.ColumnConfig.ColumnConfigComparator; import ml.shifu.shifu.container.obj.ModelTrainConf.ALGORITHM; import ml.shifu.shifu.core.Binning.BinningDataType; import ml.shifu.shifu.fs.SourceFile; import ml.shifu.shifu.message.*; import org.apache.commons.io.FileUtils; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.Test; import java.beans.IntrospectionException; import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; public class JavaBeanTest { @Test public void testAllJavaBeans() throws IntrospectionException, IOException { // JavaBeanTester.test(ScanStatsRawDataMessage.class); // JavaBeanTester.test(ScanTrainDataMessage.class); JavaBeanTester.test(AkkaActorInputMessage.class); JavaBeanTester.test(ColumnScoreMessage.class); JavaBeanTester.test(EvalResultMessage.class); JavaBeanTester.test(RunModelDataMessage.class); JavaBeanTester.test(RunModelResultMessage.class); // JavaBeanTester.test(ScanEvalDataMessage.class); JavaBeanTester.test(StatsPartRawDataMessage.class); JavaBeanTester.test(StatsValueObjectMessage.class); JavaBeanTester.test(TrainResultMessage.class); JavaBeanTester.test(TrainPartDataMessage.class); JavaBeanTester.test(NormPartRawDataMessage.class); JavaBeanTester.test(NormResultDataMessage.class); JavaBeanTester.test(StatsResultMessage.class); // JavaBeanTester.test(TrainInstanceMessage.class); JavaBeanTester.test(ColumnBinning.class); JavaBeanTester.test(ColumnStats.class); JavaBeanTester.test(ColumnConfig.class); JavaBeanTester.test(ModelBasicConf.class); JavaBeanTester.test(ModelSourceDataConf.class); JavaBeanTester.test(ModelStatsConf.class); JavaBeanTester.test(ModelVarSelectConf.class); JavaBeanTester.test(ModelNormalizeConf.class); JavaBeanTester.test(ModelTrainConf.class); JavaBeanTester.test(ModelConfig.class); JavaBeanTester.test(ValueOption.class); JavaBeanTester.test(ValidateResult.class); JavaBeanTester.test(MetaItem.class); JavaBeanTester.test(MetaGroup.class); JavaBeanTester.test(CaseScoreResult.class); JavaBeanTester.test(ModelResultObject.class); JavaBeanTester.test(PerformanceObject.class); JavaBeanTester.test(ReasonResultObject.class); JavaBeanTester.test(ScoreObject.class); JavaBeanTester.test(VariableStoreObject.class); JavaBeanTester.test(ValueObject.class); JavaBeanTester.test(EvalConfig.class); JavaBeanTester.test(ModelInitInputObject.class); JavaBeanTester.test(WeightAmplifier.class); JavaBeanTester.test(ColumnScoreObject.class); JavaBeanTester.test(SourceFile.class); ModelResultObjectComparator modelResultObjectComparator = new ModelResultObjectComparator(); modelResultObjectComparator.compare(new ModelResultObject(1, "2", 3d), new ModelResultObject(1, "2", 3d)); ColumnConfigComparator cfc = new ColumnConfigComparator("KS"); ColumnConfig columnConfig = new ColumnConfig(); columnConfig.setKs(0.0d); columnConfig.setIv(0.0d); cfc.compare(columnConfig, columnConfig); cfc = new ColumnConfigComparator("IV"); cfc.compare(columnConfig, columnConfig); HashMap<String, String> hashMap = new HashMap<String, String>(); hashMap.put("id", "12"); new ScoreObject(Arrays.asList(1d), 1); new ScoreObject(Arrays.asList(1d), 0); ValueObjectComparator voc = new ValueObjectComparator(BinningDataType.Categorical); ValueObject valueObject = new ValueObject(); valueObject.setRaw("123"); valueObject.setTag("1"); valueObject.setValue(1.0d); voc.compare(valueObject, valueObject); ValueObject valueObject2 = new ValueObject(); valueObject2.setRaw("345"); valueObject2.setTag("1"); valueObject2.setValue(2.0d); voc.compare(valueObject, valueObject2); voc.compare(valueObject, valueObject); voc = new ValueObjectComparator(BinningDataType.Numerical); voc.compare(valueObject, valueObject2); voc.compare(valueObject, valueObject); ModelConfig.createInitModelConfig("c", ALGORITHM.NN, "aaa"); BinningObject bo = new BinningObject(DataType.Numerical); bo.getNumericalData(); bo.getScore(); bo.getTag(); bo.getType(); bo.setNumericalData(1d); bo.setScore(1.0d); bo.setTag("1"); bo.toString(); BinningObject bo2 = new BinningObject(DataType.Categorical); bo2.getCategoricalData(); bo2.getScore(); bo2.getTag(); bo2.getType(); bo2.setCategoricalData("111"); bo2.setScore(1.0d); bo2.setTag("1"); bo2.toString(); BinningObject bo3 = new BinningObject(DataType.Numerical); bo3.getNumericalData(); bo3.getScore(); bo3.getTag(); bo3.getType(); bo3.setNumericalData(111d); bo3.setScore(1.0d); bo3.setTag("1"); bo3.toString(); BinningObject bo4 = new BinningObject(DataType.Categorical); bo4.getCategoricalData(); bo4.getScore(); bo4.getTag(); bo4.getType(); bo4.setCategoricalData("111"); bo4.setScore(1.0d); bo4.setTag("1"); bo4.toString(); VariableObjectComparator vooc = new VariableObjectComparator(); vooc.compare(bo, bo3); vooc.compare(bo2, bo4); ExceptionMessage es = new ExceptionMessage(new RuntimeException()); es.setException(new RuntimeException()); es.getException(); } @Test(expectedExceptions = RuntimeException.class) public void binningObjectGetData() { BinningObject object = new BinningObject(DataType.Numerical); object.getCategoricalData(); } @Test(expectedExceptions = RuntimeException.class) public void binningObjectSetData() { BinningObject object = new BinningObject(DataType.Numerical); object.setCategoricalData("test"); } @Test public void binningObjectComparator() { BinningObject o1 = new BinningObject(DataType.Numerical); BinningObject o2 = new BinningObject(DataType.Numerical); o1.setNumericalData(0.1); o2.setNumericalData(0.2); o1.setTag("0"); o2.setTag("1"); VariableObjectComparator comp = new VariableObjectComparator(); Assert.assertEquals(comp.compare(o1, o2), -1); o1 = new BinningObject(DataType.Categorical); o2 = new BinningObject(DataType.Categorical); o1.setCategoricalData("test1"); o2.setCategoricalData("test2"); o1.setTag("0"); o2.setTag("1"); Assert.assertEquals(comp.compare(o1, o2), -1); } @Test(expectedExceptions = RuntimeException.class) public void binningObjectComparatorException() { BinningObject o1 = new BinningObject(DataType.Numerical); BinningObject o2 = new BinningObject(DataType.Categorical); VariableObjectComparator comp = new VariableObjectComparator(); comp.compare(o1, o2); } @AfterClass public void tearDown() throws IOException { FileUtils.deleteDirectory(new File("c")); } }