Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import eightqueens.Desk;
- import eightqueens.Queen;
- import org.junit.Assert;
- import org.junit.jupiter.api.Test;
- import java.awt.*;
- class findNewAcceptablePositionTest {
- @Test
- void singleQueenFirstPos() {
- Point[] queen_pos = { new Point(1, Desk.posBelowDesk() ) };
- Desk d = Desk.buildDesk(queen_pos);
- Point exp_pos = new Point(1, 1);
- boolean exp_ok = true;
- Queen q = d.getQueen(exp_pos.x);
- boolean ok = q.findNewAcceptablePosition();
- Assert.assertEquals(exp_ok, ok);
- Assert.assertEquals(exp_pos.x, q.col());
- Assert.assertEquals(exp_pos.y, q.row());
- }
- @Test
- void twoQueensFirstPos() {
- Point[] queen_pos = { new Point(1, Desk.posBelowDesk() ),
- new Point(2, Desk.posBelowDesk() ) };
- Desk d = Desk.buildDesk(queen_pos);
- Point[] exp_pos = { new Point(1, 1), new Point(2, 3) };
- boolean exp_ok = true;
- boolean ok = false;
- for(int i = 0; i < d.queenCount(); i++) {
- Queen q = d.getQueen(i+1);
- ok = q.findNewAcceptablePosition();
- }
- Assert.assertEquals(exp_ok, ok);
- for(int i = 0; i < d.queenCount(); i++) {
- Queen q = d.getQueen(i+1);
- Assert.assertEquals(exp_pos[i].x, q.col());
- Assert.assertEquals(exp_pos[i].y, q.row());
- }
- }
- @Test
- void sampleTest() {
- Point[] queen_pos = {
- new Point(1, 2 ),
- new Point(2, 1 ),
- new Point(3, 2 )
- };
- Desk d = Desk.buildDesk(queen_pos);
- Point[] exp_pos = { new Point(1, 3), new Point(2, 5), new Point(3, 7) };
- boolean exp_ok = true;
- boolean ok = false;
- for(int i = 0; i < d.queenCount(); i++) {
- Queen q = d.getQueen(i+1);
- ok = q.findNewAcceptablePosition();
- }
- Assert.assertEquals(exp_ok, ok);
- for(int i = 0; i < d.queenCount(); i++) {
- Queen q = d.getQueen(i+1);
- Assert.assertEquals(exp_pos[i].x, q.col());
- Assert.assertEquals(exp_pos[i].y, q.row());
- }
- }
- @Test
- void queensInAcceptablePos() {
- Point[] queen_pos = {
- new Point(1, 2 ),
- new Point(2, 4 ),
- new Point(3, 6 )
- };
- Desk d = Desk.buildDesk(queen_pos);
- Point[] exp_pos = {
- new Point(1, 3 ),
- new Point(2, 5 ),
- new Point(3, 7 )
- };
- boolean exp_ok = true;
- boolean ok = false;
- for(int i = 0; i < d.queenCount(); i++) {
- Queen q = d.getQueen(i+1);
- ok = q.findNewAcceptablePosition();
- }
- Assert.assertEquals(exp_ok, ok);
- for(int i = 0; i < d.queenCount(); i++) {
- Queen q = d.getQueen(i+1);
- Assert.assertEquals(exp_pos[i].x, q.col());
- Assert.assertEquals(exp_pos[i].y, q.row());
- }
- }
- @Test
- void queensYetToSearchForAcceptablePos() {
- Point[] queen_pos = {
- new Point(1, 0 ),
- new Point(2, 0 ),
- new Point(3, 0 )
- };
- Desk d = Desk.buildDesk(queen_pos);
- Point[] exp_pos = {
- new Point(1, 1 ),
- new Point(2, 3 ),
- new Point(3, 5 )
- };
- boolean exp_ok = true;
- boolean ok = false;
- for(int i = 0; i < d.queenCount(); i++) {
- Queen q = d.getQueen(i+1);
- ok = q.findNewAcceptablePosition();
- }
- Assert.assertEquals(exp_ok, ok);
- for(int i = 0; i < d.queenCount(); i++) {
- Queen q = d.getQueen(i+1);
- Assert.assertEquals(exp_pos[i].x, q.col());
- Assert.assertEquals(exp_pos[i].y, q.row());
- }
- }
- @Test
- void oneQueriesToNeighborForPos() {
- Point[] queen_pos = {
- new Point(1, 6 ),
- new Point(2, 7 )
- };
- Desk d = Desk.buildDesk(queen_pos);
- Point[] exp_pos = {
- new Point(1, 8 ),
- new Point(2, 1 )
- };
- boolean exp_ok = true;
- boolean ok = false;
- for(int i = 0; i < d.queenCount(); i++) {
- Queen q = d.getQueen(i+1);
- ok = q.findNewAcceptablePosition();
- }
- Assert.assertEquals(exp_ok, ok);
- for(int i = 0; i < d.queenCount(); i++) {
- Queen q = d.getQueen(i+1);
- Assert.assertEquals(exp_pos[i].x, q.col());
- Assert.assertEquals(exp_pos[i].y, q.row());
- }
- }
- @Test
- void multipleQueriesToNeighborForPos() {
- Point[] queen_pos = {
- new Point(3, 5),
- new Point(4, 7),
- new Point(6, 4),
- new Point(7, 0),
- new Point(8, 1)
- };
- Desk d = Desk.buildDesk(queen_pos);
- Point[] exp_pos = {
- new Point(3, 6),
- new Point(4, 8),
- new Point(6, 5),
- new Point(7, 7),
- new Point(8, 2)
- };
- boolean exp_ok = true;
- boolean ok = false;
- for(int i = 0; i < d.colCount(); i++) {
- Queen q = d.getQueen(i + 1);
- if (q == null) continue;
- ok = q.findNewAcceptablePosition();
- }
- Assert.assertEquals(exp_ok, ok);
- int num = 0;
- for(int i = 0; i < d.colCount(); i++) {
- Queen q = d.getQueen(i+1);
- if (q == null) continue;
- Assert.assertEquals(exp_pos[num].x, q.col());
- Assert.assertEquals(exp_pos[num].y, q.row());
- num++;
- }
- }
- @Test
- void positionNotFound() {
- Point[] queen_pos = {
- new Point(1, 8 ),
- new Point(2, 7 )
- };
- Desk d = Desk.buildDesk(queen_pos);
- Point[] exp_pos = {
- new Point(1, 8 ),
- new Point(2, 8 )
- };
- boolean exp_ok = false;
- boolean ok = true;
- for(int i = 0; i < d.queenCount(); i++) {
- Queen q = d.getQueen(i+1);
- ok = q.findNewAcceptablePosition();
- }
- Assert.assertEquals(exp_ok, ok);
- for(int i = 0; i < d.queenCount(); i++) {
- Queen q = d.getQueen(i+1);
- Assert.assertEquals(exp_pos[i].x, q.col());
- Assert.assertEquals(exp_pos[i].y, q.row());
- }
- }
- }
- //количество ферзей, участвующих в поисках приемлемой позиции: /один, /два, *несколько
- //ферзь уже занимает приемлемую позицию: +да/+нет (еще не искал)/*нет (уже искал)
- //количество запросов к соседу слева для поиска новой приемлемой позиции: *отсутствуют, +один, +несколько
- //результат поиска приемлемой позиции: *найдена/+не найдена
- //наличие соседа слева: *да/+нет
- //
- //1. sampleTest
- //IN: EXP:
- //-------- --------
- //-------- --*-----
- //-------- --------
- //-------- -*------
- //-------- --------
- //-------- *-------
- //*-*----- --------
- //-*------ --------
- //........ ........
- //
- //2. queensInAcceptablePos
- //IN: EXP:
- //-------- --------
- //-------- --*-----
- //--*----- --------
- //-------- -*------
- //-*------ --------
- //-------- *-------
- //*------- --------
- //-------- --------
- //........ ........
- //
- //3. queensYetToSearchForAcceptablePos
- //IN: EXP:
- //-------- --------
- //-------- --------
- //-------- --------
- //-------- --*-----
- //-------- --------
- //-------- -*------
- //-------- --------
- //-------- *-------
- //***..... ........
- //
- //4. oneQueriesToNeighborForPos
- //IN: EXP:
- //-------- *-------
- //-*------ --------
- //*------- --------
- //-------- --------
- //-------- --------
- //-------- --------
- //-------- --------
- //-------- -*------
- //........ ........
- //
- //5. multipleQueriesToNeighborForPos
- //IN: EXP:
- //-------- ---*----
- //---*---- ------*-
- //-------- --*-----
- //--*----- -----*--
- //-----*-- --------
- //-------- --------
- //-------- -------*
- //-------* --------
- //......*. ........
- //
- //6. positionNotFound
- //IN: EXP:
- //*------- **------
- //-*------ --------
- //-------- --------
- //-------- --------
- //-------- --------
- //-------- --------
- //-------- --------
- //-------- -------
- //........ ........
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement