Faster test, add Drone CI
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
d5aae73cd6
commit
736a80d773
13
.drone.yml
Normal file
13
.drone.yml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: build
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build
|
||||||
|
image: golang:1.18-bullseye
|
||||||
|
commands:
|
||||||
|
- DEBIAN_FRONTEND=noninteractive apt update
|
||||||
|
- DEBIAN_FRONTEND=noninteractive apt install -y git build-essential cmake make
|
||||||
|
- git clone --recursive --depth 1 https://git.gammaspectra.live/S.O.N.G/c-gaborator.git && cd c-gaborator && mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-march=native" -DCMAKE_C_FLAGS_RELEASE="-march=native" -DCMAKE_INSTALL_PREFIX="/usr" && make && make install && cd ../..
|
||||||
|
- go test -cover -v
|
|
@ -4,7 +4,7 @@ Simple Gaborator cgo implementation.
|
||||||
|
|
||||||
Requires [c-gaborator](https://git.gammaspectra.live/S.O.N.G/c-gaborator) installed.
|
Requires [c-gaborator](https://git.gammaspectra.live/S.O.N.G/c-gaborator) installed.
|
||||||
```shell
|
```shell
|
||||||
git clone --recursive --depth 1 https://git.gammaspectra.live/S.O.N.G/c-gaborator
|
git clone --recursive --depth 1 https://git.gammaspectra.live/S.O.N.G/c-gaborator.git
|
||||||
cd c-gaborator && mkdir build && cd build
|
cd c-gaborator && mkdir build && cd build
|
||||||
cmake .. -DCMAKE_BUILD_TYPE=Release \
|
cmake .. -DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_CXX_FLAGS_RELEASE="-march=native" -DCMAKE_C_FLAGS_RELEASE="-march=native" \
|
-DCMAKE_CXX_FLAGS_RELEASE="-march=native" -DCMAKE_C_FLAGS_RELEASE="-march=native" \
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
pushd "${0%/*}"
|
|
||||||
|
|
||||||
pushd c-gaborator
|
|
||||||
if [[ -d "build" ]]; then
|
|
||||||
rm -r build
|
|
||||||
fi
|
|
||||||
mkdir build
|
|
||||||
pushd build
|
|
||||||
cmake ..
|
|
||||||
make -j$(nproc)
|
|
|
@ -1,15 +1,15 @@
|
||||||
package goborator
|
package goborator
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/binary"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
"unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestGoborator(t *testing.T) {
|
func TestGoborator(t *testing.T) {
|
||||||
ob := NewGaborator(8192, 16000, 85, 110, 7040, 440, 128)
|
ob := NewGaborator(1<<17, 16000, 85, 110, 7040, 440, 128)
|
||||||
defer ob.ProcessingFinished()
|
defer ob.ProcessingFinished()
|
||||||
|
|
||||||
file, err := os.Open("sample/test.raw")
|
file, err := os.Open("sample/test.raw")
|
||||||
|
@ -18,29 +18,38 @@ func TestGoborator(t *testing.T) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
channel := make(chan float32)
|
channel := make(chan []float32)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
defer close(channel)
|
defer close(channel)
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
||||||
var f float32
|
buf := make([]byte, ob.GetBlockSize()*4)
|
||||||
for {
|
for {
|
||||||
err = binary.Read(file, binary.LittleEndian, &f)
|
n, err := file.Read(buf)
|
||||||
|
|
||||||
|
if n > 4 {
|
||||||
|
values := make([]float32, n/4)
|
||||||
|
copy(values, unsafe.Slice((*float32)(unsafe.Pointer(&buf[0])), n/4))
|
||||||
|
channel <- values
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
channel <- f
|
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
var i = 0
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
for c := range ob.GaborTransform(channel) {
|
var data [][]float32
|
||||||
fmt.Printf("%d: %+F\n", i, c)
|
for c := range ob.GaborBlockTransform(channel) {
|
||||||
i++
|
data = append(data, c)
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("%d, %dms", i, time.Now().Sub(start).Milliseconds())
|
end := time.Now().Sub(start).Milliseconds()
|
||||||
|
|
||||||
|
/*for i, c := range data {
|
||||||
|
fmt.Printf("%d: %+F\n", i, c)
|
||||||
|
}*/
|
||||||
|
fmt.Printf("total: %d, %dms\n", len(data), end)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue