Extend C# complex support to member variables of this type

Define csvar{in,out} typemaps needed to support properties of complex type and
apply the existing cstype and csin ones to them as well.

Add unit test verifying that this works as expected in C# and, also, in
Python, even though no changes were needed there.
This commit is contained in:
Vadim Zeitlin 2017-04-01 23:48:33 +02:00
commit ec565f74cf
4 changed files with 33 additions and 2 deletions

View file

@ -34,6 +34,11 @@
return b;
}
#endif
struct ComplexPair
{
std::complex<double> z1, z2;
};
}

View file

@ -24,5 +24,11 @@ public class complextest_runme {
if ( complextest.Copy_h(vec).Count != 2 )
throw new Exception("vector<complex> test failed");
var p = new ComplexPair();
p.z1 = new Complex(0, 1);
p.z2 = new Complex(0, -1);
if ( Complex.Conjugate(p.z2) != p.z1 )
throw new Exception("vector<complex> test failed");
}
}

View file

@ -15,3 +15,9 @@ try:
complextest.Copy_h(v)
except:
pass
p = complextest.ComplexPair()
p.z1 = complex(0, 1)
p.z2 = complex(0, -1)
if complextest.Conj(p.z2) != p.z1:
raise RuntimeError, "bad complex mapping"