mirror of https://github.com/go-python/gopy.git
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
# Copyright 2017 The go-python Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style
|
|
# license that can be found in the LICENSE file.
|
|
|
|
from __future__ import print_function
|
|
import math
|
|
import random
|
|
import slices, go
|
|
|
|
a = [1,2,3,4]
|
|
b = slices.CreateSlice()
|
|
print ("Python list:", a)
|
|
print ("Go slice: ", b)
|
|
print ("slices.IntSum from Python list:", slices.IntSum(go.Slice_int(a)))
|
|
print ("slices.IntSum from Go slice:", slices.IntSum(b))
|
|
|
|
su8 = slices.SliceUint8([1,2])
|
|
su16 = slices.SliceUint16([2,3])
|
|
su32 = slices.SliceUint32([3,4])
|
|
su64 = slices.SliceUint64([4,5])
|
|
print ("unsigned slice elements:", su8[0], su16[0], su32[0], su64[0])
|
|
|
|
si8 = slices.SliceInt8([-1,-2])
|
|
si16 = slices.SliceInt16([-2,-3])
|
|
si32 = slices.SliceInt32([-3,-4])
|
|
si64 = slices.SliceInt64([-4,-5])
|
|
print ("signed slice elements:", si8[0], si16[0], si32[0], si64[0])
|
|
|
|
ss = slices.CreateSSlice()
|
|
print ("struct slice: ", ss)
|
|
print ("struct slice[0]: ", ss[0])
|
|
print ("struct slice[1]: ", ss[1])
|
|
print ("struct slice[2].Name: ", ss[2].Name)
|
|
|
|
slices.PrintSSlice(ss)
|
|
|
|
slices.PrintS(ss[0])
|
|
slices.PrintS(ss[1])
|
|
|
|
cmplx = slices.SliceComplex([(random.random() + random.random() * 1j) for _ in range(16)])
|
|
sqrts = slices.CmplxSqrt(cmplx)
|
|
for root, orig in zip(sqrts, cmplx):
|
|
root_squared = root * root
|
|
assert math.isclose(root_squared.real, orig.real)
|
|
assert math.isclose(root_squared.imag, orig.imag)
|
|
|
|
print("OK")
|