Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 16:48
    abhichou4 commented #1929
  • Jul 29 16:45
    Ri7Sh commented #2025
  • Jul 28 18:22
    Ri7Sh synchronize #2025
  • Jul 28 18:00
    Ri7Sh synchronize #2025
  • Jul 28 17:39
    cvvergara closed #1910
  • Jul 28 15:23
    Ri7Sh synchronize #2025
  • Jul 28 15:12
    Ri7Sh synchronize #2025
  • Jul 28 11:27
    ManasviGoyal synchronize #2029
  • Jul 28 11:23
    ManasviGoyal synchronize #2029
  • Jul 28 08:44
    abhichou4 commented #1929
  • Jul 28 08:41
    abhichou4 commented #2038
  • Jul 28 08:40
    abhichou4 commented #2038
  • Jul 28 04:56
    abhichou4 edited #2038
  • Jul 28 04:54

    github-actions[bot] on gh-pages

    Update users documentation for … (compare)

  • Jul 28 04:45

    krashish8 on v3.2.1

    (compare)

  • Jul 28 04:39
    cvvergara closed #295
  • Jul 28 04:39
    cvvergara milestoned #295
  • Jul 28 04:36

    cvvergara on develop

    [c_types][C/C++] fixing edge_t.h (compare)

  • Jul 28 04:36
    cvvergara closed #2040
  • Jul 28 04:22
    cvvergara closed #1883
Vicky Vergara
@cvvergara

Topic: Requirements for the PR

