Coder Social home page Coder Social logo

codility's Issues

Fail in a scenerio

If I enter the input like: solution(3, [3, 3, 1, 1, 4]), its showing 4 output. It should show -1, because 2 index does not exists in list and frog can only cross if all (1 to X) positions are filled.

solutionTriangle.py

from math import ceil
import random
import unittest
MAXLENGHT = 100000
MINLENGHT = 3
RANGEVALUE = (-2147483648,2147483648)
def solution(A):
    
    if not isinstance(A, list):
        raise TypeError("Input A must be a List.")
        
    if not len(A):
        return 0
    
    if len(A) < MINLENGHT:
        return 0

    if len(A) > MAXLENGHT:
        raise ValueError(f"Input A should not be greater than {MAXLENGHT}")
    
    A.sort()
    for i in range(len(A) - 2):
        if A[i] > 0 and A[i] <= A[i+1] and (A[i]+A[i+1]) > A[i+2]:
            return 1
    return 0

class TestExercise(unittest.TestCase):

    def test_simple(self):
        self.assertEqual(solution([-100, 2, 4, 5]), 1)
        self.assertEqual(solution([2,3,5]), 0)
        self.assertEqual(solution([3,3,5]), 1)
        self.assertEqual(solution([2,2,2]), 1)
        self.assertNotEqual(solution([1,2,3]), 1)
        self.assertEqual(solution([10,20,30]), 0)
        self.assertEqual(solution([10,11,20]), 1)
        
    def test_type(self):
        self.assertRaises(TypeError, solution, {})
        self.assertRaises(TypeError, solution, "5,5,5")

    def test_value(self):
        self.assertRaises(ValueError, solution, [1,1]*MAXLENGHT)

    def test_extreme(self):
        print(solution([random.randint(RANGEVALUE[0], RANGEVALUE[1]) for _ in range(MAXLENGHT)]))
        print(solution([random.randint(RANGEVALUE[0], -1) for _ in range(MAXLENGHT)]))
        print(solution([random.randint(-10, -1) for _ in range(MAXLENGHT)]))
        
if __name__ == '__main__':
    unittest.main()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.