Bug#1028886: pyemd: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.10 3.11" returned exit code 13
Lucas Nussbaum
lucas at debian.org
Sat Jan 14 13:01:29 GMT 2023
Source: pyemd
Version: 0.5.1-2
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-20230113 ftbfs-bookworm
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> for python in $(py3versions --supported) ; do \
> "$python" setup.py test ; \
> done
> running test
> WARNING: Testing via this command is deprecated and will be removed in a future version. Users looking for a generic test entry point independent of test runner are encouraged to use tox.
> running egg_info
> creating pyemd.egg-info
> writing pyemd.egg-info/PKG-INFO
> writing dependency_links to pyemd.egg-info/dependency_links.txt
> writing requirements to pyemd.egg-info/requires.txt
> writing top-level names to pyemd.egg-info/top_level.txt
> writing manifest file 'pyemd.egg-info/SOURCES.txt'
> reading manifest file 'pyemd.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> warning: no previously-included files matching '__pycache__' found anywhere in distribution
> warning: no previously-included files matching '*.py[cod]' found anywhere in distribution
> warning: no previously-included files matching '*.so' found anywhere in distribution
> warning: no previously-included files matching '*.dylib' found anywhere in distribution
> adding license file 'LICENSE'
> writing manifest file 'pyemd.egg-info/SOURCES.txt'
> running build_ext
> building 'pyemd.emd' extension
> x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Ipyemd -I/usr/include/python3.10 -I/usr/lib/python3/dist-packages/numpy/core/include -c pyemd/emd.cpp -o build/temp.linux-x86_64-cpython-310/pyemd/emd.o
> In file included from /usr/include/python3.10/numpy/ndarraytypes.h:1940,
> from /usr/include/python3.10/numpy/ndarrayobject.h:12,
> from /usr/include/python3.10/numpy/arrayobject.h:5,
> from pyemd/emd.cpp:797:
> /usr/include/python3.10/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
> 17 | #warning "Using deprecated NumPy API, disable it with " \
> | ^~~~~~~
> In file included from pyemd/lib/emd_hat.hpp:95,
> from pyemd/emd.cpp:805:
> pyemd/lib/emd_hat_impl.hpp: In instantiation of ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’:
> pyemd/lib/emd_hat.hpp:87:52: required from here
> pyemd/lib/emd_hat_impl.hpp:41:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<double, std::allocator<double> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 41 | {for (NODE_T i=0; i<P.size(); ++i) {
> | ~^~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp: In instantiation of ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = NO_FLOW]’:
> pyemd/emd.cpp:2651:42: required from here
> pyemd/lib/emd_hat_impl.hpp:41:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<double, std::allocator<double> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> pyemd/lib/emd_hat_impl.hpp: In instantiation of ‘void fillFWithZeros(std::vector<std::vector<NUM_T> >&) [with NUM_T = double]’:
> pyemd/lib/emd_hat_impl.hpp:33:43: required from ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat.hpp:87:52: required from here
> pyemd/lib/emd_hat_impl.hpp:17:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 17 | for (NODE_T i= 0; i<F.size(); ++i) {
> | ~^~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp:18:28: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<double, std::allocator<double> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 18 | for (NODE_T j= 0; j<F[i].size(); ++j) {
> | ~^~~~~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp: In instantiation of ‘NUM_T emd_hat_impl_integral_types<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = long long int; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’:
> pyemd/lib/emd_hat_impl.hpp:385:62: required from ‘emd_hat_impl<long long int, FLOW_TYPE>::NUM_T emd_hat_impl<long long int, FLOW_TYPE>::operator()(const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<std::vector<long long int> >&, NUM_T, std::vector<std::vector<long long int> >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:456:56: required from ‘emd_hat_impl<double, FLOW_TYPE>::NUM_T emd_hat_impl<double, FLOW_TYPE>::operator()(const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, NUM_T, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = double]’
> pyemd/lib/emd_hat_impl.hpp:57:43: required from ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat.hpp:87:52: required from here
> pyemd/lib/emd_hat_impl.hpp:255:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 255 | {for (NODE_T i=0; i<b.size(); ++i) {
> | ~^~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp:263:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<std::__cxx11::list<edge<long long int>, std::allocator<edge<long long int> > >, std::allocator<std::__cxx11::list<edge<long long int>, std::allocator<edge<long long int> > > > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 263 | {for (NODE_T i=0; i<c.size(); ++i) {
> | ~^~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp:296:51: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<std::__cxx11::list<edge0<long long int>, std::allocator<edge0<long long int> > >, std::allocator<std::__cxx11::list<edge0<long long int>, std::allocator<edge0<long long int> > > > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 296 | for (NODE_T new_name_from=0; new_name_from<flows.size(); ++new_name_from) {
> | ~~~~~~~~~~~~~^~~~~~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp: In instantiation of ‘NUM_T emd_hat_impl_integral_types<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = long long int; FLOW_TYPE_T FLOW_TYPE = NO_FLOW]’:
> pyemd/lib/emd_hat_impl.hpp:385:62: required from ‘emd_hat_impl<long long int, FLOW_TYPE>::NUM_T emd_hat_impl<long long int, FLOW_TYPE>::operator()(const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<std::vector<long long int> >&, NUM_T, std::vector<std::vector<long long int> >*) [with FLOW_TYPE_T FLOW_TYPE = NO_FLOW; NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:456:56: required from ‘emd_hat_impl<double, FLOW_TYPE>::NUM_T emd_hat_impl<double, FLOW_TYPE>::operator()(const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, NUM_T, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >*) [with FLOW_TYPE_T FLOW_TYPE = NO_FLOW; NUM_T = double]’
> pyemd/lib/emd_hat_impl.hpp:57:43: required from ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = NO_FLOW]’
> pyemd/emd.cpp:2651:42: required from here
> pyemd/lib/emd_hat_impl.hpp:255:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 255 | {for (NODE_T i=0; i<b.size(); ++i) {
> | ~^~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp:263:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<std::__cxx11::list<edge<long long int>, std::allocator<edge<long long int> > >, std::allocator<std::__cxx11::list<edge<long long int>, std::allocator<edge<long long int> > > > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 263 | {for (NODE_T i=0; i<c.size(); ++i) {
> | ~^~~~~~~~~
> In file included from pyemd/lib/emd_hat_impl.hpp:8:
> pyemd/lib/min_cost_flow.hpp: In instantiation of ‘void min_cost_flow<NUM_T>::compute_shortest_path(std::vector<NUM_T>&, std::vector<int>&, NODE_T, std::vector<std::__cxx11::list<edge1<NUM_T> > >&, std::vector<std::__cxx11::list<edge2<NUM_T> > >&, const std::vector<NUM_T>&, NODE_T&) [with NUM_T = long long int; NODE_T = int]’:
> pyemd/lib/min_cost_flow.hpp:155:17: required from ‘NUM_T min_cost_flow<NUM_T>::operator()(std::vector<NUM_T>&, const std::vector<std::__cxx11::list<edge<NUM_T> > >&, std::vector<std::__cxx11::list<edge0<NUM_T> > >&) [with NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:291:24: required from ‘NUM_T emd_hat_impl_integral_types<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = long long int; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat_impl.hpp:385:62: required from ‘emd_hat_impl<long long int, FLOW_TYPE>::NUM_T emd_hat_impl<long long int, FLOW_TYPE>::operator()(const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<std::vector<long long int> >&, NUM_T, std::vector<std::vector<long long int> >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:456:56: required from ‘emd_hat_impl<double, FLOW_TYPE>::NUM_T emd_hat_impl<double, FLOW_TYPE>::operator()(const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, NUM_T, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = double]’
> pyemd/lib/emd_hat_impl.hpp:57:43: required from ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat.hpp:87:52: required from here
> pyemd/lib/min_cost_flow.hpp:321:37: warning: comparison of integer expressions of different signedness: ‘__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type’ {aka ‘int’} and ‘std::vector<edge3<long long int>, std::allocator<edge3<long long int> > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 321 | if ( (_nodes_to_Q[v]<Q.size()) && (alt<Q[_nodes_to_Q[v]]._dist) ) {
> | ~~~~~~~~~~~~~~~^~~~~~~~~~
> pyemd/lib/min_cost_flow.hpp:332:41: warning: comparison of integer expressions of different signedness: ‘__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type’ {aka ‘int’} and ‘std::vector<edge3<long long int>, std::allocator<edge3<long long int> > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 332 | if ( (_nodes_to_Q[v]<Q.size()) && (alt<Q[_nodes_to_Q[v]]._dist) ) {
> | ~~~~~~~~~~~~~~~^~~~~~~~~~
> In file included from pyemd/lib/emd_hat.hpp:7:
> pyemd/lib/flow_utils.hpp: In instantiation of ‘void return_flow_from_to_transhipment_vertex(const std::vector<std::vector<NUM_T> >&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, std::vector<NUM_T>&, std::vector<NUM_T>&) [with NUM_T = long long int]’:
> pyemd/lib/flow_utils.hpp:46:44: required from ‘void transform_flow_to_regular(std::vector<std::vector<NUM_T> >&, const std::vector<NUM_T>&, const std::vector<NUM_T>&) [with NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:322:70: required from ‘NUM_T emd_hat_impl_integral_types<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = long long int; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat_impl.hpp:385:62: required from ‘emd_hat_impl<long long int, FLOW_TYPE>::NUM_T emd_hat_impl<long long int, FLOW_TYPE>::operator()(const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<std::vector<long long int> >&, NUM_T, std::vector<std::vector<long long int> >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:456:56: required from ‘emd_hat_impl<double, FLOW_TYPE>::NUM_T emd_hat_impl<double, FLOW_TYPE>::operator()(const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, NUM_T, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = double]’
> pyemd/lib/emd_hat_impl.hpp:57:43: required from ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat.hpp:87:52: required from here
> pyemd/lib/flow_utils.hpp:25:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 25 | for (NODE_T i= 0; i<P.size(); ++i) {
> | ~^~~~~~~~~
> pyemd/lib/flow_utils.hpp:26:28: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 26 | for (NODE_T j= 0; j<P.size(); ++j) {
> | ~^~~~~~~~~
> pyemd/lib/min_cost_flow.hpp: In instantiation of ‘void min_cost_flow<NUM_T>::heapify(std::vector<edge3<NUM_T> >&, std::vector<int>&, NODE_T) [with NUM_T = long long int; NODE_T = int]’:
> pyemd/lib/min_cost_flow.hpp:392:9: required from ‘void min_cost_flow<NUM_T>::heap_remove_first(std::vector<edge3<NUM_T> >&, std::vector<int>&) [with NUM_T = long long int]’
> pyemd/lib/min_cost_flow.hpp:313:13: required from ‘void min_cost_flow<NUM_T>::compute_shortest_path(std::vector<NUM_T>&, std::vector<int>&, NODE_T, std::vector<std::__cxx11::list<edge1<NUM_T> > >&, std::vector<std::__cxx11::list<edge2<NUM_T> > >&, const std::vector<NUM_T>&, NODE_T&) [with NUM_T = long long int; NODE_T = int]’
> pyemd/lib/min_cost_flow.hpp:155:17: required from ‘NUM_T min_cost_flow<NUM_T>::operator()(std::vector<NUM_T>&, const std::vector<std::__cxx11::list<edge<NUM_T> > >&, std::vector<std::__cxx11::list<edge0<NUM_T> > >&) [with NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:291:24: required from ‘NUM_T emd_hat_impl_integral_types<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = long long int; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat_impl.hpp:385:62: required from ‘emd_hat_impl<long long int, FLOW_TYPE>::NUM_T emd_hat_impl<long long int, FLOW_TYPE>::operator()(const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<std::vector<long long int> >&, NUM_T, std::vector<std::vector<long long int> >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:456:56: required from ‘emd_hat_impl<double, FLOW_TYPE>::NUM_T emd_hat_impl<double, FLOW_TYPE>::operator()(const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, NUM_T, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = double]’
> pyemd/lib/emd_hat_impl.hpp:57:43: required from ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat.hpp:87:52: required from here
> pyemd/lib/min_cost_flow.hpp:405:20: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<edge3<long long int>, std::allocator<edge3<long long int> > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 405 | if ( (l<Q.size()) && (Q[l]._dist<Q[i]._dist) ) {
> | ~~^~~~~~~~~~
> pyemd/lib/min_cost_flow.hpp:410:20: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<edge3<long long int>, std::allocator<edge3<long long int> > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 410 | if ( (r<Q.size())&& (Q[r]._dist<Q[smallest]._dist) ) {
> | ~~^~~~~~~~~~
> creating build/lib.linux-x86_64-cpython-310
> creating build/lib.linux-x86_64-cpython-310/pyemd
> x86_64-linux-gnu-g++ -shared -Wl,-O1 -Wl,-Bsymbolic-functions -g -fwrapv -O2 -Wl,-z,relro -Wl,-z,now -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-cpython-310/pyemd/emd.o -L/usr/lib/x86_64-linux-gnu -o build/lib.linux-x86_64-cpython-310/pyemd/emd.cpython-310-x86_64-linux-gnu.so
> copying build/lib.linux-x86_64-cpython-310/pyemd/emd.cpython-310-x86_64-linux-gnu.so -> pyemd
>
> ----------------------------------------------------------------------
> Ran 0 tests in 0.000s
>
> OK
> running test
> WARNING: Testing via this command is deprecated and will be removed in a future version. Users looking for a generic test entry point independent of test runner are encouraged to use tox.
> running egg_info
> writing pyemd.egg-info/PKG-INFO
> writing dependency_links to pyemd.egg-info/dependency_links.txt
> writing requirements to pyemd.egg-info/requires.txt
> writing top-level names to pyemd.egg-info/top_level.txt
> reading manifest file 'pyemd.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> warning: no previously-included files matching '__pycache__' found anywhere in distribution
> warning: no previously-included files matching '*.dylib' found anywhere in distribution
> adding license file 'LICENSE'
> writing manifest file 'pyemd.egg-info/SOURCES.txt'
> running build_ext
> building 'pyemd.emd' extension
> x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Ipyemd -I/usr/include/python3.11 -I/usr/lib/python3/dist-packages/numpy/core/include -c pyemd/emd.cpp -o build/temp.linux-x86_64-cpython-311/pyemd/emd.o
> In file included from /usr/include/python3.11/numpy/ndarraytypes.h:1940,
> from /usr/include/python3.11/numpy/ndarrayobject.h:12,
> from /usr/include/python3.11/numpy/arrayobject.h:5,
> from pyemd/emd.cpp:797:
> /usr/include/python3.11/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
> 17 | #warning "Using deprecated NumPy API, disable it with " \
> | ^~~~~~~
> In file included from pyemd/lib/emd_hat.hpp:95,
> from pyemd/emd.cpp:805:
> pyemd/lib/emd_hat_impl.hpp: In instantiation of ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’:
> pyemd/lib/emd_hat.hpp:87:52: required from here
> pyemd/lib/emd_hat_impl.hpp:41:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<double, std::allocator<double> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 41 | {for (NODE_T i=0; i<P.size(); ++i) {
> | ~^~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp: In instantiation of ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = NO_FLOW]’:
> pyemd/emd.cpp:2651:42: required from here
> pyemd/lib/emd_hat_impl.hpp:41:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<double, std::allocator<double> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> pyemd/lib/emd_hat_impl.hpp: In instantiation of ‘void fillFWithZeros(std::vector<std::vector<NUM_T> >&) [with NUM_T = double]’:
> pyemd/lib/emd_hat_impl.hpp:33:43: required from ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat.hpp:87:52: required from here
> pyemd/lib/emd_hat_impl.hpp:17:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 17 | for (NODE_T i= 0; i<F.size(); ++i) {
> | ~^~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp:18:28: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<double, std::allocator<double> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 18 | for (NODE_T j= 0; j<F[i].size(); ++j) {
> | ~^~~~~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp: In instantiation of ‘NUM_T emd_hat_impl_integral_types<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = long long int; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’:
> pyemd/lib/emd_hat_impl.hpp:385:62: required from ‘emd_hat_impl<long long int, FLOW_TYPE>::NUM_T emd_hat_impl<long long int, FLOW_TYPE>::operator()(const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<std::vector<long long int> >&, NUM_T, std::vector<std::vector<long long int> >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:456:56: required from ‘emd_hat_impl<double, FLOW_TYPE>::NUM_T emd_hat_impl<double, FLOW_TYPE>::operator()(const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, NUM_T, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = double]’
> pyemd/lib/emd_hat_impl.hpp:57:43: required from ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat.hpp:87:52: required from here
> pyemd/lib/emd_hat_impl.hpp:255:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 255 | {for (NODE_T i=0; i<b.size(); ++i) {
> | ~^~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp:263:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<std::__cxx11::list<edge<long long int>, std::allocator<edge<long long int> > >, std::allocator<std::__cxx11::list<edge<long long int>, std::allocator<edge<long long int> > > > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 263 | {for (NODE_T i=0; i<c.size(); ++i) {
> | ~^~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp:296:51: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<std::__cxx11::list<edge0<long long int>, std::allocator<edge0<long long int> > >, std::allocator<std::__cxx11::list<edge0<long long int>, std::allocator<edge0<long long int> > > > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 296 | for (NODE_T new_name_from=0; new_name_from<flows.size(); ++new_name_from) {
> | ~~~~~~~~~~~~~^~~~~~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp: In instantiation of ‘NUM_T emd_hat_impl_integral_types<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = long long int; FLOW_TYPE_T FLOW_TYPE = NO_FLOW]’:
> pyemd/lib/emd_hat_impl.hpp:385:62: required from ‘emd_hat_impl<long long int, FLOW_TYPE>::NUM_T emd_hat_impl<long long int, FLOW_TYPE>::operator()(const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<std::vector<long long int> >&, NUM_T, std::vector<std::vector<long long int> >*) [with FLOW_TYPE_T FLOW_TYPE = NO_FLOW; NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:456:56: required from ‘emd_hat_impl<double, FLOW_TYPE>::NUM_T emd_hat_impl<double, FLOW_TYPE>::operator()(const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, NUM_T, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >*) [with FLOW_TYPE_T FLOW_TYPE = NO_FLOW; NUM_T = double]’
> pyemd/lib/emd_hat_impl.hpp:57:43: required from ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = NO_FLOW]’
> pyemd/emd.cpp:2651:42: required from here
> pyemd/lib/emd_hat_impl.hpp:255:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 255 | {for (NODE_T i=0; i<b.size(); ++i) {
> | ~^~~~~~~~~
> pyemd/lib/emd_hat_impl.hpp:263:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<std::__cxx11::list<edge<long long int>, std::allocator<edge<long long int> > >, std::allocator<std::__cxx11::list<edge<long long int>, std::allocator<edge<long long int> > > > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 263 | {for (NODE_T i=0; i<c.size(); ++i) {
> | ~^~~~~~~~~
> In file included from pyemd/lib/emd_hat_impl.hpp:8:
> pyemd/lib/min_cost_flow.hpp: In instantiation of ‘void min_cost_flow<NUM_T>::compute_shortest_path(std::vector<NUM_T>&, std::vector<int>&, NODE_T, std::vector<std::__cxx11::list<edge1<NUM_T> > >&, std::vector<std::__cxx11::list<edge2<NUM_T> > >&, const std::vector<NUM_T>&, NODE_T&) [with NUM_T = long long int; NODE_T = int]’:
> pyemd/lib/min_cost_flow.hpp:155:17: required from ‘NUM_T min_cost_flow<NUM_T>::operator()(std::vector<NUM_T>&, const std::vector<std::__cxx11::list<edge<NUM_T> > >&, std::vector<std::__cxx11::list<edge0<NUM_T> > >&) [with NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:291:24: required from ‘NUM_T emd_hat_impl_integral_types<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = long long int; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat_impl.hpp:385:62: required from ‘emd_hat_impl<long long int, FLOW_TYPE>::NUM_T emd_hat_impl<long long int, FLOW_TYPE>::operator()(const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<std::vector<long long int> >&, NUM_T, std::vector<std::vector<long long int> >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:456:56: required from ‘emd_hat_impl<double, FLOW_TYPE>::NUM_T emd_hat_impl<double, FLOW_TYPE>::operator()(const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, NUM_T, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = double]’
> pyemd/lib/emd_hat_impl.hpp:57:43: required from ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat.hpp:87:52: required from here
> pyemd/lib/min_cost_flow.hpp:321:37: warning: comparison of integer expressions of different signedness: ‘__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type’ {aka ‘int’} and ‘std::vector<edge3<long long int>, std::allocator<edge3<long long int> > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 321 | if ( (_nodes_to_Q[v]<Q.size()) && (alt<Q[_nodes_to_Q[v]]._dist) ) {
> | ~~~~~~~~~~~~~~~^~~~~~~~~~
> pyemd/lib/min_cost_flow.hpp:332:41: warning: comparison of integer expressions of different signedness: ‘__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type’ {aka ‘int’} and ‘std::vector<edge3<long long int>, std::allocator<edge3<long long int> > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 332 | if ( (_nodes_to_Q[v]<Q.size()) && (alt<Q[_nodes_to_Q[v]]._dist) ) {
> | ~~~~~~~~~~~~~~~^~~~~~~~~~
> In file included from pyemd/lib/emd_hat.hpp:7:
> pyemd/lib/flow_utils.hpp: In instantiation of ‘void return_flow_from_to_transhipment_vertex(const std::vector<std::vector<NUM_T> >&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, std::vector<NUM_T>&, std::vector<NUM_T>&) [with NUM_T = long long int]’:
> pyemd/lib/flow_utils.hpp:46:44: required from ‘void transform_flow_to_regular(std::vector<std::vector<NUM_T> >&, const std::vector<NUM_T>&, const std::vector<NUM_T>&) [with NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:322:70: required from ‘NUM_T emd_hat_impl_integral_types<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = long long int; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat_impl.hpp:385:62: required from ‘emd_hat_impl<long long int, FLOW_TYPE>::NUM_T emd_hat_impl<long long int, FLOW_TYPE>::operator()(const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<std::vector<long long int> >&, NUM_T, std::vector<std::vector<long long int> >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:456:56: required from ‘emd_hat_impl<double, FLOW_TYPE>::NUM_T emd_hat_impl<double, FLOW_TYPE>::operator()(const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, NUM_T, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = double]’
> pyemd/lib/emd_hat_impl.hpp:57:43: required from ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat.hpp:87:52: required from here
> pyemd/lib/flow_utils.hpp:25:24: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 25 | for (NODE_T i= 0; i<P.size(); ++i) {
> | ~^~~~~~~~~
> pyemd/lib/flow_utils.hpp:26:28: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 26 | for (NODE_T j= 0; j<P.size(); ++j) {
> | ~^~~~~~~~~
> pyemd/lib/min_cost_flow.hpp: In instantiation of ‘void min_cost_flow<NUM_T>::heapify(std::vector<edge3<NUM_T> >&, std::vector<int>&, NODE_T) [with NUM_T = long long int; NODE_T = int]’:
> pyemd/lib/min_cost_flow.hpp:392:9: required from ‘void min_cost_flow<NUM_T>::heap_remove_first(std::vector<edge3<NUM_T> >&, std::vector<int>&) [with NUM_T = long long int]’
> pyemd/lib/min_cost_flow.hpp:313:13: required from ‘void min_cost_flow<NUM_T>::compute_shortest_path(std::vector<NUM_T>&, std::vector<int>&, NODE_T, std::vector<std::__cxx11::list<edge1<NUM_T> > >&, std::vector<std::__cxx11::list<edge2<NUM_T> > >&, const std::vector<NUM_T>&, NODE_T&) [with NUM_T = long long int; NODE_T = int]’
> pyemd/lib/min_cost_flow.hpp:155:17: required from ‘NUM_T min_cost_flow<NUM_T>::operator()(std::vector<NUM_T>&, const std::vector<std::__cxx11::list<edge<NUM_T> > >&, std::vector<std::__cxx11::list<edge0<NUM_T> > >&) [with NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:291:24: required from ‘NUM_T emd_hat_impl_integral_types<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = long long int; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat_impl.hpp:385:62: required from ‘emd_hat_impl<long long int, FLOW_TYPE>::NUM_T emd_hat_impl<long long int, FLOW_TYPE>::operator()(const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<long long int>&, const std::vector<std::vector<long long int> >&, NUM_T, std::vector<std::vector<long long int> >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = long long int]’
> pyemd/lib/emd_hat_impl.hpp:456:56: required from ‘emd_hat_impl<double, FLOW_TYPE>::NUM_T emd_hat_impl<double, FLOW_TYPE>::operator()(const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<double, std::allocator<double> >&, const std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, NUM_T, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >*) [with FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW; NUM_T = double]’
> pyemd/lib/emd_hat_impl.hpp:57:43: required from ‘NUM_T emd_hat_gd_metric<NUM_T, FLOW_TYPE>::operator()(const std::vector<NUM_T>&, const std::vector<NUM_T>&, const std::vector<std::vector<NUM_T> >&, NUM_T, std::vector<std::vector<NUM_T> >*) [with NUM_T = double; FLOW_TYPE_T FLOW_TYPE = WITHOUT_EXTRA_MASS_FLOW]’
> pyemd/lib/emd_hat.hpp:87:52: required from here
> pyemd/lib/min_cost_flow.hpp:405:20: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<edge3<long long int>, std::allocator<edge3<long long int> > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 405 | if ( (l<Q.size()) && (Q[l]._dist<Q[i]._dist) ) {
> | ~~^~~~~~~~~~
> pyemd/lib/min_cost_flow.hpp:410:20: warning: comparison of integer expressions of different signedness: ‘NODE_T’ {aka ‘int’} and ‘std::vector<edge3<long long int>, std::allocator<edge3<long long int> > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
> 410 | if ( (r<Q.size())&& (Q[r]._dist<Q[smallest]._dist) ) {
> | ~~^~~~~~~~~~
> creating build/lib.linux-x86_64-cpython-311
> creating build/lib.linux-x86_64-cpython-311/pyemd
> x86_64-linux-gnu-g++ -shared -Wl,-O1 -Wl,-Bsymbolic-functions -g -fwrapv -O2 -Wl,-z,relro -Wl,-z,now -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-cpython-311/pyemd/emd.o -L/usr/lib/x86_64-linux-gnu -o build/lib.linux-x86_64-cpython-311/pyemd/emd.cpython-311-x86_64-linux-gnu.so
> copying build/lib.linux-x86_64-cpython-311/pyemd/emd.cpython-311-x86_64-linux-gnu.so -> pyemd
>
> ----------------------------------------------------------------------
> Ran 0 tests in 0.000s
>
> OK
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:240: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pyemd/build; python3.10 -m pytest test
> [1m============================= test session starts ==============================[0m
> platform linux -- Python 3.10.9, pytest-7.2.0, pluggy-1.0.0+repack -- /usr/bin/python3.10
> cachedir: .pytest_cache
> rootdir: /<<PKGBUILDDIR>>, configfile: pytest.ini
> [1mcollecting ... [0mcollected 35 items
>
> test/test_pyemd.py::test_emd_1 [32mPASSED[0m[32m [ 2%][0m
> test/test_pyemd.py::test_emd_2 [32mPASSED[0m[32m [ 5%][0m
> test/test_pyemd.py::test_emd_3 [32mPASSED[0m[32m [ 8%][0m
> test/test_pyemd.py::test_emd_4 [32mPASSED[0m[32m [ 11%][0m
> test/test_pyemd.py::test_emd_extra_mass_penalty [32mPASSED[0m[32m [ 14%][0m
> test/test_pyemd.py::test_emd_validate_larger_signatures_1 [32mPASSED[0m[32m [ 17%][0m
> test/test_pyemd.py::test_emd_validate_larger_signatures_2 [32mPASSED[0m[32m [ 20%][0m
> test/test_pyemd.py::test_emd_validate_larger_signatures_3 [32mPASSED[0m[32m [ 22%][0m
> test/test_pyemd.py::test_emd_validate_different_signature_dims [32mPASSED[0m[32m [ 25%][0m
> test/test_pyemd.py::test_emd_validate_symmetric_distance_matrix [31mFAILED[0m[31m [ 28%][0m
> test/test_pyemd.py::test_emd_with_flow_1 [32mPASSED[0m[31m [ 31%][0m
> test/test_pyemd.py::test_emd_with_flow_2 [32mPASSED[0m[31m [ 34%][0m
> test/test_pyemd.py::test_emd_with_flow_3 [32mPASSED[0m[31m [ 37%][0m
> test/test_pyemd.py::test_emd_with_flow_4 [32mPASSED[0m[31m [ 40%][0m
> test/test_pyemd.py::test_emd_with_flow_5 [32mPASSED[0m[31m [ 42%][0m
> test/test_pyemd.py::test_emd_with_flow_6 [32mPASSED[0m[31m [ 45%][0m
> test/test_pyemd.py::test_emd_with_flow_extra_mass_penalty [32mPASSED[0m[31m [ 48%][0m
> test/test_pyemd.py::test_emd_with_flow_validate_larger_signatures_1 [32mPASSED[0m[31m [ 51%][0m
> test/test_pyemd.py::test_emd_with_flow_validate_larger_signatures_2 [32mPASSED[0m[31m [ 54%][0m
> test/test_pyemd.py::test_emd_with_flow_validate_larger_signatures_3 [32mPASSED[0m[31m [ 57%][0m
> test/test_pyemd.py::test_emd_with_flow_validate_different_signature_dims [32mPASSED[0m[31m [ 60%][0m
> test/test_pyemd.py::test_emd_with_flow_validate_square_distance_matrix [31mFAILED[0m[31m [ 62%][0m
> test/test_pyemd.py::test_emd_samples_1 [32mPASSED[0m[31m [ 65%][0m
> test/test_pyemd.py::test_emd_samples_1_binsize [32mPASSED[0m[31m [ 68%][0m
> test/test_pyemd.py::test_emd_samples_1_manual_range [32mPASSED[0m[31m [ 71%][0m
> test/test_pyemd.py::test_emd_samples_1_not_normalized [32mPASSED[0m[31m [ 74%][0m
> test/test_pyemd.py::test_emd_samples_1_custom_distance [32mPASSED[0m[31m [ 77%][0m
> test/test_pyemd.py::test_emd_samples_all_kwargs [32mPASSED[0m[31m [ 80%][0m
> test/test_pyemd.py::test_emd_samples_2 [32mPASSED[0m[31m [ 82%][0m
> test/test_pyemd.py::test_emd_samples_3 [32mPASSED[0m[31m [ 85%][0m
> test/test_pyemd.py::test_emd_samples_4 [32mPASSED[0m[31m [ 88%][0m
> test/test_pyemd.py::test_emd_samples_5 [32mPASSED[0m[31m [ 91%][0m
> test/test_pyemd.py::test_emd_samples_validate_empty [32mPASSED[0m[31m [ 94%][0m
> test/test_pyemd.py::test_emd_samples_validate_distance_matrix_square [32mPASSED[0m[31m [ 97%][0m
> test/test_pyemd.py::test_emd_samples_validate_distance_matrix_size [32mPASSED[0m[31m [100%][0m
>
> =================================== FAILURES ===================================
> [31m[1m_________________ test_emd_validate_symmetric_distance_matrix __________________[0m
>
> def test_emd_validate_symmetric_distance_matrix():
> first_signature = np.array([0.0, 1.0])
> second_signature = np.array([5.0, 3.0])
> > distance_matrix = np.array([[0.0, 0.5, 3.0],
> [0.5, 0.0]])
> [1m[31mE ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.[0m
>
> [1m[31mtest/test_pyemd.py[0m:132: ValueError
> [31m[1m______________ test_emd_with_flow_validate_square_distance_matrix ______________[0m
>
> def test_emd_with_flow_validate_square_distance_matrix():
> first_signature = np.array([0.0, 1.0])
> second_signature = np.array([5.0, 3.0])
> > distance_matrix = np.array([[0.0, 0.5, 3.0],
> [0.5, 0.0]])
> [1m[31mE ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.[0m
>
> [1m[31mtest/test_pyemd.py[0m:278: ValueError
> [36m[1m=========================== short test summary info ============================[0m
> [31mFAILED[0m test/test_pyemd.py::[1mtest_emd_validate_symmetric_distance_matrix[0m - ValueError: setting an array element with a sequence. The requested array h...
> [31mFAILED[0m test/test_pyemd.py::[1mtest_emd_with_flow_validate_square_distance_matrix[0m - ValueError: setting an array element with a sequence. The requested array h...
> [31m========================= [31m[1m2 failed[0m, [32m33 passed[0m[31m in 0.21s[0m[31m =========================[0m
> E: pybuild pybuild:388: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pyemd/build; python3.10 -m pytest test
> I: pybuild base:240: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyemd/build; python3.11 -m pytest test
> [1m============================= test session starts ==============================[0m
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack -- /usr/bin/python3.11
> cachedir: .pytest_cache
> rootdir: /<<PKGBUILDDIR>>, configfile: pytest.ini
> [1mcollecting ... [0mcollected 35 items
>
> test/test_pyemd.py::test_emd_1 [32mPASSED[0m[32m [ 2%][0m
> test/test_pyemd.py::test_emd_2 [32mPASSED[0m[32m [ 5%][0m
> test/test_pyemd.py::test_emd_3 [32mPASSED[0m[32m [ 8%][0m
> test/test_pyemd.py::test_emd_4 [32mPASSED[0m[32m [ 11%][0m
> test/test_pyemd.py::test_emd_extra_mass_penalty [32mPASSED[0m[32m [ 14%][0m
> test/test_pyemd.py::test_emd_validate_larger_signatures_1 [32mPASSED[0m[32m [ 17%][0m
> test/test_pyemd.py::test_emd_validate_larger_signatures_2 [32mPASSED[0m[32m [ 20%][0m
> test/test_pyemd.py::test_emd_validate_larger_signatures_3 [32mPASSED[0m[32m [ 22%][0m
> test/test_pyemd.py::test_emd_validate_different_signature_dims [32mPASSED[0m[32m [ 25%][0m
> test/test_pyemd.py::test_emd_validate_symmetric_distance_matrix [31mFAILED[0m[31m [ 28%][0m
> test/test_pyemd.py::test_emd_with_flow_1 [32mPASSED[0m[31m [ 31%][0m
> test/test_pyemd.py::test_emd_with_flow_2 [32mPASSED[0m[31m [ 34%][0m
> test/test_pyemd.py::test_emd_with_flow_3 [32mPASSED[0m[31m [ 37%][0m
> test/test_pyemd.py::test_emd_with_flow_4 [32mPASSED[0m[31m [ 40%][0m
> test/test_pyemd.py::test_emd_with_flow_5 [32mPASSED[0m[31m [ 42%][0m
> test/test_pyemd.py::test_emd_with_flow_6 [32mPASSED[0m[31m [ 45%][0m
> test/test_pyemd.py::test_emd_with_flow_extra_mass_penalty [32mPASSED[0m[31m [ 48%][0m
> test/test_pyemd.py::test_emd_with_flow_validate_larger_signatures_1 [32mPASSED[0m[31m [ 51%][0m
> test/test_pyemd.py::test_emd_with_flow_validate_larger_signatures_2 [32mPASSED[0m[31m [ 54%][0m
> test/test_pyemd.py::test_emd_with_flow_validate_larger_signatures_3 [32mPASSED[0m[31m [ 57%][0m
> test/test_pyemd.py::test_emd_with_flow_validate_different_signature_dims [32mPASSED[0m[31m [ 60%][0m
> test/test_pyemd.py::test_emd_with_flow_validate_square_distance_matrix [31mFAILED[0m[31m [ 62%][0m
> test/test_pyemd.py::test_emd_samples_1 [32mPASSED[0m[31m [ 65%][0m
> test/test_pyemd.py::test_emd_samples_1_binsize [32mPASSED[0m[31m [ 68%][0m
> test/test_pyemd.py::test_emd_samples_1_manual_range [32mPASSED[0m[31m [ 71%][0m
> test/test_pyemd.py::test_emd_samples_1_not_normalized [32mPASSED[0m[31m [ 74%][0m
> test/test_pyemd.py::test_emd_samples_1_custom_distance [32mPASSED[0m[31m [ 77%][0m
> test/test_pyemd.py::test_emd_samples_all_kwargs [32mPASSED[0m[31m [ 80%][0m
> test/test_pyemd.py::test_emd_samples_2 [32mPASSED[0m[31m [ 82%][0m
> test/test_pyemd.py::test_emd_samples_3 [32mPASSED[0m[31m [ 85%][0m
> test/test_pyemd.py::test_emd_samples_4 [32mPASSED[0m[31m [ 88%][0m
> test/test_pyemd.py::test_emd_samples_5 [32mPASSED[0m[31m [ 91%][0m
> test/test_pyemd.py::test_emd_samples_validate_empty [32mPASSED[0m[31m [ 94%][0m
> test/test_pyemd.py::test_emd_samples_validate_distance_matrix_square [32mPASSED[0m[31m [ 97%][0m
> test/test_pyemd.py::test_emd_samples_validate_distance_matrix_size [32mPASSED[0m[31m [100%][0m
>
> =================================== FAILURES ===================================
> [31m[1m_________________ test_emd_validate_symmetric_distance_matrix __________________[0m
>
> def test_emd_validate_symmetric_distance_matrix():
> first_signature = np.array([0.0, 1.0])
> second_signature = np.array([5.0, 3.0])
> > distance_matrix = np.array([[0.0, 0.5, 3.0],
> [0.5, 0.0]])
> [1m[31mE ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.[0m
>
> [1m[31mtest/test_pyemd.py[0m:132: ValueError
> [31m[1m______________ test_emd_with_flow_validate_square_distance_matrix ______________[0m
>
> def test_emd_with_flow_validate_square_distance_matrix():
> first_signature = np.array([0.0, 1.0])
> second_signature = np.array([5.0, 3.0])
> > distance_matrix = np.array([[0.0, 0.5, 3.0],
> [0.5, 0.0]])
> [1m[31mE ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.[0m
>
> [1m[31mtest/test_pyemd.py[0m:278: ValueError
> [36m[1m=========================== short test summary info ============================[0m
> [31mFAILED[0m test/test_pyemd.py::[1mtest_emd_validate_symmetric_distance_matrix[0m - ValueError: setting an array element with a sequence. The requested array h...
> [31mFAILED[0m test/test_pyemd.py::[1mtest_emd_with_flow_validate_square_distance_matrix[0m - ValueError: setting an array element with a sequence. The requested array h...
> [31m========================= [31m[1m2 failed[0m, [32m33 passed[0m[31m in 0.15s[0m[31m =========================[0m
> E: pybuild pybuild:388: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyemd/build; python3.11 -m pytest test
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.10 3.11" returned exit code 13
The full build log is available from:
http://qa-logs.debian.net/2023/01/13/pyemd_0.5.1-2_unstable.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20230113;users=lucas@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20230113&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects
If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.
More information about the debian-science-maintainers
mailing list