/** * Copyright (c) 2016 committers of YAKINDU and others. * 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: * @author René Beckmann (beckmann@itemis.de) * */ package org.yakindu.sct.model.sexec.transformation.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import org.junit.Before; import org.junit.Test; import org.yakindu.sct.model.sexec.naming.ShortString; import com.google.common.primitives.Shorts; public class ShortStringTest { private ShortString shortstr; @Test public void originalStringTest() { shortstr = new ShortString("ShortStringTest"); assertEquals("ShortStringTest", shortstr.getShortenedString()); } @Test public void resetTest() { shortstr = new ShortString("Yakindu"); shortstr.removeIndex(1); shortstr.removeIndex(3); shortstr.removeIndex(6); assertEquals("Yknd", shortstr.getShortenedString()); shortstr.reset(); assertEquals("Yakindu", shortstr.getShortenedString()); } @Test public void rollBackTest() { shortstr = new ShortString("Yakindu_StatechartTools"); shortstr.removeIndex(0); shortstr.rollback(); assertEquals("Yakindu_StatechartTools", shortstr.getShortenedString()); } @Test public void basicCutCostTest() { shortstr = new ShortString("AAab_7"); assertEquals(ShortString.COST_FIRSTLETTER + ShortString.COST_UPPERCASE, shortstr.getBaseCutCost(0)); assertEquals(ShortString.COST_UPPERCASE, shortstr.getBaseCutCost(1)); assertEquals(ShortString.COST_LOWERCASE_VOCALS, shortstr.getBaseCutCost(2)); assertEquals(ShortString.COST_LOWERCASE_CONSONANTS, shortstr.getBaseCutCost(3)); assertEquals(ShortString.COST_UNDERSCORE, shortstr.getBaseCutCost(4)); assertEquals(ShortString.COST_DIGIT, shortstr.getBaseCutCost(5)); } @Test public void cutCostFactorTest() { shortstr = new ShortString("012345"); shortstr.removeIndex(0); assertEquals(11, shortstr.getCutCostFactor()); shortstr.removeIndex(1); assertEquals(13, shortstr.getCutCostFactor()); shortstr.removeIndex(2); assertEquals(15, shortstr.getCutCostFactor()); shortstr.removeIndex(3); assertEquals(16, shortstr.getCutCostFactor()); shortstr.removeIndex(4); assertEquals(18, shortstr.getCutCostFactor()); shortstr.removeIndex(5); assertEquals(20, shortstr.getCutCostFactor()); } @Test public void cutRatioTest1() { shortstr = new ShortString("ababababab"); shortstr.removeIndex(0); shortstr.removeIndex(2); shortstr.removeIndex(4); shortstr.removeIndex(6); shortstr.removeIndex(8); assertEquals(0.5, shortstr.getCutRatio(), 0.01); } @Test public void costVocalsTest() { shortstr = new ShortString("YakinduStatechartTools"); shortstr.removeIndex(1); //a shortstr.removeIndex(3); //i shortstr.removeIndex(6); //u shortstr.removeIndex(9); //a shortstr.removeIndex(11); //e shortstr.removeIndex(14); // a shortstr.removeIndex(18); // o shortstr.removeIndex(19); // o int expectedCost = 8 * ShortString.COST_LOWERCASE_VOCALS * shortstr.getCutCostFactor(); assertEquals(expectedCost, shortstr.getCutCost()); } @Test public void costFirstLetterTest() { shortstr = new ShortString("all"); shortstr.removeIndex(0); int expectedCost = ( 1 * ShortString.COST_FIRSTLETTER + 1 * ShortString.COST_LOWERCASE_VOCALS ) * shortstr.getCutCostFactor(); assertEquals(expectedCost, shortstr.getCutCost()); } @Test public void costFirstUppercaseTest() { shortstr = new ShortString("ATest"); shortstr.removeIndex(0); int expectedCost = ( 1 * ShortString.COST_FIRSTLETTER + 1 * ShortString.COST_UPPERCASE ) * shortstr.getCutCostFactor(); assertEquals(expectedCost, shortstr.getCutCost()); } }