powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / тестовое задание
23 сообщений из 23, страница 1 из 1
тестовое задание
    #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
тестовое задание
    #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
тестовое задание
    #37660070
spbsmile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уважаемый ,Blazkowicz )
по логике вещей треугольником, является фигура, которая проходит проверку на неравенство треугольника)
т.е *лина любой стороны треугольника всегда не превосходит сумму длин двух его других сторон.
Код: java
1.
if ( b1[2] >= b1[0] + b1[1] ... 


проблема в том, что у меня в массив не записываются длины которые я пытаюсь вычислить по координатам.
L = sqrt((x2-x1)^2 + (y2-y1) ^2)
вот.)
помогите пожалуйста)
...
Рейтинг: 0 / 0
тестовое задание
    #37660072
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spbsmileпроблема в том, что у меня в массив не записываются длины которые я пытаюсь вычислить по координатам.
L = sqrt((x2-x1)^2 + (y2-y1) ^2)
вот.)
помогите пожалуйста)
Ну, возьмите калькулятор и считайте:
sqrt((5-5)^2 + (5-5) ^2) = ?
Не возьмут вас в yandex, если вам уже больше 14ти лет.
...
Рейтинг: 0 / 0
тестовое задание
    #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
тестовое задание
    #37660091
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Вооружаемся линейкой и листом в клетку. Рисуем систему координат. Рисуем треугольник {5,5},{5,5},{5,5}. Берем линейку и меряем длину сторон.
2. Читаем что такое int. Вычисляем корень квадратный из разных целых натуральных чисел и смотрим какое отношение результат имеет к типу int.
...
Рейтинг: 0 / 0
тестовое задание
    #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
тестовое задание
    #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
тестовое задание
    #37660230
spbsmile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите измерить расстояние от первой до второй точки, а то у меня не получилось :(
...
Рейтинг: 0 / 0
тестовое задание
    #37660423
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spbsmileпомогите измерить расстояние от первой до второй точки, а то у меня не получилось :(

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

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


Вам дают всего три точки, то есть это по любому треугольник, а в задании, вами же написанном, нужно выяснить, является ли он прямоугольным.
...
Рейтинг: 0 / 0
тестовое задание
    #37660966
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessenВам дают всего три точки, то есть это по любому треугольник
Остаётся открытым вопрос - являются ли точка и отрезок вырождеными случаями треугольника?
...
Рейтинг: 0 / 0
тестовое задание
    #37661011
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
тестовое задание
    #37661029
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczОстаётся открытым вопрос - являются ли точка и отрезок вырождеными случаями треугольника?

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

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

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

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

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


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