PHP 8.3.31
Preview: input_test.py Size: 3.13 KB
/proc/self/root/opt/alt/alt-nodejs9/root/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.iteritems():
      self.assertEquals([], 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.iteritems():
      self.assertEquals([], 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.iteritems():
      self.assertEquals([], node.FindCycles())

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

    self.assertEquals([[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.assertEquals([[self.nodes['a'], self.nodes['b'], self.nodes['a']]],
                      self.nodes['a'].FindCycles())
    self.assertEquals([[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.assertEquals(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.assertEquals([[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:16
Edit Download
19.59 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
19.90 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
19.90 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
1.92 KB lrwxr-xr-x 2021-09-28 11:28:47
Edit Download
3.93 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
3.93 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
4.83 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
5.33 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
5.33 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
3.19 KB lrwxr-xr-x 2021-09-28 11:28:47
Edit Download
4.15 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
4.15 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
1.70 KB lrwxr-xr-x 2021-09-28 11:28:47
Edit Download
2.54 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
2.54 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
113.37 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
64.43 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
64.16 KB lrw-r--r-- 2021-09-28 11:58:08
Edit Download
3.13 KB lrwxr-xr-x 2021-09-28 11:28:47
Edit Download
4.35 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
4.35 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
22.80 KB lrwxr-xr-x 2021-09-28 11:28:47
Edit Download
23.14 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
23.14 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
11.84 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
9.96 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
9.96 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
6.24 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
7.73 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
7.73 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
43.99 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
37.19 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
37.19 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
64.39 KB lrwxr-xr-x 2021-09-28 11:28:47
Edit Download
31.69 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
31.69 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
1.76 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
2.40 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
2.40 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
4.97 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
5.13 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
5.13 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
9.31 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
7.75 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
7.75 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
16.76 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
14.57 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
14.46 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
46.58 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
49.60 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
49.52 KB lrw-r--r-- 2021-09-28 11:58:08
Edit Download
5.41 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
6.89 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
6.80 KB lrw-r--r-- 2021-09-28 11:58:08
Edit Download
10.12 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
10.90 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
10.90 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
1.22 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
2.29 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
2.29 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
12.45 KB lrwxr-xr-x 2021-09-28 11:28:47
Edit Download
12.85 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
12.85 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
118.01 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
97.13 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
96.80 KB lrw-r--r-- 2021-09-28 11:58:08
Edit Download
63.56 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
62.23 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
60.34 KB lrw-r--r-- 2021-09-28 11:58:08
Edit Download
10.34 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
7.57 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
7.57 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
2.12 KB lrw-r--r-- 2021-09-28 11:28:47
Edit Download
2.99 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
2.99 KB lrw-r--r-- 2021-09-28 11:58:07
Edit Download
21.66 KB lrwxr-xr-x 2021-09-28 11:28:47
Edit Download
16.45 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download
16.45 KB lrw-r--r-- 2021-09-28 11:58:06
Edit Download

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