ó žÃÒYc@ s´dZddlmZddlmZddlmZddlmZddlZddl m Z ddl m Z d „Z d „Z d efd „ƒYZd efd„ƒYZdS(sLUnit tests for the :mod:`networkx.algorithms.approximation.clique` module. iÿÿÿÿ(tdivision(tassert_greater(t assert_true(teq_N(t max_clique(tclique_removalcC s|j|ƒjƒdkS(s‡Returns True if and only if `nodes` is a clique in `G`. `G` is a NetworkX graph. `nodes` is an iterable of nodes in `G`. i(tsubgraphtnumber_of_edges(tGtnodes((s‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pytis_independent_setscC s7|j|ƒ}t|ƒ}|jƒ||ddkS(sŸReturns True if and only if `nodes` is an independent set in `G`. `G` is an undirected simple graph. `nodes` is an iterable of nodes in `G`. ii(RtlenR(RR tHtn((s‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pyt is_clique"s tTestCliqueRemovalcB s)eZdZd„Zd„Zd„ZRS(s`Unit tests for the :func:`~networkx.algorithms.approximation.clique_removal` function. c sotjƒ‰tˆƒ\}}ttˆ|ƒƒtt‡fd†|Dƒƒƒttd„|DƒƒƒdS(Nc3 s|]}tˆ|ƒVqdS(N(R(t.0tclique(R(s‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pys 9scs s!|]}t|ƒdkVqdS(iN(R (RR((s‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pys ;s(tnxt trivial_graphRRR tall(tselftindependent_settcliques((Rs‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pyttest_trivial_graph5s   c sXtjdƒ‰tˆƒ\}}ttˆ|ƒƒtt‡fd†|DƒƒƒdS(Ni c3 s|]}tˆ|ƒVqdS(N(R(RR(R(s‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pys As(Rtcomplete_graphRRR R(RRR((Rs‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pyttest_complete_graph=sc s[tjddƒ‰tˆƒ\}}ttˆ|ƒƒtt‡fd†|DƒƒƒdS(Ni ic3 s|]}tˆ|ƒVqdS(N(R(RR(R(s‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pys Gs(Rt barbell_graphRRR R(RRR((Rs‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pyttest_barbell_graphCs(t__name__t __module__t__doc__RRR(((s‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pyR/s  t TestMaxCliquecB s)eZdZd„Zd„Zd„ZRS(s[Unit tests for the :func:`networkx.algorithms.approximation.max_clique` function. cC s)tjƒ}ttt|ƒƒdƒdS(Ni(Rt null_graphRR R(RR((s‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pyttest_null_graphPs cC s2tjdƒ}t|ƒ}tdt|ƒƒdS(Ni(RRRRR (Rtgraphtmc((s‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pyRTs cC sstjdƒ}|jddƒt|ƒ}tt|ƒdƒtjddƒ}t|ƒ}tt|ƒdƒdS(s Tests that the maximal clique is computed according to maximum cardinality of the sets. For more information, see pull request #1531. iiiiiN(RRtadd_edgeRRR tlollipop_graph(RRR((s‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pyttest_maximal_by_cardinalityZs  (RRRR"RR'(((s‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pyR Js  (Rt __future__Rt nose.toolsRRRtnetworkxRt!networkx.algorithms.approximationRRR RtobjectRR (((s‰/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_clique.pyt s