PageRenderTime 42ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Examples/test-suite/lua/li_std_vector_runme.lua

#
Lua | 66 lines | 48 code | 17 blank | 1 comment | 8 complexity | 9f1b922a36748ee89cded77e96663dd4 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. require("import") -- the import fn
  2. import("li_std_vector") -- import code
  3. for k,v in pairs(li_std_vector) do _G[k]=v end -- move to global
  4. iv = IntVector(4)
  5. for i=0,3 do
  6. iv[i] = i
  7. end
  8. for i=0,3 do assert(iv[i]==i) end
  9. x = average(iv)
  10. function near(x,y) return math.abs(x-y)<0.001 end
  11. assert(near(x,1.5))
  12. rv = RealVector()
  13. rv:push_back(10)
  14. rv:push_back(10.5)
  15. rv:push_back(11)
  16. rv:push_back(11.5)
  17. a=half(rv)
  18. for i=0,rv:size()-1 do
  19. assert(near(a[i],rv[i]/2))
  20. end
  21. dv = DoubleVector(10)
  22. for i=0,9 do dv[i] = i/2.0 end
  23. halve_in_place(dv)
  24. for i=0,9 do
  25. assert(near(dv[i],i/4))
  26. end
  27. sv=StructVector(4)
  28. for i=0,3 do
  29. sv[i]=Struct(i)
  30. end
  31. for i=0,3 do
  32. assert( swig_type(sv[i]) =='Struct *' and sv[i].num==i)
  33. end
  34. -- range checking
  35. idx=0
  36. function test_set() iv[idx]=0 end
  37. function test_get() iv[idx]=0 end
  38. idx=0 --ok
  39. assert(pcall(test_get)==true)
  40. assert(pcall(test_set)==true)
  41. idx=-1 --should error
  42. assert(pcall(test_get)==false)
  43. assert(pcall(test_set)==false)
  44. idx=3 --ok
  45. assert(pcall(test_get)==true)
  46. assert(pcall(test_set)==true)
  47. idx=4 --should error
  48. assert(pcall(test_get)==false)
  49. assert(pcall(test_set)==false)