Grid library for XMS products
In order to build this library, you must first have a few things installed.
See xmscore build instructions.
Aquaveo xmsgrid support library
License: BSD 2-Clause "Simplified" License
Grid library for XMS products
In order to build this library, you must first have a few things installed.
See xmscore build instructions.
We need to flake the tests and remove the ignore from the flake8 command in the CI
XmUGrid::SetLocation shouldn't check for invalid cells. Instead there should be a function to check if moving a point would cause an invalid cell.
The documentation on these is not very good.
It would be easiest to just make them properties of the class and set the doc strings., but we want them to be static members so we can't just make them properties
I am building and running the CXXTests through valgrind, and mostly, the tests pass with flying colors. However, when I ran it on the ./xmsgrid/xmsgrid//ugrid/XmUGrid.t.h case, it did find problems.
โฆ โ valgrind ./runXmUGrid
==214036== Memcheck, a memory error detector
==214036== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==214036== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==214036== Command: ./runXmUGrid
==214036==
Running cxxtest tests (138 tests)......................==214036== Invalid read of size 8
==214036== at 0x458EAC: bool xms::Pt3::operator==(xms::Pt3 const&) const (pt.h:946)
==214036== by 0x45693B: void xms::(anonymous namespace)::iBuildPolygon<xms::Pt3 >(std::vector<std::pair<xms::Pt3, xms::Pt3 >, std::allocator<std::pair<xms::Pt3, xms::Pt3 > > >&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:505)
==214036== by 0x4283EE: xms::(anonymous namespace)::iMergeSegmentsToPoly(std::vector<xms::Pt3, std::allocator<xms::Pt3 > > const&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:582)
==214036== by 0x42D44A: xms::XmUGrid::Impl::GetPlanViewPolygon3d(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:2561)
==214036== by 0x42A0C4: xms::XmUGrid::Impl::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:1335)
==214036== by 0x42F43C: xms::XmUGrid::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:3621)
==214036== by 0x447D55: XmUGridUnitTests::testGetCellPlanViewPolygonMultiSideFace() (XmUGrid.cpp:5468)
==214036== by 0x41E0F7: TestDescription_suite_XmUGridUnitTests_testGetCellPlanViewPolygonMultiSideFace::runTest() (runXmUGrid.t.cpp:165)
==214036== by 0x417D2E: CxxTest::RealTestDescription::run() (RealDescriptions.cpp:121)
==214036== by 0x41BB69: CxxTest::TestRunner::runTest(CxxTest::TestDescription&) (TestRunner.h:103)
==214036== by 0x41BA7A: CxxTest::TestRunner::runSuite(CxxTest::SuiteDescription&) (TestRunner.h:87)
==214036== by 0x41B950: CxxTest::TestRunner::runWorld() (TestRunner.h:67)
==214036== Address 0x556f4a8 is 24 bytes inside a block of size 48 free'd
==214036== at 0x48488DD: operator delete(void*, unsigned long) (vg_replace_malloc.c:935)
==214036== by 0x46AAC0: std::__new_allocator<xms::Pt3 >::deallocate(xms::Pt3, unsigned long) (new_allocator.h:158)
==214036== by 0x465EA5: std::allocator_traits<std::allocator<xms::Pt3 > >::deallocate(std::allocator<xms::Pt3 >&, xms::Pt3, unsigned long) (alloc_traits.h:496)
==214036== by 0x45DC71: std::_Vector_base<xms::Pt3, std::allocator<xms::Pt3 > >::_M_deallocate(xms::Pt3, unsigned long) (stl_vector.h:387)
==214036== by 0x46327B: void std::vector<xms::Pt3, std::allocator<xms::Pt3 > >::_M_realloc_insert<xms::Pt3 const&>(__gnu_cxx::__normal_iterator<xms::Pt3, std::vector<xms::Pt3, std::allocator<xms::Pt3 > > >, xms::Pt3 const&) (vector.tcc:513)
==214036== by 0x45AE33: std::vector<xms::Pt3, std::allocator<xms::Pt3 > >::push_back(xms::Pt3 const&) (stl_vector.h:1287)
==214036== by 0x456965: void xms::(anonymous namespace)::iBuildPolygon<xms::Pt3 >(std::vector<std::pair<xms::Pt3, xms::Pt3 >, std::allocator<std::pair<xms::Pt3, xms::Pt3 > > >&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:507)
==214036== by 0x4283EE: xms::(anonymous namespace)::iMergeSegmentsToPoly(std::vector<xms::Pt3, std::allocator<xms::Pt3 > > const&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:582)
==214036== by 0x42D44A: xms::XmUGrid::Impl::GetPlanViewPolygon3d(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:2561)
==214036== by 0x42A0C4: xms::XmUGrid::Impl::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:1335)
==214036== by 0x42F43C: xms::XmUGrid::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:3621)
==214036== by 0x447D55: XmUGridUnitTests::testGetCellPlanViewPolygonMultiSideFace() (XmUGrid.cpp:5468)
==214036== Block was alloc'd at
==214036== at 0x4845FF5: operator new(unsigned long) (vg_replace_malloc.c:422)
==214036== by 0x46C9C8: std::__new_allocator<xms::Pt3 >::allocate(unsigned long, void const*) (new_allocator.h:137)
==214036== by 0x468CB1: std::allocator_traits<std::allocator<xms::Pt3 > >::allocate(std::allocator<xms::Pt3 >&, unsigned long) (alloc_traits.h:464)
==214036== by 0x463777: std::_Vector_base<xms::Pt3, std::allocator<xms::Pt3 > >::_M_allocate(unsigned long) (stl_vector.h:378)
==214036== by 0x4630DF: void std::vector<xms::Pt3, std::allocator<xms::Pt3 > >::_M_realloc_insert<xms::Pt3 const&>(__gnu_cxx::__normal_iterator<xms::Pt3, std::vector<xms::Pt3, std::allocator<xms::Pt3 > > >, xms::Pt3 const&) (vector.tcc:453)
==214036== by 0x45AE33: std::vector<xms::Pt3, std::allocator<xms::Pt3 > >::push_back(xms::Pt3 const&) (stl_vector.h:1287)
==214036== by 0x4568B5: void xms::(anonymous namespace)::iBuildPolygon<xms::Pt3 >(std::vector<std::pair<xms::Pt3, xms::Pt3 >, std::allocator<std::pair<xms::Pt3, xms::Pt3 > > >&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:496)
==214036== by 0x4283EE: xms::(anonymous namespace)::iMergeSegmentsToPoly(std::vector<xms::Pt3, std::allocator<xms::Pt3 > > const&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:582)
==214036== by 0x42D44A: xms::XmUGrid::Impl::GetPlanViewPolygon3d(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:2561)
==214036== by 0x42A0C4: xms::XmUGrid::Impl::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:1335)
==214036== by 0x42F43C: xms::XmUGrid::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:3621)
==214036== by 0x447D55: XmUGridUnitTests::testGetCellPlanViewPolygonMultiSideFace() (XmUGrid.cpp:5468)
==214036==
==214036== Invalid read of size 8
==214036== at 0x458EC9: bool xms::Pt3::operator==(xms::Pt3 const&) const (pt.h:946)
==214036== by 0x45693B: void xms::(anonymous namespace)::iBuildPolygon<xms::Pt3 >(std::vector<std::pair<xms::Pt3, xms::Pt3 >, std::allocator<std::pair<xms::Pt3, xms::Pt3 > > >&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:505)
==214036== by 0x4283EE: xms::(anonymous namespace)::iMergeSegmentsToPoly(std::vector<xms::Pt3, std::allocator<xms::Pt3 > > const&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:582)
==214036== by 0x42D44A: xms::XmUGrid::Impl::GetPlanViewPolygon3d(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:2561)
==214036== by 0x42A0C4: xms::XmUGrid::Impl::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:1335)
==214036== by 0x42F43C: xms::XmUGrid::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:3621)
==214036== by 0x447D55: XmUGridUnitTests::testGetCellPlanViewPolygonMultiSideFace() (XmUGrid.cpp:5468)
==214036== by 0x41E0F7: TestDescription_suite_XmUGridUnitTests_testGetCellPlanViewPolygonMultiSideFace::runTest() (runXmUGrid.t.cpp:165)
==214036== by 0x417D2E: CxxTest::RealTestDescription::run() (RealDescriptions.cpp:121)
==214036== by 0x41BB69: CxxTest::TestRunner::runTest(CxxTest::TestDescription&) (TestRunner.h:103)
==214036== by 0x41BA7A: CxxTest::TestRunner::runSuite(CxxTest::SuiteDescription&) (TestRunner.h:87)
==214036== by 0x41B950: CxxTest::TestRunner::runWorld() (TestRunner.h:67)
==214036== Address 0x556f4b0 is 32 bytes inside a block of size 48 free'd
==214036== at 0x48488DD: operator delete(void, unsigned long) (vg_replace_malloc.c:935)
==214036== by 0x46AAC0: std::__new_allocator<xms::Pt3 >::deallocate(xms::Pt3, unsigned long) (new_allocator.h:158)
==214036== by 0x465EA5: std::allocator_traits<std::allocator<xms::Pt3 > >::deallocate(std::allocator<xms::Pt3 >&, xms::Pt3, unsigned long) (alloc_traits.h:496)
==214036== by 0x45DC71: std::_Vector_base<xms::Pt3, std::allocator<xms::Pt3 > >::_M_deallocate(xms::Pt3, unsigned long) (stl_vector.h:387)
==214036== by 0x46327B: void std::vector<xms::Pt3, std::allocator<xms::Pt3 > >::_M_realloc_insert<xms::Pt3 const&>(__gnu_cxx::__normal_iterator<xms::Pt3, std::vector<xms::Pt3, std::allocator<xms::Pt3 > > >, xms::Pt3 const&) (vector.tcc:513)
==214036== by 0x45AE33: std::vector<xms::Pt3, std::allocator<xms::Pt3 > >::push_back(xms::Pt3 const&) (stl_vector.h:1287)
==214036== by 0x456965: void xms::(anonymous namespace)::iBuildPolygon<xms::Pt3 >(std::vector<std::pair<xms::Pt3, xms::Pt3 >, std::allocator<std::pair<xms::Pt3, xms::Pt3 > > >&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:507)
==214036== by 0x4283EE: xms::(anonymous namespace)::iMergeSegmentsToPoly(std::vector<xms::Pt3, std::allocator<xms::Pt3 > > const&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:582)
==214036== by 0x42D44A: xms::XmUGrid::Impl::GetPlanViewPolygon3d(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:2561)
==214036== by 0x42A0C4: xms::XmUGrid::Impl::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:1335)
==214036== by 0x42F43C: xms::XmUGrid::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:3621)
==214036== by 0x447D55: XmUGridUnitTests::testGetCellPlanViewPolygonMultiSideFace() (XmUGrid.cpp:5468)
==214036== Block was alloc'd at
==214036== at 0x4845FF5: operator new(unsigned long) (vg_replace_malloc.c:422)
==214036== by 0x46C9C8: std::__new_allocator<xms::Pt3 >::allocate(unsigned long, void const*) (new_allocator.h:137)
==214036== by 0x468CB1: std::allocator_traits<std::allocator<xms::Pt3 > >::allocate(std::allocator<xms::Pt3 >&, unsigned long) (alloc_traits.h:464)
==214036== by 0x463777: std::_Vector_base<xms::Pt3, std::allocator<xms::Pt3 > >::_M_allocate(unsigned long) (stl_vector.h:378)
==214036== by 0x4630DF: void std::vector<xms::Pt3, std::allocator<xms::Pt3 > >::_M_realloc_insert<xms::Pt3 const&>(__gnu_cxx::__normal_iterator<xms::Pt3, std::vector<xms::Pt3, std::allocator<xms::Pt3 > > >, xms::Pt3 const&) (vector.tcc:453)
==214036== by 0x45AE33: std::vector<xms::Pt3, std::allocator<xms::Pt3 > >::push_back(xms::Pt3 const&) (stl_vector.h:1287)
==214036== by 0x4568B5: void xms::(anonymous namespace)::iBuildPolygon<xms::Pt3 >(std::vector<std::pair<xms::Pt3, xms::Pt3 >, std::allocator<std::pair<xms::Pt3, xms::Pt3 > > >&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:496)
==214036== by 0x4283EE: xms::(anonymous namespace)::iMergeSegmentsToPoly(std::vector<xms::Pt3, std::allocator<xms::Pt3 > > const&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:582)
==214036== by 0x42D44A: xms::XmUGrid::Impl::GetPlanViewPolygon3d(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:2561)
==214036== by 0x42A0C4: xms::XmUGrid::Impl::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:1335)
==214036== by 0x42F43C: xms::XmUGrid::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:3621)
==214036== by 0x447D55: XmUGridUnitTests::testGetCellPlanViewPolygonMultiSideFace() (XmUGrid.cpp:5468)
==214036==
==214036== Invalid read of size 8
==214036== at 0x458EAC: bool xms::Pt3::operator==(xms::Pt3 const&) const (pt.h:946)
==214036== by 0x4569A3: void xms::(anonymous namespace)::iBuildPolygon<xms::Pt3 >(std::vector<std::pair<xms::Pt3, xms::Pt3 >, std::allocator<std::pair<xms::Pt3, xms::Pt3 > > >&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:510)
==214036== by 0x4283EE: xms::(anonymous namespace)::iMergeSegmentsToPoly(std::vector<xms::Pt3, std::allocator<xms::Pt3 > > const&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:582)
==214036== by 0x42D44A: xms::XmUGrid::Impl::GetPlanViewPolygon3d(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:2561)
==214036== by 0x42A0C4: xms::XmUGrid::Impl::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:1335)
==214036== by 0x42F43C: xms::XmUGrid::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:3621)
==214036== by 0x447D55: XmUGridUnitTests::testGetCellPlanViewPolygonMultiSideFace() (XmUGrid.cpp:5468)
==214036== by 0x41E0F7: TestDescription_suite_XmUGridUnitTests_testGetCellPlanViewPolygonMultiSideFace::runTest() (runXmUGrid.t.cpp:165)
==214036== by 0x417D2E: CxxTest::RealTestDescription::run() (RealDescriptions.cpp:121)
==214036== by 0x41BB69: CxxTest::TestRunner::runTest(CxxTest::TestDescription&) (TestRunner.h:103)
==214036== by 0x41BA7A: CxxTest::TestRunner::runSuite(CxxTest::SuiteDescription&) (TestRunner.h:87)
==214036== by 0x41B950: CxxTest::TestRunner::runWorld() (TestRunner.h:67)
==214036== Address 0x556f4a8 is 24 bytes inside a block of size 48 free'd
==214036== at 0x48488DD: operator delete(void, unsigned long) (vg_replace_malloc.c:935)
==214036== by 0x46AAC0: std::__new_allocator<xms::Pt3 >::deallocate(xms::Pt3, unsigned long) (new_allocator.h:158)
==214036== by 0x465EA5: std::allocator_traits<std::allocator<xms::Pt3 > >::deallocate(std::allocator<xms::Pt3 >&, xms::Pt3, unsigned long) (alloc_traits.h:496)
==214036== by 0x45DC71: std::_Vector_base<xms::Pt3, std::allocator<xms::Pt3 > >::_M_deallocate(xms::Pt3, unsigned long) (stl_vector.h:387)
==214036== by 0x46327B: void std::vector<xms::Pt3, std::allocator<xms::Pt3 > >::_M_realloc_insert<xms::Pt3 const&>(__gnu_cxx::__normal_iterator<xms::Pt3, std::vector<xms::Pt3, std::allocator<xms::Pt3 > > >, xms::Pt3 const&) (vector.tcc:513)
==214036== by 0x45AE33: std::vector<xms::Pt3, std::allocator<xms::Pt3 > >::push_back(xms::Pt3 const&) (stl_vector.h:1287)
==214036== by 0x456965: void xms::(anonymous namespace)::iBuildPolygon<xms::Pt3 >(std::vector<std::pair<xms::Pt3, xms::Pt3 >, std::allocator<std::pair<xms::Pt3, xms::Pt3 > > >&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:507)
==214036== by 0x4283EE: xms::(anonymous namespace)::iMergeSegmentsToPoly(std::vector<xms::Pt3, std::allocator<xms::Pt3 > > const&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:582)
==214036== by 0x42D44A: xms::XmUGrid::Impl::GetPlanViewPolygon3d(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:2561)
==214036== by 0x42A0C4: xms::XmUGrid::Impl::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:1335)
==214036== by 0x42F43C: xms::XmUGrid::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:3621)
==214036== by 0x447D55: XmUGridUnitTests::testGetCellPlanViewPolygonMultiSideFace() (XmUGrid.cpp:5468)
==214036== Block was alloc'd at
==214036== at 0x4845FF5: operator new(unsigned long) (vg_replace_malloc.c:422)
==214036== by 0x46C9C8: std::__new_allocator<xms::Pt3 >::allocate(unsigned long, void const*) (new_allocator.h:137)
==214036== by 0x468CB1: std::allocator_traits<std::allocator<xms::Pt3 > >::allocate(std::allocator<xms::Pt3 >&, unsigned long) (alloc_traits.h:464)
==214036== by 0x463777: std::_Vector_base<xms::Pt3, std::allocator<xms::Pt3 > >::_M_allocate(unsigned long) (stl_vector.h:378)
==214036== by 0x4630DF: void std::vector<xms::Pt3, std::allocator<xms::Pt3 > >::_M_realloc_insert<xms::Pt3 const&>(__gnu_cxx::__normal_iterator<xms::Pt3*, std::vector<xms::Pt3, std::allocator<xms::Pt3 > > >, xms::Pt3 const&) (vector.tcc:453)
==214036== by 0x45AE33: std::vector<xms::Pt3, std::allocator<xms::Pt3 > >::push_back(xms::Pt3 const&) (stl_vector.h:1287)
==214036== by 0x4568B5: void xms::(anonymous namespace)::iBuildPolygon<xms::Pt3 >(std::vector<std::pair<xms::Pt3, xms::Pt3 >, std::allocator<std::pair<xms::Pt3, xms::Pt3 > > >&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:496)
==214036== by 0x4283EE: xms::(anonymous namespace)::iMergeSegmentsToPoly(std::vector<xms::Pt3, std::allocator<xms::Pt3 > > const&, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) (XmUGrid.cpp:582)
==214036== by 0x42D44A: xms::XmUGrid::Impl::GetPlanViewPolygon3d(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:2561)
==214036== by 0x42A0C4: xms::XmUGrid::Impl::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:1335)
==214036== by 0x42F43C: xms::XmUGrid::GetCellPlanViewPolygon(int, std::vector<xms::Pt3, std::allocator<xms::Pt3 > >&) const (XmUGrid.cpp:3621)
==214036== by 0x447D55: XmUGridUnitTests::testGetCellPlanViewPolygonMultiSideFace() (XmUGrid.cpp:5468)
==214036==
....................................................................................................................OK!
==214036==
==214036== HEAP SUMMARY:
==214036== in use at exit: 392 bytes in 6 blocks
==214036== total heap usage: 13,953 allocs, 13,947 frees, 17,438,711 bytes allocated
==214036==
==214036== LEAK SUMMARY:
==214036== definitely lost: 0 bytes in 0 blocks
==214036== indirectly lost: 0 bytes in 0 blocks
==214036== possibly lost: 0 bytes in 0 blocks
==214036== still reachable: 392 bytes in 6 blocks
==214036== suppressed: 0 bytes in 0 blocks
==214036== Rerun with --leak-check=full to see details of leaked memory
==214036==
==214036== For lists of detected and suppressed errors, rerun with: -s
==214036== ERROR SUMMARY: 15 errors from 3 contexts (suppressed: 0 from 0)
Thought that I would point it out to someone who was more knowledgeable about the code than I am and who might be able to quickly determine its severity.
Cheers,
Sean Boerner
Some of XmUGrid method's python bindings are untested. One example is GetCellPlanViewPolygon there may be others.
The python interface doesn't include XmEdge and uses a 2-tuple of integers instead which is fine. It should include a function to check if two 2-tuple edges are equivalent.
XmUGrid::PointCount doesn't follow naming convention and should be named GetPointCount. The python naming is correct (get_point_count).
This has been fixed in brew but not released yet. We need to un comment the line in install.sh for travis
Here is the issue on brew
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.