2016-07-26 14:58 GMT+02:00 Wayne Stambaugh <[email protected]>: > On 7/26/2016 7:20 AM, Nick Østergaard wrote: >> Welcome. >> >> I have found a pcb file on my computer, I am not sure of its origin, >> that has a buggy rendering both in legacy and GAL in different, but >> similar ways. Maybe you should include this in your testing and >> development. >> >> About unittests, there is already some stuff in the qa folder using >> python... but this is mostly a proof of concept. Nothing is really >> tested at the moment, except for file loading more or less. I would >> personally like to see some more testing, although I am not sure that >> the boost test module is the best for this either. > > I suggested using the boost unit testing framework to Alejandro. The > problem with using python unit testing is that not everything in Pcbnew > is swigged so you wouldn't be able to test that code unless there is > someway to compile and run C++ test code from the python unit test > framework. If this can be done, then boost unit test wouldn't be necessary. > > While I'm not 100% convinced that the boost unit test frameworks is the > way to go, it seems to compare well to the other C++ test frameworks. > The benefit is it does not add yet another dependency and allows us to > use C++ code to write tests. I do not have any experience in this area > so if someone as experience using the different c++ unit test > frameworks, feel free to comment. > >> >> Will your work eventually lead to use for example arcs on copper >> layers, which is not supported by the DRC? > > It should allow for this but AFAIK we still cannot generate gerbers with > arcs.
Why not? The gerber spec has: 4.5 Circular Interpolation (G02/G03) and (G74/G75) I might be misinterpreting the spec, but I see that as it supports _circular_ arcs. Which is what we have in KiCad. > >> >> Nick >> >> 2016-07-15 12:25 GMT+02:00 Alejandro Garcia Montoro >> <[email protected]>: >>> Hi! >>> >>> I've been working on some geometry code on this branch: >>> https://code.launchpad.net/~alejandro-garciamontoro/kicad/kicad-polygon-refactor >>> >>> This is still an ongoing work. You can consider this as a new developer >>> getting used to the code, waiting for Wayne and Javier to review the code >>> and decide if I finally join the team :) By the way, for the guys that were >>> not at the CERN hackaton: I am Alejandro García, a Computer Science and >>> Mathematics student from Granada, Spain; the idea is to work on KiCAD >>> full-time once I finish my studies; that is, since September 19th. >>> >>> So far, the following has been done: >>> >>> CPolyLine refactoring, thouroughly tested in the tests directory. >>> >>> CPolyLine::Chamfer method has been refactored into >>> SHAPE_POLY_SET::ChamferPolygon method. The main behaviour of the old method >>> has been maintained, returning a completely new POLYGON object; if you think >>> it should modify the original polygon instead of returning a copy of a new >>> one, let me know. This was done this way just to preserve the way CPolyLine >>> did its job. Furthermore, a sanity check was introduced into the old >>> CPolyLine method: due to rounding errors, two corners with the exact same >>> coordinates could be added, and the CPolyLine::RemoveNullSegments was not >>> able to remove them (this is a bug that should be studied if we continue to >>> use CPolyLine code; as this is not the idea, I just fixed the errors in the >>> new ChamferPolygon method to be able to test my refactoring). >>> CPolyLine::Fillet method has been refactored into >>> SHAPE_POLY_SET::FilletPolygon method. The same previous comments apply here. >>> The AppendBezier methods have not been moved to SHAPE_POLY_SET yes. As I >>> think Michele is working on a SHAPE_ARC class, I though it's better to wait >>> for that code to be ready. >>> >>> The collision between a SHAPE_POLY_SET object and a point has been >>> implemented and tested: the main behaviour is managed from the Contains >>> method, that has been fixed to support holes, and that is implemented with >>> the new containsSingle private method. >>> Some more simple methods have been implemented in the SHAPE_POLY_SET class: >>> HasHoles method, which was declared but not defined and PointOnEdge, which >>> is basically a loop over the SHAPE_LINE_CHAIN::PointOnEdge method. >>> A tests folder has been added to the project directory structure (the main >>> CMakeFile.txt was also modified in order to handle this new directory). As >>> a new developer in the project I missed there were some kind of standard >>> test suite in KiCAD to be used; hopefully, Michele showed to me at CERN how >>> he was doing his tests (thank you!), so this is based on his files. I think >>> we should make sure that in the not so distant future we add some standard >>> test suite to the project; maybe not this one, as I think you wanna get rid >>> of Boost library and these tests are based on Boost Test; anyway, I think >>> this could be a good idea for the project. >>> The tests folder I added contains the following new files: >>> >>> CMakeLists.txt: it creates a new MyTests executable inside the tests >>> directory. >>> module.cpp: Defines the Boost test module. >>> fixtures.h: Defines common data for the tests to check the methods. >>> chamfer_fillet_test.cpp: Defines unity tests to check the CPolyLine -> >>> SHAPE_POLY_SET refactor did not change the previous behaviour. >>> collision_test.cpp: Defines unity tests to check the implementation of the >>> methods HasHoles, PointOnEdge, Contains and Collide works well. >>> >>> Wayne, please, review these code changes and let me know if there is >>> anything wrong or something I can improve for the future work :) >>> >>> Looking forward to hear from you, guys! >>> >>> Regards, >>> Alejandro >>> >>> _______________________________________________ >>> Mailing list: https://launchpad.net/~kicad-developers >>> Post to : [email protected] >>> Unsubscribe : https://launchpad.net/~kicad-developers >>> More help : https://help.launchpad.net/ListHelp >>> >>> >>> >>> _______________________________________________ >>> Mailing list: https://launchpad.net/~kicad-developers >>> Post to : [email protected] >>> Unsubscribe : https://launchpad.net/~kicad-developers >>> More help : https://help.launchpad.net/ListHelp > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : [email protected] > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

