UNPKG

card-games-utils

Version:
151 lines (150 loc) 10.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var StandardDeckEnum_1 = require("../constants/StandardDeckEnum"); var TeenPattiEnum_1 = require("../constants/TeenPattiEnum"); var StandardCardHelper_1 = require("../helpers/StandardCardHelper"); var TeenPatti_1 = require("../models/TeenPatti"); describe('test the TeenPatti model and all methods in it', function () { it('test calculateHand() method', function () { var hand = TeenPatti_1.TeenPatti.calculateHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_ACE), ]); expect(hand).toBe(TeenPattiEnum_1.TeenPattiHand.TRAIL); hand = TeenPatti_1.TeenPatti.calculateHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_TWO), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_THREE), ]); expect(hand).toBe(TeenPattiEnum_1.TeenPattiHand.PURE_SEQUENCE); hand = TeenPatti_1.TeenPatti.calculateHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_TWO), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_THREE), ]); expect(hand).toBe(TeenPattiEnum_1.TeenPattiHand.SEQUENCE); hand = TeenPatti_1.TeenPatti.calculateHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_FOUR), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_KING), ]); expect(hand).toBe(TeenPattiEnum_1.TeenPattiHand.COLOR); hand = TeenPatti_1.TeenPatti.calculateHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_KING), ]); expect(hand).toBe(TeenPattiEnum_1.TeenPattiHand.PAIR); hand = TeenPatti_1.TeenPatti.calculateHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_FOUR), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_EIGHT), ]); expect(hand).toBe(TeenPattiEnum_1.TeenPattiHand.HIGH); }); it('test makeHand() method', function () { var hand = TeenPatti_1.TeenPatti.makeHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_ACE), ]); expect(Array.isArray(hand.cards)).toBe(true); expect(hand.cards.length).toBe(3); expect(hand.hand).toBe(TeenPattiEnum_1.TeenPattiHand.TRAIL); }); it('test calculateWinners() method', function () { // TRAIL-PURE_SEQUENCE => TRAIL var winnerArr = TeenPatti_1.TeenPatti.calculateWinners([ TeenPatti_1.TeenPatti.makeHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_ACE), ]), TeenPatti_1.TeenPatti.makeHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_TWO), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_THREE), ]), ]); expect(Array.isArray(winnerArr)).toBe(true); expect(winnerArr.length).toBe(1); expect(winnerArr[0]).toBe(0); // PURE_SEQUENCE-SEQUENCE => PURE_SEQUENCE winnerArr = TeenPatti_1.TeenPatti.calculateWinners([ TeenPatti_1.TeenPatti.makeHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_TWO), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_THREE), ]), TeenPatti_1.TeenPatti.makeHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_TWO), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_THREE), ]), ]); expect(Array.isArray(winnerArr)).toBe(true); expect(winnerArr.length).toBe(1); expect(winnerArr[0]).toBe(0); // SEQUENCE-COLOR => SEQUENCE winnerArr = TeenPatti_1.TeenPatti.calculateWinners([ TeenPatti_1.TeenPatti.makeHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_TWO), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_THREE), ]), TeenPatti_1.TeenPatti.makeHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_FOUR), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_KING), ]), ]); expect(Array.isArray(winnerArr)).toBe(true); expect(winnerArr.length).toBe(1); expect(winnerArr[0]).toBe(0); // COLOR-PAIR => COLOR winnerArr = TeenPatti_1.TeenPatti.calculateWinners([ TeenPatti_1.TeenPatti.makeHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_FOUR), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_KING), ]), TeenPatti_1.TeenPatti.makeHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_KING), ]), ]); expect(Array.isArray(winnerArr)).toBe(true); expect(winnerArr.length).toBe(1); expect(winnerArr[0]).toBe(0); // PAIR-HIGH => PAIR winnerArr = TeenPatti_1.TeenPatti.calculateWinners([ TeenPatti_1.TeenPatti.makeHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_KING), ]), TeenPatti_1.TeenPatti.makeHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_FOUR), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_EIGHT), ]), ]); expect(Array.isArray(winnerArr)).toBe(true); expect(winnerArr.length).toBe(1); expect(winnerArr[0]).toBe(0); }); it('test isRankHigher() method', function () { var isRankHigher = TeenPatti_1.TeenPatti.isRankHigher(TeenPatti_1.TeenPatti.makeHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.SPADES_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_FOUR), ]), TeenPatti_1.TeenPatti.makeHand([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_NINE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_NINE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_FIVE), ])); expect(isRankHigher).toBe(true); }); });