PHP 8.3.31
Preview: input_test.py Size: 3.11 KB
/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py

#!/usr/bin/python2

# Copyright 2013 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Unit tests for the input.py file."""

import gyp.input
import unittest
import sys


class TestFindCycles(unittest.TestCase):
  def setUp(self):
    self.nodes = {}
    for x in ('a', 'b', 'c', 'd', 'e'):
      self.nodes[x] = gyp.input.DependencyGraphNode(x)

  def _create_dependency(self, dependent, dependency):
    dependent.dependencies.append(dependency)
    dependency.dependents.append(dependent)

  def test_no_cycle_empty_graph(self):
    for label, node in self.nodes.items():
      self.assertEqual([], node.FindCycles())

  def test_no_cycle_line(self):
    self._create_dependency(self.nodes['a'], self.nodes['b'])
    self._create_dependency(self.nodes['b'], self.nodes['c'])
    self._create_dependency(self.nodes['c'], self.nodes['d'])

    for label, node in self.nodes.items():
      self.assertEqual([], node.FindCycles())

  def test_no_cycle_dag(self):
    self._create_dependency(self.nodes['a'], self.nodes['b'])
    self._create_dependency(self.nodes['a'], self.nodes['c'])
    self._create_dependency(self.nodes['b'], self.nodes['c'])

    for label, node in self.nodes.items():
      self.assertEqual([], node.FindCycles())

  def test_cycle_self_reference(self):
    self._create_dependency(self.nodes['a'], self.nodes['a'])

    self.assertEqual([[self.nodes['a'], self.nodes['a']]],
                      self.nodes['a'].FindCycles())

  def test_cycle_two_nodes(self):
    self._create_dependency(self.nodes['a'], self.nodes['b'])
    self._create_dependency(self.nodes['b'], self.nodes['a'])

    self.assertEqual([[self.nodes['a'], self.nodes['b'], self.nodes['a']]],
                      self.nodes['a'].FindCycles())
    self.assertEqual([[self.nodes['b'], self.nodes['a'], self.nodes['b']]],
                      self.nodes['b'].FindCycles())

  def test_two_cycles(self):
    self._create_dependency(self.nodes['a'], self.nodes['b'])
    self._create_dependency(self.nodes['b'], self.nodes['a'])

    self._create_dependency(self.nodes['b'], self.nodes['c'])
    self._create_dependency(self.nodes['c'], self.nodes['b'])

    cycles = self.nodes['a'].FindCycles()
    self.assertTrue(
       [self.nodes['a'], self.nodes['b'], self.nodes['a']] in cycles)
    self.assertTrue(
       [self.nodes['b'], self.nodes['c'], self.nodes['b']] in cycles)
    self.assertEqual(2, len(cycles))

  def test_big_cycle(self):
    self._create_dependency(self.nodes['a'], self.nodes['b'])
    self._create_dependency(self.nodes['b'], self.nodes['c'])
    self._create_dependency(self.nodes['c'], self.nodes['d'])
    self._create_dependency(self.nodes['d'], self.nodes['e'])
    self._create_dependency(self.nodes['e'], self.nodes['a'])

    self.assertEqual([[self.nodes['a'],
                        self.nodes['b'],
                        self.nodes['c'],
                        self.nodes['d'],
                        self.nodes['e'],
                        self.nodes['a']]],
                      self.nodes['a'].FindCycles())


if __name__ == '__main__':
  unittest.main()

Directory Contents

Dirs: 1 × Files: 78

Name Size Perms Modified Actions
generator DIR
- drwxr-xr-x 2025-05-01 12:47:03
Edit Download
20.51 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
20.75 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
20.75 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
1.92 KB lrwxr-xr-x 2021-09-28 10:29:52
Edit Download
3.93 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
3.93 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
4.87 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
5.43 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
5.43 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
3.25 KB lrwxr-xr-x 2021-09-28 10:29:52
Edit Download
4.24 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
4.24 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
1.71 KB lrwxr-xr-x 2021-09-28 10:29:52
Edit Download
2.54 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
2.54 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
113.52 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
64.34 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
64.12 KB lrw-r--r-- 2021-09-28 10:55:58
Edit Download
3.11 KB lrwxr-xr-x 2021-09-28 10:29:52
Edit Download
4.35 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
4.35 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
22.83 KB lrwxr-xr-x 2021-09-28 10:29:52
Edit Download
23.23 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
23.23 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
11.66 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
10.39 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
10.39 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
6.24 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
7.73 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
7.73 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
44.17 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
37.42 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
37.42 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
64.45 KB lrwxr-xr-x 2021-09-28 10:29:52
Edit Download
31.78 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
31.78 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
1.76 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
2.40 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
2.40 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
4.97 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
5.13 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
5.13 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
9.31 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
7.75 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
7.75 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
16.92 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
14.68 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
14.56 KB lrw-r--r-- 2021-09-28 10:55:58
Edit Download
46.91 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
49.67 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
49.59 KB lrw-r--r-- 2021-09-28 10:55:58
Edit Download
5.41 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
6.89 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
6.80 KB lrw-r--r-- 2021-09-28 10:55:58
Edit Download
10.12 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
10.88 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
10.88 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
1.30 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
2.38 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
2.38 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
12.49 KB lrwxr-xr-x 2021-09-28 10:29:52
Edit Download
12.96 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
12.96 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
117.66 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
97.29 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
96.96 KB lrw-r--r-- 2021-09-28 10:55:58
Edit Download
64.58 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
63.52 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
61.63 KB lrw-r--r-- 2021-09-28 10:55:58
Edit Download
10.32 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
7.55 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
7.55 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
2.12 KB lrw-r--r-- 2021-09-28 10:29:52
Edit Download
2.99 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
2.99 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
21.87 KB lrwxr-xr-x 2021-09-28 10:29:52
Edit Download
16.66 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download
16.66 KB lrw-r--r-- 2021-09-28 10:55:57
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).