ó ŸÃÒYc@sÊddlmZddlmZddlmZddlmZddlZddlm Z d„Z de fd „ƒYZ d „Z d e fd „ƒYZd e fd„ƒYZde fd„ƒYZdS(iÿÿÿÿ(t combinations(t assert_equal(t assert_false(t assert_trueN(t euclideancCstd„t||ƒDƒƒS(Ncss%|]\}}t||ƒVqdS(N(tabs(t.0tatb((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pys s(tsumtzip(txty((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pytl1dist stTestRandomGeometricGraphcBs2eZdZd„Zd„Zd„Zd„ZRS(sOUnit tests for the :func:`~networkx.random_geometric_graph` function. cCsTtjddƒ}tt|ƒdƒtjtdƒdƒ}tt|ƒdƒdS(Ni2gÐ?(tnxtrandom_geometric_graphRtlentrange(tselftG((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyttest_number_of_nodesscCs­t}tjddƒ}xŽt|dƒD]}\}}|||krvt||j|d|j|dƒdkƒq(t||j|d|j|dƒdkƒq(WdS(smTests that pairs of vertices adjacent if and only if they are within the prescribed radius. i2gÐ?itposN(RRRRRtnodesR(RtdistRtutv((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyttest_distancess 2cCs³t}tjddddƒ}xŽt|dƒD]}\}}|||kr|t||j|d|j|dƒdkƒq.t||j|d|j|dƒdkƒq.WdS(sTTests for providing an alternate distance metric to the generator. i2gÐ?tpiiRN(R RRRRRR(RRRRR((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyttest_p+s 2cCsáddl}t|jƒ}tj|dƒ}tt|ƒt|ƒƒt}xŽt|dƒD]}\}}|||krªt ||j |d|j |dƒdkƒq\t ||j |d|j |dƒdkƒq\WdS(sGTests using values other than sequential numbers as node IDs. iÿÿÿÿNgÐ?iR( tstringtlisttascii_lowercaseRRRRRRRRR(RRRRRRR((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyttest_node_names;s 2(t__name__t __module__t__doc__RRRR!(((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyRs    c Csd|j||j|}}|d|d}} |d|d} } |||| ƒ|| | kS(sReturns ``True`` if and only if the nodes whose attributes are ``du`` and ``dv`` should be joined, according to the threshold condition for geographical threshold graphs. ``G`` is an undirected NetworkX graph, and ``u`` and ``v`` are nodes in that graph. The nodes must have node attributes ``'pos'`` and ``'weight'``. ``metric`` is a distance metric. Rtweight(R( RRRtthetatalphatmetrictdutdvtu_postv_postu_weighttv_weight((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pytjoinNs tTestGeographicalThresholdGraphcBs)eZdZd„Zd„Zd„ZRS(sUUnit tests for the :func:`~networkx.geographical_threshold_graph` function. cCsTtjddƒ}tt|ƒdƒtjtdƒdƒ}tt|ƒdƒdS(Ni2id(Rtgeographical_threshold_graphRRR(RR((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyRfsc Cst}tjddƒ}xnt|dƒD]]\}}|||krftt|||dd|ƒƒq(tt|||dd|ƒƒq(WdS(spTests that pairs of vertices adjacent if and only if their distances meet the given threshold. i2idiN(RRR1RRR/R(RRRRR((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyRls "c Cs“t}tjddd|ƒ}xnt|dƒD]]\}}|||krltt|||dd|ƒƒq.tt|||dd|ƒƒq.WdS(sTTests for providing an alternate distance metric to the generator. i2idR(iN(R RR1RRR/R(RRRRR((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyt test_metric}s "(R"R#R$RRR2(((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyR0`s  tTestWaxmanGraphcBs)eZdZd„Zd„Zd„ZRS(s;Unit tests for the :func:`~networkx.waxman_graph` function.cCsZtjdddƒ}tt|ƒdƒtjtdƒddƒ}tt|ƒdƒdS(Ni2gà?gš™™™™™¹?(Rt waxman_graphRRR(RR((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyttest_number_of_nodes_1‘scCsftjdddddƒ}tt|ƒdƒtjtdƒddddƒ}tt|ƒdƒdS(Ni2gà?gš™™™™™¹?tLi(RR4RRR(RR((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyttest_number_of_nodes_2—s!cCs8t}tjdddd|ƒ}tt|ƒdƒdS(sTTests for providing an alternate distance metric to the generator. i2gà?gš™™™™™¹?R(N(R RR4RR(RRR((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyR2s(R"R#R$R5R7R2(((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyR3Žs  tTestNavigableSmallWorldGraphcBseZd„ZRS(cCsñtjdddddƒ}tjddƒjƒ}ttj||ƒƒtjdddddddƒ}tjdddgƒjƒ}ttj||ƒƒtjdddddddƒ}tjdgƒjƒ}ttj||ƒƒdS(NiRitqitdimi(Rtnavigable_small_world_grapht grid_2d_grapht to_directedRt is_isomorphict grid_graph(RRtgg((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyttest_navigable_small_worldªs!!(R"R#RA(((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyR8¨s(t itertoolsRt nose.toolsRRRtnetworkxRtnetworkx.generators.geometricRR tobjectRR/R0R3R8(((s~/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_geometric.pyts  ? .