PHP 8.2.30
Preview: input_test.py Size: 3.11 KB
//proc/thread-self/root/proc/self/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: 25

Name Size Perms Modified Actions
generator DIR
- drwxr-xr-x 2024-03-03 22:36:29
Edit Download
20.58 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
1.92 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
4.87 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
3.25 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
1.71 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
113.65 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
3.11 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
22.89 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
11.66 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
6.24 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
44.11 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
64.56 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
1.76 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
4.97 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
9.31 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
17.02 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
46.76 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
5.41 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
1.30 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
12.72 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
117.66 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
64.85 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
10.32 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
2.12 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download
21.87 KB lrw-r--r-- 2021-03-10 14:36:38
Edit Download

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