2019-02-04 08:56:23 -08:00
|
|
|
import unittest
|
|
|
|
|
|
2021-01-31 16:49:12 -05:00
|
|
|
from darts import (
|
|
|
|
|
score,
|
|
|
|
|
)
|
2019-02-04 08:56:23 -08:00
|
|
|
|
2020-10-15 12:46:24 -04:00
|
|
|
# Tests adapted from `problem-specifications//canonical-data.json`
|
2019-02-04 08:56:23 -08:00
|
|
|
|
2019-10-25 12:04:31 -04:00
|
|
|
|
|
|
|
|
class DartsTest(unittest.TestCase):
|
2019-07-12 16:07:01 +02:00
|
|
|
def test_missed_target(self):
|
2019-02-04 08:56:23 -08:00
|
|
|
self.assertEqual(score(-9, 9), 0)
|
|
|
|
|
|
2019-07-12 16:07:01 +02:00
|
|
|
def test_on_the_outer_circle(self):
|
2019-02-04 08:56:23 -08:00
|
|
|
self.assertEqual(score(0, 10), 1)
|
|
|
|
|
|
2019-07-12 16:07:01 +02:00
|
|
|
def test_on_the_middle_circle(self):
|
|
|
|
|
self.assertEqual(score(-5, 0), 5)
|
2019-02-04 08:56:23 -08:00
|
|
|
|
2019-07-12 16:07:01 +02:00
|
|
|
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)
|
2019-02-04 08:56:23 -08:00
|
|
|
|
2019-07-12 16:07:01 +02:00
|
|
|
def test_just_within_the_inner_circle(self):
|
|
|
|
|
self.assertEqual(score(0.7, 0.7), 10)
|
|
|
|
|
|
|
|
|
|
def test_just_outside_the_inner_circle(self):
|
2019-02-04 08:56:23 -08:00
|
|
|
self.assertEqual(score(0.8, -0.8), 5)
|
|
|
|
|
|
2019-07-12 16:07:01 +02:00
|
|
|
def test_just_within_the_middle_circle(self):
|
2019-10-25 12:04:31 -04:00
|
|
|
self.assertEqual(score(-3.5, 3.5), 5)
|
2019-02-04 08:56:23 -08:00
|
|
|
|
2019-07-12 16:07:01 +02:00
|
|
|
def test_just_outside_the_middle_circle(self):
|
2019-10-25 12:04:31 -04:00
|
|
|
self.assertEqual(score(-3.6, -3.6), 1)
|
2019-02-04 08:56:23 -08:00
|
|
|
|
2019-07-12 16:07:01 +02:00
|
|
|
def test_just_within_the_outer_circle(self):
|
2019-10-25 12:04:31 -04:00
|
|
|
self.assertEqual(score(-7.0, 7.0), 1)
|
2019-05-06 08:36:08 -04:00
|
|
|
|
2019-07-12 16:07:01 +02:00
|
|
|
def test_just_outside_the_outer_circle(self):
|
2019-10-25 12:04:31 -04:00
|
|
|
self.assertEqual(score(7.1, -7.1), 0)
|
2019-05-06 08:36:08 -04:00
|
|
|
|
2019-07-12 16:07:01 +02:00
|
|
|
def test_asymmetric_position_between_the_inner_and_middle_circles(self):
|
2019-10-25 12:04:31 -04:00
|
|
|
self.assertEqual(score(0.5, -4), 5)
|
2019-05-06 08:36:08 -04:00
|
|
|
|
2019-02-04 08:56:23 -08:00
|
|
|
|
2019-10-25 12:04:31 -04:00
|
|
|
if __name__ == "__main__":
|
2019-02-04 08:56:23 -08:00
|
|
|
unittest.main()
|