Пример #1
0
class UnderscoreTestCase(unittest.TestCase):

  def setUp(self):
    self._ = Underscore()

  def tearDown(self):
    self._ = None

  def test_mixins(self):

    def test_method(x, y):
      return x + y

    self._.mixin({
        'test_method': test_method
      })
    self.assertTrue(self._.test_method)
    self.assertEqual(self._.test_method(5, 4), 9)

  def test_each(self):
    my_seq = [1,2,3,4,5]
    self.assertTrue(self._.each)
    # Test functional-style
    self.assertEqual(self._.each(my_seq, lambda x: x + 1), [2,3,4,5,6])
    # Test OOP-style
    self.assertEqual(self._(my_seq).each(lambda x: x + 2), [3,4,5,6,7])
Пример #2
0
class UnderscoreTestCase(unittest.TestCase):

  def setUp(self):
    self._ = Underscore()

  def tearDown(self):
    self._ = None

  def test_mixins(self):

    def test_method(x, y):
      return x + y

    self._.mixin({
        'test_method': test_method
      })
    self.assertTrue(self._.test_method)
    self.assertEqual(self._.test_method(5, 4), 9)

  def test_each(self):
    my_seq = [1,2,3,4,5]
    self.assertTrue(self._.each)
    # Test functional-style
    self.assertEqual(self._.each(my_seq, lambda x: x + 1), [2,3,4,5,6])
    # Test OOP-style
    self.assertEqual(self._(my_seq).each(lambda x: x + 2), [3,4,5,6,7])

  def test_filter(self):
    my_seq = [1,2,3,4,5]
    self.assertTrue(self._.filter)
    # Test functional-style
    self.assertEqual(self._.filter(my_seq, lambda x: x % 2 == 0), [2,4])
    # Test OOP-style
    self.assertEqual(self._(my_seq).filter(lambda x: x % 2 == 0), [2,4])

  def test_all(self):
    my_seq = [1,2,False,None,True]
    self.assertTrue(self._.all)
    # Test functional-style
    self.assertEqual(self._.all(my_seq), [1,2,True])
    # Test OOP-style
    self.assertEqual(self._(my_seq).all(), [1,2,True])

  def test_generator(self):
    my_seq = [1,2,3,4,5]
    self.assertTrue(self._.generator)
    # Test functional-style if it returns a generator
    self.assertTrue(isinstance(self._.generator(my_seq), types.GeneratorType))
    # Test OOP-style if it returns a generator
    self.assertTrue(isinstance(self._(my_seq).generator(), types.GeneratorType))
    # Test return values
    self.assertEqual([i for i in self._.generator(my_seq)], my_seq)
    self.assertEqual([i for i in self._(my_seq).generator()], my_seq)
    # Test chaining
    self.assertEqual(self._.chain()
        .generator(my_seq)
        .each(lambda x: x + 1)
        .value(), [2,3,4,5,6])

  def test_chaining(self):
    my_seq = [1,2,3,4,5]
    self.assertTrue(self._.chain)
    # Test functional-style
    self.assertEqual(self._
      .chain(my_seq)
      .each(lambda x: x + 1)
      .filter(lambda x: x % 2 == 0)
      .value(), [2,4,6])
    # Test OOP-style
    self.assertEqual(self._(my_seq)
      .chain()
      .each(lambda x: x + 1)
      .filter(lambda x: x % 2 == 0)
      .value(), [2,4,6])