purpose make sure detachment of "current real problem" and because the code is not using a Boost function

  • Clear statement of the problem to be solved
    • Mathematically
    • Natural language
    • Include the kind of graph it works with
      • directed
      • undirected
      • if it problem is not solvable for one of those kinds, clearly state why
  • Discussion of the name to be used when added to pgRouting (will use for sake of simplicity pgr_isochrones in this topic)
  • User documentation including automatically generated results of example queries
  • pgtap unit tests with different graphs on the created by edges_SQL (E set) where the vertices are deduced from E, +1 node given by the start_vid.
    • E = {}
    • E has one vertex
    • E has 2 vertices and one edge
      • second node is reachable from start_vid exactly
      • second node is unreachable from start_vid so result is within the lone edge
    • E has 3 vertices
      • many combinations of possible edges that can exist with 3 vertices
      • together with many combinations of reach-ability
    • E has 4 vertices
      • many combinations of possible edges that can exist with 4 vertices
      • together with many combinations of reach-ability
    • No server crash test
      • Normally happens when data is NULL
    • Test of persistence
      • So that in the future no one accidentally removes the function, changes signature, without our knowledge
      • example
      • Note that compulsory are unnamed parameters and optional parameters are named parameters see RFC 3
    • equivalence tests, examples:
      • if the reached node is a real vertex of the graph, then executing pgr_dijkstra will give the total aggregate cost with the same value returned by the pgr_isochrones (if so applies)
      • if the reached node is a node within an edge of the graph, virtual vertex, (that gives the exact distance used on the call of pgr_isochrones, then executing pgr_dijkstraWithPoints from the start_vid to the virtual vertex will give the total aggregate cost with the same value distance used with the call to pgr_isochrones. (actually this same function can be used when the node is a real vertex on the graph).
      • see example of equivalence test.

about tests

Remember a test is independent from the code, so to design a test first make the graph, write down the expected results.
Example
From this query:

SELECT * FROM pgr_isochrones(
    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id > 20',
   1, 2.5::FLOAT, true);

empty results are expected, because the internally generated graph is G=(E={}, V={1}) so the pgtap test would be:

SELECT is_empty($$
  SELECT * FROM pgr_isochrones(
      'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id > 20',
     1, 2.5::FLOAT, true)
$$);

end topic

Ashish Kumar
@krashish8

@cvvergara Ma'am in GitHub builds, I am facing this problem: https://github.com/pgRouting/GSoC-pgRouting/pull/43/checks?check_run_id=760255460#step:3:562

Ver     Cluster     Port    Status     Owner                     Data directory                                             Log file
9.5       main       5433    down     postgres      /var/lib/postgresql/9.5/main       /var/log/postgresql/postgresql-9.5-main.log

Maybe the postgresql on port 5433 is down, so, anything which can be done to fix this, or is it just a GitHub actions problem and we shall just wait for the problem to get resolved?

I got this error in all the commits which I made yesterday; the builds on travis and appveyor are passing.

Himanshu Raj
@rajhim2
I was also facing the same problem yesterday. Travis and Appveyor builds were passing and other builds were failing. So I re-run that specific job which was failing and it passed. You can try Re-run Jobs for that specific job.
Ashish Kumar
@krashish8

I tried re-running several times, still the problems isn't resolved.

@rajhim2 Maybe you are still facing the same problem in your pull request in the GSoC-pgRouting repository : pgRouting/GSoC-pgRouting#42
Your build is failing there, though it passed in your forked repository's branch

Ashish Kumar
@krashish8

@cvvergara Ma'am, for the pgTAP unit tests, are we required to use the pgRouting's Sample Data (edge_table) somehow for graphs like 2 vertices + 1 edge, or 3 vertices, or 4 vertices?

Or, for each such graph (3 vertices, 4 vertices etc), we can create a separate table and then use set_eq to match the queries and the results?

Daniel Kastl
@dkastl
@krashish8 , good question.
I would say that if you can reuse the existing sample data for your case, that would be best, because maintaining multiple sample networks is extra work.
If you think the current sample network is not suitable, maybe we can extend it to also cover your use case.
Himanshu Raj
@rajhim2
Can anyone help me with .hpp file code. The function is testing if an undirected graph is planar or not. If it is planar I want to simply return the rows of id, source , target, cost, reverse_cost in the result otherwise 0 rows.
Currently the .hpp code is returning incorrect output.
 SELECT * FROM pgr_boyerMyrvold(
    'SELECT id, source, target, cost, reverse_cost
        FROM edge_table WHERE id IN (15,8,16,9)'
);
 id | source | target |         cost          | reverse_cost 
----+--------+--------+-----------------------+--------------
  1 |      8 |      5 | 2.96439387504748e-323 |            1
  2 |      9 |      6 | 4.44659081257122e-323 |            1
  3 |     15 |      9 | 5.92878775009496e-323 |            1
  4 |     16 |      4 | 4.44659081257122e-323 |            1
(4 rows)
Himanshu Raj
@rajhim2
Whereas the correct output should be : -
 id | source | target | cost | reverse_cost 
----+--------+--------+------+--------------
  8 |      5 |      6 |    1 |            1
  9 |      6 |      9 |    1 |            1
 15 |      9 |     12 |    1 |            1
 16 |      4 |      9 |    1 |            1
(4 rows)
Himanshu Raj
@rajhim2
Generating html/en documentation ...
Running Sphinx v2.4.0
loading translations [en]... done
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 0 source files that are out of date
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files... none found
no targets are out of date.
build succeeded.

The HTML pages are in html/en.
Built target html-en
Built target html
Built target doc
[100%] Generating API documentation with Doxygen
Error: /home/himanshu/GSoC-pgRouting/build/doxygen/html/inline_dotgraph_2.dot: syntax error in line 14 near '-'
Error: /home/himanshu/GSoC-pgRouting/build/doxygen/html/inline_dotgraph_2.dot: syntax error in line 14 near '-'
Error: /home/himanshu/GSoC-pgRouting/build/doxygen/latex/inline_dotgraph_2.dot: syntax error in line 14 near '-'
Segmentation fault (core dumped)
doxygen/CMakeFiles/doxy.dir/build.make:57: recipe for target 'doxygen/CMakeFiles/doxy' failed
make[3]: *** [doxygen/CMakeFiles/doxy] Error 139
CMakeFiles/Makefile2:2563: recipe for target 'doxygen/CMakeFiles/doxy.dir/all' failed
make[2]: *** [doxygen/CMakeFiles/doxy.dir/all] Error 2
CMakeFiles/Makefile2:2570: recipe for target 'doxygen/CMakeFiles/doxy.dir/rule' failed
make[1]: *** [doxygen/CMakeFiles/doxy.dir/rule] Error 2
Makefile:593: recipe for target 'doxy' failed
make: *** [doxy] Error 2
This doxygen error comes at the step : Generating API documentation with Doxygen. I have installed doxygen and graphviz and pygraphviz correctly. Can anyone please explain.
Ashish Kumar
@krashish8
How can we create a graph in pgRouting with an isolated vertex, or with two isolated vertices, etc. (vertices having no degree)?
I guess this functionality should be there in pgRouting.
Since we have an edge representation of the graph, the best I can try was to represent the graph in the following way:
For one isolated vertex:
 id | source | target | cost | reverse_cost 
----+--------+--------+------+--------------
  1 |      1 |      1 |   -1 |           -1
(1 row)
For two isolated vertices:
 id | source | target | cost | reverse_cost 
----+--------+--------+------+--------------
  1 |      1 |      2 |   -1 |           -1
  2 |      2 |      1 |   -1 |           -1
(2 rows)
But in both the cases, the source and target vertices were not created, and the edge was not added.
(If I checked it correctly)
In my opinion, both the source and target vertices should get created, with no edge between them.
While creating a graph in pgRouting, we call the insert_edges function which then calls the graph_add_edge function. But the second function returns directly if both the cost and reverse_cost are negative (i.e. when the edge does not exist in the graph).
Is there some other way to create isolated vertices, by directly using the insert_edges function of pgRouting (pgr_base_graph.hpp)?
Vicky Vergara
@cvvergara
Who wants to create an isolated vertex? pgRouting? the user of pgRouting?
Ashish Kumar
@krashish8
I mean "the user of pgRouting".
But if the user tries to do it in the way I mentioned above, the isolated vertices aren't created internally in pgRouting, if we use the insert_edges function defined in pgr_base_graph.hpp
Vicky Vergara
@cvvergara
Why does the user want to create an isolated vertex?
Ashish Kumar
@krashish8

I mean the user may want to do that. It entirely depends upon the user.

As an example, for the graph coloring algorithm, if the graph contains an isolated vertex, it should also have some color assigned to it.

Example: coloring a map, such that two neighbouring states have different color. If the map contains an island state, it should also have some color assigned to it.
Vicky Vergara
@cvvergara
The island is not isolated
Vicky Vergara
@cvvergara
Portugal, Spain, Mexico, USA, Cuba (using the first letter)
P-S, M-U, M-C, U-C that would be the graph representing neighbours
Ashish Kumar
@krashish8
Fine. Got it!
Vicky Vergara
@cvvergara
Now the answer to your initial question.
To have an isolated vertex use ´0´ the edge will be added so the vertex.
 id | source | target | cost | reverse_cost 
----+--------+--------+------+--------------
  1 |      1 |      1 |   0 |           -1
(1 row)
Ashish Kumar
@krashish8
Okay. Thanks, got it!
Vicky Vergara
@cvvergara

As part of the Bolsena code spring:

In around 20 minutes will be working checking the PR #1361 with the author, you are welcome to join
Vicky Vergara
@cvvergara

Topic: PR #1361 review

Mohamed Bakli
@mbakli
Many thanks for adding me.
Vicky Vergara
@cvvergara
Hello @mbakli thanks for coming, we are going to review your PR
Mohamed Bakli
@mbakli
I am ready.
Vicky Vergara
@cvvergara

Plan of the week:

  • detect issues
  • fix issues
  • make one commit
  • merge to master
  • prepare master for v3.0.1
  • cherry pick the commit apply to develop
  • add the interruption code in the new functionality
  • move develop to master and release v.3.1.0
I will be doing prepare master for v3.0.1 you dont have to worry about that one

detect issues

One thing that needs to be done is add the appropriate licence to the new file you added
Mohamed Bakli
@mbakli
Ok
commit and push when done
(and tell me when done)
We have a style code checker, that follows some guidelines from https://google.github.io/styleguide/cppguide.html
we need to check
Vicky Vergara
@cvvergara
To check from the root of the repository do:
bash tools/scripts/code_checker.sh > marks.txt