$89 GRAYBYTE WORDPRESS FILE MANAGER $87

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.217.254 | ADMIN IP 216.73.216.157
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/

HOME
Current File : /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()


Current_dir [ NOT WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
1 Jan 1970 12.00 AM
root / root
0
generator
--
3 Mar 2024 10.36 PM
root / root
0755
MSVSNew.py
11.656 KB
10 Mar 2021 2.36 PM
root / root
0644
MSVSProject.py
6.237 KB
10 Mar 2021 2.36 PM
root / root
0644
MSVSSettings.py
44.11 KB
10 Mar 2021 2.36 PM
root / root
0644
MSVSSettings_test.py
64.562 KB
10 Mar 2021 2.36 PM
root / root
0644
MSVSToolFile.py
1.762 KB
10 Mar 2021 2.36 PM
root / root
0644
MSVSUserFile.py
4.967 KB
10 Mar 2021 2.36 PM
root / root
0644
MSVSUtil.py
9.31 KB
10 Mar 2021 2.36 PM
root / root
0644
MSVSVersion.py
17.024 KB
10 Mar 2021 2.36 PM
root / root
0644
__init__.py
21.868 KB
10 Mar 2021 2.36 PM
root / root
0644
common.py
20.579 KB
10 Mar 2021 2.36 PM
root / root
0644
common_test.py
1.918 KB
10 Mar 2021 2.36 PM
root / root
0644
easy_xml.py
4.873 KB
10 Mar 2021 2.36 PM
root / root
0644
easy_xml_test.py
3.249 KB
10 Mar 2021 2.36 PM
root / root
0644
flock_tool.py
1.706 KB
10 Mar 2021 2.36 PM
root / root
0644
input.py
113.647 KB
10 Mar 2021 2.36 PM
root / root
0644
input_test.py
3.11 KB
10 Mar 2021 2.36 PM
root / root
0644
mac_tool.py
22.892 KB
10 Mar 2021 2.36 PM
root / root
0644
msvs_emulation.py
46.759 KB
10 Mar 2021 2.36 PM
root / root
0644
ninja_syntax.py
5.406 KB
10 Mar 2021 2.36 PM
root / root
0644
simple_copy.py
1.302 KB
10 Mar 2021 2.36 PM
root / root
0644
win_tool.py
12.723 KB
10 Mar 2021 2.36 PM
root / root
0644
xcode_emulation.py
64.854 KB
10 Mar 2021 2.36 PM
root / root
0644
xcode_ninja.py
10.32 KB
10 Mar 2021 2.36 PM
root / root
0644
xcodeproj_file.py
117.659 KB
10 Mar 2021 2.36 PM
root / root
0644
xml_fix.py
2.123 KB
10 Mar 2021 2.36 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF