/* * Copyright 2016 Red Hat, Inc. and/or its affiliates. * * 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 org.optaplanner.core.impl.score; import java.math.BigDecimal; import org.junit.Test; import org.optaplanner.core.api.score.buildin.bendable.BendableScore; import org.optaplanner.core.api.score.buildin.bendablebigdecimal.BendableBigDecimalScore; import org.optaplanner.core.api.score.buildin.bendablelong.BendableLongScore; import org.optaplanner.core.api.score.buildin.hardmediumsoft.HardMediumSoftScore; import org.optaplanner.core.api.score.buildin.hardmediumsoftlong.HardMediumSoftLongScore; import org.optaplanner.core.api.score.buildin.hardsoft.HardSoftScore; import org.optaplanner.core.api.score.buildin.hardsoftbigdecimal.HardSoftBigDecimalScore; import org.optaplanner.core.api.score.buildin.hardsoftdouble.HardSoftDoubleScore; import org.optaplanner.core.api.score.buildin.hardsoftlong.HardSoftLongScore; import org.optaplanner.core.api.score.buildin.simple.SimpleScore; import org.optaplanner.core.api.score.buildin.simplebigdecimal.SimpleBigDecimalScore; import org.optaplanner.core.api.score.buildin.simpledouble.SimpleDoubleScore; import org.optaplanner.core.api.score.buildin.simplelong.SimpleLongScore; import static org.junit.Assert.*; public class ScoreUtilsTest { @Test public void parseScore() { assertEquals(SimpleScore.valueOf(-1000), ScoreUtils.parseScore(SimpleScore.class, "-1000")); assertEquals(SimpleLongScore.valueOf(-1000L), ScoreUtils.parseScore(SimpleLongScore.class, "-1000")); assertEquals(SimpleDoubleScore.valueOf(-1000.0), ScoreUtils.parseScore(SimpleDoubleScore.class, "-1000.0")); assertEquals(SimpleBigDecimalScore.valueOf(new BigDecimal("-1000")), ScoreUtils.parseScore(SimpleBigDecimalScore.class, "-1000")); assertEquals(HardSoftScore.valueOf(-1000, -200), ScoreUtils.parseScore(HardSoftScore.class, "-1000hard/-200soft")); assertEquals(HardSoftLongScore.valueOf(-1000L, -200L), ScoreUtils.parseScore(HardSoftLongScore.class, "-1000hard/-200soft")); assertEquals(HardSoftDoubleScore.valueOf(-1000.0, -200.0), ScoreUtils.parseScore(HardSoftDoubleScore.class, "-1000hard/-200soft")); assertEquals(HardSoftBigDecimalScore.valueOf(new BigDecimal("-1000"), new BigDecimal("-200")), ScoreUtils.parseScore(HardSoftBigDecimalScore.class, "-1000hard/-200soft")); assertEquals(HardMediumSoftScore.valueOf(-1000, -200, -30), ScoreUtils.parseScore(HardMediumSoftScore.class, "-1000hard/-200medium/-30soft")); assertEquals(HardMediumSoftLongScore.valueOf(-1000L, -200L, -30L), ScoreUtils.parseScore(HardMediumSoftLongScore.class, "-1000hard/-200medium/-30soft")); assertEquals(BendableScore.valueOf(new int[] {-1000}, new int[]{-200, -30}), ScoreUtils.parseScore(BendableScore.class, "[-1000]hard/[-200/-30]soft")); assertEquals(BendableLongScore.valueOf(new long[] {-1000L}, new long[]{-200L, -30L}), ScoreUtils.parseScore(BendableLongScore.class, "[-1000]hard/[-200/-30]soft")); assertEquals(BendableBigDecimalScore.valueOf(new BigDecimal[] {new BigDecimal("-1000")}, new BigDecimal[]{new BigDecimal("-200"), new BigDecimal("-30")}), ScoreUtils.parseScore(BendableBigDecimalScore.class, "[-1000]hard/[-200/-30]soft")); } }