Maps / tests / 04.py
04.py
Raw
test = {
  'name': 'Problem 4',
  'points': 4,
  'suites': [
    {
      'cases': [
        {
          'answer': 'f7fc0cbea40705bfa71bc0241ba32ce9',
          'choices': [
            '[-1, 1]',
            '[5, -1]',
            '[1, 10]',
            '[-1, -10]'
          ],
          'hidden': False,
          'locked': True,
          'question': r"""
          If centroids is [[-1, 1], [5, -1], [1, 10], [-1, -10]],
          to which centroid will [6, 0] be associated?
          """
        },
        {
          'answer': 'be8be05ae608c5a99de4f6a27d2f1b63',
          'choices': [
            '[-1, 1]',
            '[1, 1]',
            '[-1, -1]',
            '[1, -1]'
          ],
          'hidden': False,
          'locked': True,
          'question': r"""
          If centroids is [[1, 1], [1, -1], [-1, 1], [-1, -1]],
          to which centroid will [0, 0] be associated?
          """
        }
      ],
      'scored': False,
      'type': 'concept'
    },
    {
      'cases': [
        {
          'code': r"""
          >>> r1 = make_restaurant('A', [-10, 2], [], 2, [
          ...         make_review('A', 4),
          ...      ])
          >>> r2 = make_restaurant('B', [-9, 1], [], 3, [
          ...         make_review('B', 5),
          ...         make_review('B', 3.5),
          ...      ])
          >>> c1 = [0, 0]
          >>> groups = group_by_centroid([r1, r2], [c1])
          >>> test.deep_check_same_elements(groups, [[r1, r2]])
          True
          """,
          'hidden': False,
          'locked': False
        },
        {
          'code': r"""
          >>> r1 = make_restaurant('A', [-10, 2], [], 2, [
          ...         make_review('A', 4),
          ...      ])
          >>> r2 = make_restaurant('B', [-9, 1], [], 3, [
          ...         make_review('B', 5),
          ...         make_review('B', 3.5),
          ...      ])
          >>> r3 = make_restaurant('C', [4, 2], [], 1, [
          ...         make_review('C', 5)
          ...      ])
          >>> c1 = [0, 0]
          >>> c2 = [3, 4]
          >>> groups = group_by_centroid([r1, r2, r3], [c1, c2])
          >>> test.deep_check_same_elements(groups, [[r1, r2], [r3]])
          True
          """,
          'hidden': False,
          'locked': False
        },
        {
          'code': r"""
          >>> r1 = make_restaurant('A', [-10, 2], [], 2, [
          ...         make_review('A', 4),
          ...      ])
          >>> r2 = make_restaurant('B', [-9, 1], [], 3, [
          ...         make_review('B', 5),
          ...         make_review('B', 3.5),
          ...      ])
          >>> r3 = make_restaurant('C', [4, 2], [], 1, [
          ...         make_review('C', 5)
          ...      ])
          >>> r4 = make_restaurant('D', [-2, 6], [], 4, [
          ...         make_review('D', 2)
          ...      ])
          >>> r5 = make_restaurant('E', [4, 2], [], 3.5, [
          ...         make_review('E', 2.5),
          ...         make_review('E', 3),
          ...      ])
          >>> c1 = [0, 0]
          >>> c2 = [3, 4]
          >>> groups = group_by_centroid([r1, r2, r3, r4, r5], [c1, c2])
          >>> test.deep_check_same_elements(groups, [[r1, r2], [r3, r4, r5]])
          True
          """,
          'hidden': False,
          'locked': False
        },
        {
          'code': r"""
          >>> r = make_restaurant('Zero', [0, 0], [], 1, [
          ...     make_review('Zero', 5)
          ... ])
          >>> groups = group_by_centroid(
          ...     [r], [[x, y] for x in [1, -1] for y in [1, -1]]
          ... )
          >>> test.deep_check_same_elements(groups, [[r]])
          True
          """,
          'hidden': False,
          'locked': False
        }
      ],
      'scored': True,
      'setup': r"""
      >>> import tests.test_functions as test
      >>> from recommend import *
      """,
      'teardown': '',
      'type': 'doctest'
    },
    {
      'cases': [
        {
          'code': r"""
          >>> r1 = make_restaurant('A', [-10, 2], [], 2, [
          ...         make_review('A', 4),
          ...      ])
          >>> r2 = make_restaurant('B', [-9, 1], [], 3, [
          ...         make_review('B', 5),
          ...         make_review('B', 3.5),
          ...      ])
          >>> c1 = [0, 0]
          >>> groups = group_by_centroid([r1, r2], [c1])
          >>> test.deep_check_same_elements(groups, [[r1, r2]])
          True
          """,
          'hidden': False,
          'locked': False
        },
        {
          'code': r"""
          >>> r1 = make_restaurant('A', [-10, 2], [], 2, [
          ...         make_review('A', 4),
          ...      ])
          >>> r2 = make_restaurant('B', [-9, 1], [], 3, [
          ...         make_review('B', 5),
          ...         make_review('B', 3.5),
          ...      ])
          >>> r3 = make_restaurant('C', [4, 2], [], 1, [
          ...         make_review('C', 5)
          ...      ])
          >>> c1 = [0, 0]
          >>> c2 = [3, 4]
          >>> groups = group_by_centroid([r1, r2, r3], [c1, c2])
          >>> test.deep_check_same_elements(groups, [[r1, r2], [r3]])
          True
          """,
          'hidden': False,
          'locked': False
        },
        {
          'code': r"""
          >>> r1 = make_restaurant('A', [-10, 2], [], 2, [
          ...         make_review('A', 4),
          ...      ])
          >>> r2 = make_restaurant('B', [-9, 1], [], 3, [
          ...         make_review('B', 5),
          ...         make_review('B', 3.5),
          ...      ])
          >>> r3 = make_restaurant('C', [4, 2], [], 1, [
          ...         make_review('C', 5)
          ...      ])
          >>> r4 = make_restaurant('D', [-2, 6], [], 4, [
          ...         make_review('D', 2)
          ...      ])
          >>> r5 = make_restaurant('E', [4, 2], [], 3.5, [
          ...         make_review('E', 2.5),
          ...         make_review('E', 3),
          ...      ])
          >>> c1 = [0, 0]
          >>> c2 = [3, 4]
          >>> groups = group_by_centroid([r1, r2, r3, r4, r5], [c1, c2])
          >>> test.deep_check_same_elements(groups, [[r1, r2], [r3, r4, r5]])
          True
          """,
          'hidden': False,
          'locked': False
        },
        {
          'code': r"""
          >>> r = make_restaurant('Zero', [0, 0], [], 1, [
          ...     make_review('Zero', 5),
          ... ])
          >>> groups = group_by_centroid(
          ...     [r], [[x, y] for x in [1, -1] for y in [1, -1]]
          ... )
          >>> test.deep_check_same_elements(groups, [[r]])
          True
          """,
          'hidden': False,
          'locked': False
        }
      ],
      'scored': True,
      'setup': r"""
      >>> import tests.test_functions as test
      >>> import recommend
      >>> test.swap_implementations(recommend)
      >>> make_user, make_review, make_restaurant = recommend.make_user, recommend.make_review, recommend.make_restaurant
      >>> distance = recommend.distance
      >>> find_closest, group_by_centroid = recommend.find_closest, recommend.group_by_centroid
      """,
      'teardown': r"""
      >>> test.restore_implementations(recommend)
      """,
      'type': 'doctest'
    }
  ]
}