Advertisement
gg-master

JavaUnitTests

Sep 9th, 2023
1,076
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.59 KB | Gaming | 0 0
  1. import eightqueens.Desk;
  2. import eightqueens.Queen;
  3. import org.junit.Assert;
  4. import org.junit.jupiter.api.Test;
  5.  
  6. import java.awt.*;
  7. class findNewAcceptablePositionTest {
  8.  
  9.     @Test
  10.     void singleQueenFirstPos() {
  11.  
  12.         Point[] queen_pos = { new Point(1, Desk.posBelowDesk() ) };
  13.         Desk d = Desk.buildDesk(queen_pos);
  14.  
  15.         Point exp_pos = new Point(1, 1);
  16.         boolean exp_ok = true;
  17.  
  18.         Queen q = d.getQueen(exp_pos.x);
  19.         boolean ok = q.findNewAcceptablePosition();
  20.  
  21.         Assert.assertEquals(exp_ok, ok);
  22.         Assert.assertEquals(exp_pos.x, q.col());
  23.         Assert.assertEquals(exp_pos.y, q.row());
  24.     }
  25.  
  26.     @Test
  27.     void twoQueensFirstPos() {
  28.  
  29.         Point[] queen_pos = {   new Point(1, Desk.posBelowDesk() ),
  30.                 new Point(2, Desk.posBelowDesk() )  };
  31.         Desk d = Desk.buildDesk(queen_pos);
  32.  
  33.         Point[] exp_pos = { new Point(1, 1), new Point(2, 3) };
  34.         boolean exp_ok = true;
  35.  
  36.         boolean ok = false;
  37.         for(int i = 0; i < d.queenCount(); i++) {
  38.             Queen q = d.getQueen(i+1);
  39.             ok = q.findNewAcceptablePosition();
  40.         }
  41.  
  42.         Assert.assertEquals(exp_ok, ok);
  43.         for(int i = 0; i < d.queenCount(); i++) {
  44.  
  45.             Queen q = d.getQueen(i+1);
  46.  
  47.             Assert.assertEquals(exp_pos[i].x, q.col());
  48.             Assert.assertEquals(exp_pos[i].y, q.row());
  49.         }
  50.     }
  51.  
  52.     @Test
  53.     void sampleTest() {
  54.         Point[] queen_pos = {
  55.                 new Point(1, 2 ),
  56.                 new Point(2, 1 ),
  57.                 new Point(3, 2 )
  58.             };
  59.         Desk d = Desk.buildDesk(queen_pos);
  60.  
  61.         Point[] exp_pos = { new Point(1, 3), new Point(2, 5), new Point(3, 7) };
  62.         boolean exp_ok = true;
  63.  
  64.         boolean ok = false;
  65.         for(int i = 0; i < d.queenCount(); i++) {
  66.             Queen q = d.getQueen(i+1);
  67.             ok = q.findNewAcceptablePosition();
  68.         }
  69.  
  70.         Assert.assertEquals(exp_ok, ok);
  71.         for(int i = 0; i < d.queenCount(); i++) {
  72.  
  73.             Queen q = d.getQueen(i+1);
  74.  
  75.             Assert.assertEquals(exp_pos[i].x, q.col());
  76.             Assert.assertEquals(exp_pos[i].y, q.row());
  77.         }
  78.     }
  79.     @Test
  80.     void queensInAcceptablePos() {
  81.         Point[] queen_pos = {
  82.                 new Point(1, 2 ),
  83.                 new Point(2, 4 ),
  84.                 new Point(3, 6 )
  85.         };
  86.         Desk d = Desk.buildDesk(queen_pos);
  87.  
  88.         Point[] exp_pos = {
  89.                 new Point(1, 3 ),
  90.                 new Point(2, 5 ),
  91.                 new Point(3, 7 )
  92.         };
  93.         boolean exp_ok = true;
  94.  
  95.         boolean ok = false;
  96.         for(int i = 0; i < d.queenCount(); i++) {
  97.             Queen q = d.getQueen(i+1);
  98.             ok = q.findNewAcceptablePosition();
  99.         }
  100.  
  101.         Assert.assertEquals(exp_ok, ok);
  102.         for(int i = 0; i < d.queenCount(); i++) {
  103.  
  104.             Queen q = d.getQueen(i+1);
  105.  
  106.             Assert.assertEquals(exp_pos[i].x, q.col());
  107.             Assert.assertEquals(exp_pos[i].y, q.row());
  108.         }
  109.     }
  110.     @Test
  111.     void queensYetToSearchForAcceptablePos() {
  112.         Point[] queen_pos = {
  113.                 new Point(1, 0 ),
  114.                 new Point(2, 0 ),
  115.                 new Point(3, 0 )
  116.         };
  117.         Desk d = Desk.buildDesk(queen_pos);
  118.  
  119.         Point[] exp_pos = {
  120.                 new Point(1, 1 ),
  121.                 new Point(2, 3 ),
  122.                 new Point(3, 5 )
  123.         };
  124.         boolean exp_ok = true;
  125.  
  126.         boolean ok = false;
  127.         for(int i = 0; i < d.queenCount(); i++) {
  128.             Queen q = d.getQueen(i+1);
  129.             ok = q.findNewAcceptablePosition();
  130.         }
  131.  
  132.         Assert.assertEquals(exp_ok, ok);
  133.         for(int i = 0; i < d.queenCount(); i++) {
  134.  
  135.             Queen q = d.getQueen(i+1);
  136.  
  137.             Assert.assertEquals(exp_pos[i].x, q.col());
  138.             Assert.assertEquals(exp_pos[i].y, q.row());
  139.         }
  140.     }
  141.     @Test
  142.     void oneQueriesToNeighborForPos() {
  143.         Point[] queen_pos = {
  144.                 new Point(1, 6 ),
  145.                 new Point(2, 7 )
  146.         };
  147.         Desk d = Desk.buildDesk(queen_pos);
  148.  
  149.         Point[] exp_pos = {
  150.                 new Point(1, 8 ),
  151.                 new Point(2, 1 )
  152.         };
  153.         boolean exp_ok = true;
  154.  
  155.         boolean ok = false;
  156.         for(int i = 0; i < d.queenCount(); i++) {
  157.             Queen q = d.getQueen(i+1);
  158.             ok = q.findNewAcceptablePosition();
  159.         }
  160.  
  161.         Assert.assertEquals(exp_ok, ok);
  162.         for(int i = 0; i < d.queenCount(); i++) {
  163.  
  164.             Queen q = d.getQueen(i+1);
  165.  
  166.             Assert.assertEquals(exp_pos[i].x, q.col());
  167.             Assert.assertEquals(exp_pos[i].y, q.row());
  168.         }
  169.     }
  170.     @Test
  171.     void multipleQueriesToNeighborForPos() {
  172.         Point[] queen_pos = {
  173.                 new Point(3, 5),
  174.                 new Point(4, 7),
  175.                 new Point(6, 4),
  176.                 new Point(7, 0),
  177.                 new Point(8, 1)
  178.         };
  179.         Desk d = Desk.buildDesk(queen_pos);
  180.  
  181.         Point[] exp_pos = {
  182.                 new Point(3, 6),
  183.                 new Point(4, 8),
  184.                 new Point(6, 5),
  185.                 new Point(7, 7),
  186.                 new Point(8, 2)
  187.         };
  188.         boolean exp_ok = true;
  189.  
  190.         boolean ok = false;
  191.  
  192.         for(int i = 0; i < d.colCount(); i++) {
  193.             Queen q = d.getQueen(i + 1);
  194.             if (q == null) continue;
  195.             ok = q.findNewAcceptablePosition();
  196.         }
  197.  
  198.         Assert.assertEquals(exp_ok, ok);
  199.         int num = 0;
  200.         for(int i = 0; i < d.colCount(); i++) {
  201.             Queen q = d.getQueen(i+1);
  202.             if (q == null) continue;
  203.             Assert.assertEquals(exp_pos[num].x, q.col());
  204.             Assert.assertEquals(exp_pos[num].y, q.row());
  205.             num++;
  206.         }
  207.     }
  208.     @Test
  209.     void positionNotFound() {
  210.         Point[] queen_pos = {
  211.                 new Point(1, 8 ),
  212.                 new Point(2, 7 )
  213.         };
  214.         Desk d = Desk.buildDesk(queen_pos);
  215.  
  216.         Point[] exp_pos = {
  217.                 new Point(1, 8 ),
  218.                 new Point(2, 8 )
  219.         };
  220.         boolean exp_ok = false;
  221.  
  222.         boolean ok = true;
  223.         for(int i = 0; i < d.queenCount(); i++) {
  224.             Queen q = d.getQueen(i+1);
  225.             ok = q.findNewAcceptablePosition();
  226.         }
  227.  
  228.         Assert.assertEquals(exp_ok, ok);
  229.         for(int i = 0; i < d.queenCount(); i++) {
  230.  
  231.             Queen q = d.getQueen(i+1);
  232.  
  233.             Assert.assertEquals(exp_pos[i].x, q.col());
  234.             Assert.assertEquals(exp_pos[i].y, q.row());
  235.         }
  236.     }
  237. }
  238. //количество ферзей, участвующих в поисках приемлемой позиции: /один, /два, *несколько
  239. //ферзь уже занимает приемлемую позицию: +да/+нет (еще не искал)/*нет (уже искал)
  240. //количество запросов к соседу слева для поиска новой приемлемой позиции: *отсутствуют, +один, +несколько
  241. //результат поиска приемлемой позиции: *найдена/+не найдена
  242. //наличие соседа слева: *да/+нет
  243. //
  244. //1. sampleTest
  245. //IN:       EXP:
  246. //--------  --------
  247. //--------  --*-----   
  248. //--------  --------
  249. //--------  -*------
  250. //--------  --------
  251. //--------  *-------
  252. //*-*-----  --------
  253. //-*------  --------
  254. //........  ........
  255. //
  256. //2. queensInAcceptablePos
  257. //IN:       EXP:
  258. //--------  --------
  259. //--------  --*-----
  260. //--*-----  --------
  261. //--------  -*------
  262. //-*------  --------
  263. //--------  *-------
  264. //*-------  --------
  265. //--------  --------
  266. //........  ........
  267. //
  268. //3. queensYetToSearchForAcceptablePos
  269. //IN:       EXP:
  270. //--------  --------
  271. //--------  --------
  272. //--------  --------
  273. //--------  --*-----
  274. //--------  --------
  275. //--------  -*------
  276. //--------  --------
  277. //--------  *-------
  278. //***.....  ........
  279. //
  280. //4. oneQueriesToNeighborForPos
  281. //IN:       EXP:
  282. //--------  *-------
  283. //-*------  --------
  284. //*-------  --------
  285. //--------  --------
  286. //--------  --------
  287. //--------  --------
  288. //--------  --------
  289. //--------  -*------
  290. //........  ........
  291. //
  292. //5. multipleQueriesToNeighborForPos
  293. //IN:       EXP:
  294. //--------  ---*----
  295. //---*----  ------*-
  296. //--------  --*-----
  297. //--*-----  -----*--
  298. //-----*--  --------
  299. //--------  --------
  300. //--------  -------*
  301. //-------*  --------
  302. //......*.  ........
  303. //
  304. //6. positionNotFound
  305. //IN:       EXP:
  306. //*-------  **------
  307. //-*------  --------
  308. //--------  --------
  309. //--------  --------
  310. //--------  --------
  311. //--------  --------
  312. //--------  --------
  313. //--------  -------
  314. //........  ........
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement