Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / тестовое задание / 23 сообщений из 23, страница 1 из 1
13.02.2012, 19:24
    #37659784
spbsmile
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
Здравствуйте!
задание на позицию стажера-автоматизатора в Яндекс :) :
Интерфейс
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
public interface Rtriangle {
int getApexX1();
int getApexY1();
int getApexX2();
int getApexY2();
int getApexX3();
int getApexY3();
}


Методы возвращают 6 чисел, которые являются координатами трех вершин прямоугольного треугольника в декартовой системе координат

Есть метод, возвращающий прямоугольный треугольник:
Код: java
1.
2.
3.
4.
5.
6.
public final class RtriangleProvider {

public static Rtriangle getRtriangle() {
...
}
}


Требуется: написать код junit теста, проверяющего метод getRtriangle на то, что он действительно возвращает прямоугольный треугольник


Rtriangle.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
public interface Rtriangle {
	int getApexX1 ();  
	int getApexY1 ();  
	int getApexX2 ();  
	int getApexY2 ();  
	int getApexX3 ();  
	int getApexY3 (); 
}


RtriangleProvider.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public final  class RtriangleProvider implements Rtriangle{

	public int getApexX1() { return 5; }
	public int getApexY1() { return 5; }
	public int getApexX2() { return 5; }
	public int getApexY2() { return 5; }
        public int getApexX3() { return 5; }
	public int getApexY3() { return 5; }  
	
	public static Rtriangle getRtriangle () {
		return new Rtriangle(){
                        public int getApexX1() { return 5; }
			public int getApexY1() { return 5; }
			public int getApexX2() { return 5; }
			public int getApexY2() { return 5; }
		        public int getApexX3() { return 5; }
			public int getApexY3() { return 5; }
			
		};
	
	}
	
}	


мой первый junit test :
Test.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
import static org.junit.Assert.*;
import junit.framework.TestCase;
import java.util.Arrays;

public class Test extends TestCase extends TestCase{
	
	public void testGetTriangle ()  {
        
	 System.out.println("getRtriangle");
     Rtriangle result = RtriangleProvider.getRtriangle ();
     assertNotNull(result);

        // в массив записываю стороны прямоуголного треугольника 
        int[] b1 = new int[] { (int) (Math.sqrt( (int)Math.pow(result.getApexY1() - result.getApexY2(), 2)) +  (int)Math.pow(result.getApexX1() - result.getApexX2(), 2)),
                               (int) (Math.sqrt( (int)Math.pow(result.getApexY1() - result.getApexY2(), 2)) +  (int)Math.pow(result.getApexX1() - result.getApexX2(), 2)),
                               (int) (Math.sqrt( (int)Math.pow(result.getApexY1() - result.getApexY2(), 2)) +  (int)Math.pow(result.getApexX1() - result.getApexX2(), 2))};


                


        Arrays.sort(b1);

        if ( b1[2] >= b1[0] + b1[1]  &&  b1[2]*b1[2]  != b1[0]*b1[0] + b1[1]*b1[1] ){
        	
        	fail();
      }
   }


	
} 


System.out.println(b1[1]);
выдает 0 .
в массив не записываются длины сторон.
подскажите, пожалуйста:)
...
Рейтинг: 0 / 0
13.02.2012, 19:34
    #37659796
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
spbsmile public int getApexX1() { return 5; }
public int getApexY1() { return 5; }
public int getApexX2() { return 5; }
public int getApexY2() { return 5; }
public int getApexX3() { return 5; }
public int getApexY3() { return 5; }

System.out.println(b1[1]);
выдает 0.

Школу прогуливали? Или это гипотетический вопрос, является ли точка прямоугольным треугольником?
...
Рейтинг: 0 / 0
13.02.2012, 22:40
    #37660070
spbsmile
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
уважаемый ,Blazkowicz )
по логике вещей треугольником, является фигура, которая проходит проверку на неравенство треугольника)
т.е *лина любой стороны треугольника всегда не превосходит сумму длин двух его других сторон.
Код: java
1.
if ( b1[2] >= b1[0] + b1[1] ... 


проблема в том, что у меня в массив не записываются длины которые я пытаюсь вычислить по координатам.
L = sqrt((x2-x1)^2 + (y2-y1) ^2)
вот.)
помогите пожалуйста)
...
Рейтинг: 0 / 0
13.02.2012, 22:44
    #37660072
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
spbsmileпроблема в том, что у меня в массив не записываются длины которые я пытаюсь вычислить по координатам.
L = sqrt((x2-x1)^2 + (y2-y1) ^2)
вот.)
помогите пожалуйста)
Ну, возьмите калькулятор и считайте:
sqrt((5-5)^2 + (5-5) ^2) = ?
Не возьмут вас в yandex, если вам уже больше 14ти лет.
...
Рейтинг: 0 / 0
13.02.2012, 22:50
    #37660079
spbsmile
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
уважаемый, Blazkowicz
а как без калькулятора с помощью метода testGetTriangle определять длину сторон треугольника?
у меня было такое предположение
Код: java
1.
2.
3.
4.
// в массив записываю стороны прямоуголного треугольника 
        int[] b1 = new int[] { (int) (Math.sqrt( (int)Math.pow(result.getApexY1() - result.getApexY2(), 2)) +  (int)Math.pow(result.getApexX1() - result.getApexX2(), 2)),
                               (int) (Math.sqrt( (int)Math.pow(result.getApexY1() - result.getApexY2(), 2)) +  (int)Math.pow(result.getApexX1() - result.getApexX2(), 2)),
                               (int) (Math.sqrt( (int)Math.pow(result.getApexY1() - result.getApexY2(), 2)) +  (int)Math.pow(result.getApexX1() - result.getApexX2(), 2))};

но оно ,к сожалению , не работает.
...
Рейтинг: 0 / 0
13.02.2012, 22:59
    #37660091
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
1. Вооружаемся линейкой и листом в клетку. Рисуем систему координат. Рисуем треугольник {5,5},{5,5},{5,5}. Берем линейку и меряем длину сторон.
2. Читаем что такое int. Вычисляем корень квадратный из разных целых натуральных чисел и смотрим какое отношение результат имеет к типу int.
...
Рейтинг: 0 / 0
13.02.2012, 23:09
    #37660101
spbsmile
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
оригинально. у меня со вторым пунктом проблема
Код: java
1.
(int) (Math.sqrt( (int)Math.pow(result.getApexY1() - result.getApexY2(), 2)) +  (int)Math.pow(result.getApexX1() - result.getApexX2(), 2)),


почему это не работает мне может кто-нибудь сказать?
спасибо!
...
Рейтинг: 0 / 0
13.02.2012, 23:49
    #37660153
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
spbsmile
Код: java
1.
2.
3.
        int[] b1 = new int[] { (int) (Math.sqrt( (int)Math.pow(result.getApexY1() - result.getApexY2(), 2)) +  (int)Math.pow(result.getApexX1() - result.getApexX2(), 2)),
                               (int) (Math.sqrt( (int)Math.pow(result.getApexY1() - result.getApexY2(), 2)) +  (int)Math.pow(result.getApexX1() - result.getApexX2(), 2)),
                               (int) (Math.sqrt( (int)Math.pow(result.getApexY1() - result.getApexY2(), 2)) +  (int)Math.pow(result.getApexX1() - result.getApexX2(), 2))};


К вопросу о пользе копипаста. Меряем растояние от первой до второй точки, меряем растояние от первой до второй точки, меряем растояние от первой до второй точки - получаем все три стороны треугольника.
...
Рейтинг: 0 / 0
14.02.2012, 01:20
    #37660230
spbsmile
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
помогите измерить расстояние от первой до второй точки, а то у меня не получилось :(
...
Рейтинг: 0 / 0
14.02.2012, 09:55
    #37660423
mesier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
spbsmileпомогите измерить расстояние от первой до второй точки, а то у меня не получилось :(

Теорма Пифагора же.

L = sqrt( pow(y1-y2),2) + pow(x1-x2),2) )
...
Рейтинг: 0 / 0
14.02.2012, 13:44
    #37660942
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
spbsmileпо логике вещей треугольником, является фигура, которая проходит проверку на неравенство треугольника)
т.е *лина любой стороны треугольника всегда не превосходит сумму длин двух его других сторон.


Вам дают всего три точки, то есть это по любому треугольник, а в задании, вами же написанном, нужно выяснить, является ли он прямоугольным.
...
Рейтинг: 0 / 0
14.02.2012, 13:50
    #37660966
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
wessenВам дают всего три точки, то есть это по любому треугольник
Остаётся открытым вопрос - являются ли точка и отрезок вырождеными случаями треугольника?
...
Рейтинг: 0 / 0
14.02.2012, 14:04
    #37661011
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
spbsmile,

Вот это b1[2]*b1[2] != b1[0]*b1[0] + b1[1]*b1[1] почти всегда будет false из-за (int) (Math.sqrt(. Так что в b1 храните квадраты. И сначала проверяйте сумму, а потом, если хотите, берите корни и b1[2] >= b1[0] + b1[1] .
...
Рейтинг: 0 / 0
14.02.2012, 14:11
    #37661029
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
BlazkowiczОстаётся открытым вопрос - являются ли точка и отрезок вырождеными случаями треугольника?

Кстати да, если использовать метод автора, основанный на вычислении длин сторон, то не мешало бы сначала проверить, не лежат ли точки на одной прямой, а то как нефиг делать, отрезок может стать прямоугольным треугольником.
...
Рейтинг: 0 / 0
14.02.2012, 14:27
    #37661068
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
wessen,

проверяется вот b1[2]*b1[2] != b1[0]*b1[0] + b1[1]*b1[1], не лежат точки на одной прямой, не лежат, а вот точка может.
...
Рейтинг: 0 / 0
14.02.2012, 16:46
    #37661426
Йуный джавистЪ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
автор2. Читаем что такое int. Вычисляем корень квадратный из разных целых натуральных чисел и смотрим какое отношение результат имеет к типу int.

Только зачем вычислять корни? Если сразу сравнивать квадраты, то удастся обойтись целочисленной арифметикой.
...
Рейтинг: 0 / 0
14.02.2012, 16:50
    #37661435
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
Йуный джавистЪТолько зачем вычислять корни? Если сразу сравнивать квадраты, то удастся обойтись целочисленной арифметикой.
Ну, мессадж был к автору. Он то не знает что дробные значения квадратов обрубаются для int-приведения.
Офигенное, кстати, тестовое задание. Респект автору.
...
Рейтинг: 0 / 0
14.02.2012, 19:02
    #37661722
zloilelik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
Страница 48. Дэвид Флегнаган. Ява в примерах. Тестирование прямоугольника (экземпляра и полей его 4-х). и его координат.
Удачи ! Похоже оттуда взяли пример рекрутеры. Только на треугольник изменили задачу .-)))))))))
...
Рейтинг: 0 / 0
14.02.2012, 19:03
    #37661725
zloilelik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
ERROR !
Дэвид Флэнаган
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
23.06.2014, 14:47
    #38677348
serge.ptz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
На минуточку... Вы таки на тестировщика позиционируетесь или на разработчика?

Вам надо протестировать ТО, ЧТО дали. Зачем вы имплементируете интерфейс в класс? Вы же исправили баг (читай сделали работу разработчика), а потом тестируете.

ИМХО, здесь нужно не тест писать, а сразу баг-репорт, что невозможно протестировать класс Triangle.
...
Рейтинг: 0 / 0
23.06.2014, 14:48
    #38677353
serge.ptz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
Упс... На дату не посмотрел. Уже не актуально видать. :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
02.08.2015, 00:54
    #39021087
Denis_m1st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
serge.ptzИМХО, здесь нужно не тест писать, а сразу баг-репорт, что невозможно протестировать класс Triangle.Про mock обьекты слышали?
...
Рейтинг: 0 / 0
03.08.2015, 08:31
    #39021401
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тестовое задание
Denis_m1stПро mock обьекты слышали?
А про некропостинг?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / тестовое задание / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]