New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add initial unit tests and automated CI #48
Conversation
Thanks for starting to set this up @odow. I presume this is a WIP, but here are my initial thoughts.
In the |
Yeah still a WIP. I'll refactor into test |
Is there reason to maintain a separate cli branch? |
Just working on a test that validates the solutions are feasible. Because of model differences (like |
Along the lines of "rosetta code" I have thus far have wanted the primary focus of this repo to be, "this is how you implement AC-OPF in all these modeling layers". So learning, this is how I do a,b,c, in modeling layer x. The So my feeling is that this still is good to be a separate branch, but open to counter arguments.
Correct. Along the lines of the first note. I would like each modeling layer to be free to show a "preferred way" to model the problem; both mathematically and stylistically. This may lead to different ways of presenting the constrains. However, if we really want this feature, we could write a modeling layer agnostic feasibility test, which takes as inputs just the canonical decision variables (p,q,v,\theta) and returns a standardized vector of constraint and objective evolutions. |
This is what I did I the latest commit |
I'm playing whack-a-mole with the CI though. I don't understand what it's doing |
Tests pass locally:
I didn't find any mistakes in the implementations. |
I am not surprised. AC-OPF is such a finicky problem the objective function value basically functions as a hash for the solution vector. |
Yeah but I guess by not testing known solutions we're not checking whether the solver returns a minima, just primal feasibility. |
Good point, verifying that you have a KKT point would be the next check to make, but feels like overkill to me. From at Mathprog perspective citifying local optimality is valuable, but I think most AC-OPF researchers are happy with any feasible point, so I would not want to exclude solvers that cannot certify local optimality. |
Okay, I think I got the CI running for the main ones. I'll look at the variants as well |
If it is easy to configure, I would make passing CI on the |
Closes #47