36 lines
809 B
Nim
36 lines
809 B
Nim
import unittest
|
|
import nimterop/cimport
|
|
|
|
cOverride:
|
|
type
|
|
locale_t = object
|
|
mingw_ldbl_type_t = object
|
|
mingw_dbl_type_t = object
|
|
|
|
when defined(Windows):
|
|
cOverride:
|
|
type
|
|
complex = object
|
|
|
|
static:
|
|
when (NimMajor, NimMinor, NimPatch) < (1, 0, 0):
|
|
# FP_ILOGB0 and FP_ILOGBNAN are casts that are unsupported
|
|
# on lower Nim VMs
|
|
cSkipSymbol @["math_errhandling", "FP_ILOGB0", "FP_ILOGBNAN"]
|
|
else:
|
|
cSkipSymbol @["math_errhandling"]
|
|
cDisableCaching()
|
|
cAddStdDir()
|
|
|
|
cPlugin:
|
|
import strutils
|
|
|
|
proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} =
|
|
sym.name = sym.name.strip(chars={'_'}).replace("__", "_")
|
|
|
|
const FLAGS {.strdefine.} = ""
|
|
cImport(cSearchPath("math.h"), flags = FLAGS)
|
|
|
|
check sin(5) == -0.9589242746631385
|
|
check abs(-5) == 5
|
|
check sqrt(4.00) == 2.0
|