def test_flat_replace(self): results = FakeResults(0) self.assertEqual( unnest.replace_innermost(results, unique_core=1).unique_core, 1) self.assertEqual( unnest.replace_innermost(results, return_unused=True, unique_core=1, foo=2), (FakeResults(1), { 'foo': 2 })) self.assertEqual( unnest.replace_outermost(results, unique_core=2).unique_core, 2) self.assertEqual( unnest.replace_outermost(results, return_unused=True, unique_core=2, foo=3), (FakeResults(2), { 'foo': 3 })) self.assertRaises( ValueError, lambda: unnest.replace_innermost( # pylint: disable=g-long-lambda results, unique_core=1, foo=1)) self.assertRaises( ValueError, lambda: unnest.replace_outermost( # pylint: disable=g-long-lambda results, unique_core=1, foo=1))
def test_atypical_nesting_replace(self): def build(a, b): return FakeAtypicalNestingResults( unique_atypical_nesting=a, atypical_inner_results=FakeResults(b)) results = build(0, 1) self.assertEqual(unnest.replace_innermost( results, unique_atypical_nesting=2), build(2, 1)) self.assertEqual( unnest.replace_innermost(results, unique_core=2), build(0, 2)) self.assertEqual(unnest.replace_innermost( results, unique_atypical_nesting=2, unique_core=3), build(2, 3)) self.assertEqual(unnest.replace_innermost( results, return_unused=True, unique_atypical_nesting=2, unique_core=3, foo=4), (build(2, 3), {'foo': 4})) self.assertEqual(unnest.replace_outermost( results, unique_atypical_nesting=2), build(2, 1)) self.assertEqual( unnest.replace_outermost(results, unique_core=2), build(0, 2)) self.assertEqual(unnest.replace_outermost( results, unique_atypical_nesting=2, unique_core=3), build(2, 3)) self.assertEqual(unnest.replace_outermost( results, return_unused=True, unique_atypical_nesting=2, unique_core=3, foo=4), (build(2, 3), {'foo': 4})) self.assertRaises(ValueError, lambda: unnest.replace_innermost( # pylint: disable=g-long-lambda results, unique_core=1, foo=1)) self.assertRaises(ValueError, lambda: unnest.replace_outermost( # pylint: disable=g-long-lambda results, unique_core=1, foo=1))
def test_deeply_nested_replace(self): results = _build_deeply_nested(0, 1, 2, 3, 4) self.assertTrue(unnest.replace_innermost(results, unique_nesting=5), _build_deeply_nested(0, 1, 2, 5, 4)) self.assertTrue(unnest.replace_outermost(results, unique_nesting=5), _build_deeply_nested(5, 1, 2, 3, 4)) self.assertTrue( unnest.replace_innermost(results, unique_atypical_nesting=5), _build_deeply_nested(0, 1, 5, 3, 4)) self.assertTrue( unnest.replace_outermost(results, unique_atypical_nesting=5), _build_deeply_nested(0, 5, 2, 3, 4)) self.assertTrue(unnest.replace_innermost(results, unique_core=5), _build_deeply_nested(0, 1, 2, 3, 5)) self.assertTrue(unnest.replace_outermost(results, unique_core=5), _build_deeply_nested(0, 1, 2, 3, 5)) self.assertTrue( unnest.replace_innermost(results, unique_nesting=5, unique_atypical_nesting=6, unique_core=7), _build_deeply_nested(0, 1, 6, 5, 7)) self.assertTrue( unnest.replace_innermost(results, return_unused=True, unique_nesting=5, unique_atypical_nesting=6, unique_core=7, foo=8), (_build_deeply_nested(0, 1, 6, 5, 7), { 'foo': 8 })) self.assertTrue( unnest.replace_outermost(results, unique_nesting=5, unique_atypical_nesting=6, unique_core=7), _build_deeply_nested(5, 6, 2, 3, 7)) self.assertTrue( unnest.replace_outermost(results, return_unused=True, unique_nesting=5, unique_atypical_nesting=6, unique_core=7, foo=8), (_build_deeply_nested(5, 6, 2, 3, 7), { 'foo': 8 })) self.assertRaises( ValueError, lambda: unnest.replace_innermost( # pylint: disable=g-long-lambda results, unique_core=1, foo=1)) self.assertRaises( ValueError, lambda: unnest.replace_outermost( # pylint: disable=g-long-lambda results, unique_core=1, foo=1))