Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Часть 2. Самостоятельно разработайте спецификацию метода, реализуйтеСтр 1 из 3Следующая ⇒
Лабораторная работа №6 Введение в тестирование и отладку кода Цели работы: Реализовать простой класс. Задание 1 Вариант 3 Часть 1. Написать тесты к методу, а затем реализовать сам метод по Заданной спецификации. Реализуйте и протестируйте метод int indexOfDifference(String str1, String str2) ко- торый сравнивает две строки и возвращает индекс той позиции, в которой они разли- чаются. Например, indexOfDifference(”i am a machine”, ”i am a robot”) должно вер- нуть 7. StringUtils.indexOfDifference(null, null) = NullPointerException StringUtils.indexOfDifference(””, ””) = -1 StringUtils.indexOfDifference(””, ”abc”) = 0 StringUtils.indexOfDifference(”abc”, ””) = 0 StringUtils.indexOfDifference(”abc”, ”abc”) = -1 StringUtils.indexOfDifference(”ab”, ”abxyz”) = 2 StringUtils.indexOfDifference(”abcde”, ”abxyz”) = 2 StringUtils.indexOfDifference(”abcde”, ”xyz”) = 0 Часть 2. Самостоятельно разработайте спецификацию метода, реализуйте её в тестах, а затем реализуйте сам метод. Напишите метод String difference(String str1, String str2) сравнивающий две стро- ки и возвращающий разницу между ними. Другими словами, метод должен остаток от строки, где они различаются. Class Lab6_ssp: package Lab6_ssp;
import java.util.ArrayList; import java.util.Iterator; import java.util.List;
/** * Created by piratXus on 12.10.2016. */ public class Lab6_ssp {
private int getIndex(Iterator<? > iter1, Iterator<? > iter2, int index, int count) { while (iter2.hasNext()) { if (iter1.hasNext() == false) { index = count; break; } if (iter1.next()! = iter2.next()) { index = count; break; } else index = -1; count++; } return index; }
public int indexOfDifference(String str1, String str2) throws Exception { int index = 0; try { if(str1.equals(" ") & & str2.equals(" ")){ return -1; } char[] char1 = str1.toCharArray(); char[] char2 = str2.toCharArray(); List< Character> str1List = new ArrayList< Character> (); List< Character> str2List = new ArrayList< Character> ();
for (char ch: char1) { str1List.add(ch); } for (char ch: char2) { str2List.add(ch); } Iterator< Character> iter1 = str1List.iterator(); Iterator< Character> iter2 = str2List.iterator(); if (char1.length == char2.length & & char2.length == 0) { int count=0; index = getIndex(iter1, iter2, index, count); } else if (char1.length > char2.length) { int count = 0; index = getIndex(iter1, iter2, index, count); } else if (char2.length > char1.length) { int count = 0; index = getIndex(iter1, iter2, index, count); } else if (char2.length == char1.length) { int count = 0; index = getIndex(iter1, iter2, index, count); } return index; } catch (NullPointerException e) { return 404; } }
public String difference(String str1, String str2)throws Exception{ String outputString=" "; try{ char[] char1 = str1.toCharArray(); char[] char2 = str2.toCharArray(); int inedxDif=indexOfDifference(str1, str2); if(inedxDif==-1){ outputString=str1; }else{ for(int i=0; i< inedxDif; i++){ outputString+=char1[i]; } } return outputString; }catch (NullPointerException e){ return e.getMessage(); } } }
Class JunitTestSum: package Lab6_ssp;
import org.junit.Test;
import static junit.framework.Assert.assertEquals;
/** * Created by piratXus on 12.10.2016. */
public class JunitTestSum { @Test public void testAccum() throws Exception{ Sum sum=new Sum(); int i = sum.accum(1, 2, 3, 4, 5); int test2 = sum.accum(2, 2); int test3 = sum.accum(999999999, 999999999);
assertEquals(15, i); assertEquals(4, test2); }
@Test public void testIndexOfDifference() throws Exception{ Lab6_ssp lab6_ssp=new Lab6_ssp(); assertEquals(" NullPointerException", 404, lab6_ssp.indexOfDifference(null, null)); assertEquals(-1, lab6_ssp.indexOfDifference(" ", " ")); assertEquals(0, lab6_ssp.indexOfDifference(" ", " abc")); assertEquals(0, lab6_ssp.indexOfDifference(" abc", " ")); assertEquals(-1, lab6_ssp.indexOfDifference(" abc", " abc")); assertEquals(2, lab6_ssp.indexOfDifference(" ab", " abxyz")); assertEquals(2, lab6_ssp.indexOfDifference(" abcd", " abxy")); assertEquals(0, lab6_ssp.indexOfDifference(" adcde", " xyz"));
System.out.println(" Test index of difference successful"); }
@Test public void testDifference() throws Exception{ Lab6_ssp lab6_ssp=new Lab6_ssp(); assertEquals(null, lab6_ssp.difference(null, null)); assertEquals(" ", lab6_ssp.difference(" ", " ")); assertEquals(" ", lab6_ssp.difference(" ", " abc")); assertEquals(" ", lab6_ssp.difference(" abc", " ")); assertEquals(" abc", lab6_ssp.difference(" abc", " abc")); assertEquals(" ab", lab6_ssp.difference(" ab", " abxyz")); assertEquals(" ab", lab6_ssp.difference(" abcd", " abxy")); assertEquals(" ", lab6_ssp.difference(" adcde", " xyz")); System.out.println(" Test difference successful"); }
}
Main Class: JunitTestSum junitTestSum=new JunitTestSum(); junitTestSum.testIndexOfDifference(); junitTestSum.testDifference();
Output:
|