53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
import unittest
|
|
|
|
from darts import (
|
|
score,
|
|
)
|
|
|
|
# Tests adapted from `problem-specifications//canonical-data.json`
|
|
|
|
|
|
class DartsTest(unittest.TestCase):
|
|
def test_missed_target(self):
|
|
self.assertEqual(score(-9, 9), 0)
|
|
|
|
def test_on_the_outer_circle(self):
|
|
self.assertEqual(score(0, 10), 1)
|
|
|
|
def test_on_the_middle_circle(self):
|
|
self.assertEqual(score(-5, 0), 5)
|
|
|
|
def test_on_the_inner_circle(self):
|
|
self.assertEqual(score(0, -1), 10)
|
|
|
|
def test_exactly_on_centre(self):
|
|
self.assertEqual(score(0, 0), 10)
|
|
|
|
def test_near_the_centre(self):
|
|
self.assertEqual(score(-0.1, -0.1), 10)
|
|
|
|
def test_just_within_the_inner_circle(self):
|
|
self.assertEqual(score(0.7, 0.7), 10)
|
|
|
|
def test_just_outside_the_inner_circle(self):
|
|
self.assertEqual(score(0.8, -0.8), 5)
|
|
|
|
def test_just_within_the_middle_circle(self):
|
|
self.assertEqual(score(-3.5, 3.5), 5)
|
|
|
|
def test_just_outside_the_middle_circle(self):
|
|
self.assertEqual(score(-3.6, -3.6), 1)
|
|
|
|
def test_just_within_the_outer_circle(self):
|
|
self.assertEqual(score(-7.0, 7.0), 1)
|
|
|
|
def test_just_outside_the_outer_circle(self):
|
|
self.assertEqual(score(7.1, -7.1), 0)
|
|
|
|
def test_asymmetric_position_between_the_inner_and_middle_circles(self):
|
|
self.assertEqual(score(0.5, -4), 5)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|