Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { expect } from 'chai'
  2. import {
  3.   findWinner,
  4.   hasWinner,
  5. } from './tic-tac-toe'
  6.  
  7. describe( 'tic-tac-toe', () => {
  8.   const translate = plays =>
  9.     plays
  10.       .map( row =>
  11.         row.split( '|' ) )
  12.  
  13.   describe( 'game in progress', () => {
  14.     const inProgress = [
  15.       [ ' | | ',
  16.         ' | | ',
  17.         ' | | ', ],
  18.  
  19.       [ ' |X| ',
  20.         ' | | ',
  21.         ' | | ', ],
  22.  
  23.       [ ' |X| ',
  24.         ' |O| ',
  25.         ' | | ', ],
  26.  
  27.       [ ' |X| ',
  28.         ' | | ',
  29.         ' |O| ', ],
  30.  
  31.       [ ' |X| ',
  32.         'O| | ',
  33.         ' | | ', ],
  34.  
  35.       [ ' | | ',
  36.         ' | |O',
  37.         ' |X| ', ],
  38.  
  39.       [ 'X|O|X',
  40.         'O|X|O',
  41.         'O|X|O', ],
  42.     ]
  43.  
  44.     it( 'does not have a winner', () => {
  45.       inProgress.forEach( game => {
  46.         const board = translate( game )
  47.         expect( hasWinner( board ) ).to.be.false
  48.       } )
  49.     } )
  50.  
  51.  
  52.   } )
  53.  
  54.   describe( 'winning a game', () => {
  55.     const winningGames = [ {
  56.       winner: 'X',
  57.       plays: [
  58.         'X| | ',
  59.         'X| | ',
  60.         'X| | ', ],
  61.     }, {
  62.       winner: 'X',
  63.       plays: [
  64.         ' |X| ',
  65.         ' |X| ',
  66.         ' |X| ', ],
  67.     }, {
  68.       winner: 'O',
  69.       plays: [
  70.         ' | |O',
  71.         ' | |O',
  72.         ' | |O', ],
  73.     }, {
  74.       winner: 'X',
  75.       plays: [
  76.         ' | | ',
  77.         'X|X|X',
  78.         ' | | ', ],
  79.     }, {
  80.       winner: 'O',
  81.       plays: [
  82.         'O|O|O',
  83.         ' | | ',
  84.         ' | | ', ],
  85.     }, {
  86.       winner: 'O',
  87.       plays: [
  88.         ' | | ',
  89.         'O|O|O',
  90.         ' | | ', ],
  91.     }, {
  92.       winner: 'O',
  93.       plays: [
  94.         ' | | ',
  95.         ' | | ',
  96.         'O|O|O', ],
  97.     }, {
  98.       winner: 'O',
  99.       plays: [
  100.         ' | |O',
  101.         ' |O| ',
  102.         'O| | ', ],
  103.     }, {
  104.       winner: 'X',
  105.       plays: [
  106.         ' | |X',
  107.         ' |X| ',
  108.         'X| | ', ],
  109.     }, {
  110.       winner: 'X',
  111.       plays: [
  112.         'X| | ',
  113.         ' |X| ',
  114.         ' | |X', ],
  115.     }, {
  116.       winner: 'O',
  117.       plays: [
  118.         'O| | ',
  119.         ' |O| ',
  120.         ' | |O', ],
  121.     } ]
  122.  
  123.     winningGames.forEach( game => {
  124.       const board = translate( game.plays )
  125.       expect( hasWinner( board ) ).to.be.true
  126.       expect( findWinner( board ) ).to.eq( game.winner,
  127.         '\n' + board.join( '\n' ) + '\n' )
  128.     } )
  129.   } )
  130. } )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement