123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- // Copyright 2013-2014 Fuzamei tech Ltd. All rights reserved.
- package market
- import (
- // "encoding/gob"
- "log"
- // "os"
- "testing"
- "time"
- )
- var db *MyDB
- func newDB() {
- if db == nil {
- mdb, err := NewMyDB("./fzm.db", true)
- if err != nil {
- log.Fatal("newMyDB error:", err)
- }
- db = mdb
- }
- }
- func benchmarkQuery(n int, b *testing.B) {
- b.StopTimer()
- newDB()
- tm := time.Date(2014, 8, 13, 10, 0, 0, 0, time.UTC)
- ts := tm.Unix() * 1000
- b.StartTimer()
- for i := 0; i < b.N; i++ {
- rows, err := db.query("lmax_4001", M1, n, ts)
- if err != nil {
- b.Error(err)
- }
- if len(rows) == 0 {
- b.Error("no rows return")
- }
- sum := 0
- for _, r := range rows {
- sum += r.Count
- }
- want := n
- if want < 0 {
- want = -want
- }
- if sum < want {
- b.Error("sum < want", sum, want)
- }
- }
- }
- func BenchmarkQuery(b *testing.B) {
- benchmarkQuery(1000, b)
- }
- func BenchmarkNQuery(b *testing.B) {
- benchmarkQuery(-1000, b)
- }
- // func TestConvCandle(t *testing.T) {
- // newDB()
- // tm := time.Date(2014, 5, 13, 10, 0, 0, 0, time.UTC)
- // ts := tm.Unix() * 1000
- // rows, err := db.query(0, M1, 1000, ts)
- // if err != nil {
- // t.Error(err)
- // }
- // if len(rows) == 0 {
- // t.Fatal("no rows return")
- // }
- // fname := rows[0].filePath
- // candles, err := readFile(fname)
- // if err != nil {
- // t.Error(err)
- // }
- // r := &candleReader{candles: candles}
- // buf, err := convCandle(0, M5, r)
- // if err != nil {
- // t.Error(err)
- // }
- // for _, c := range buf {
- // if c.Timestamp < 0 {
- // t.Fatal("c.Timestamp < 0")
- // }
- // }
- // }
- // func readFile(fname string) ([]Candle, error) {
- // f, err := os.Open(fname)
- // if err != nil {
- // return nil, err
- // }
- // defer f.Close()
- // dec := gob.NewDecoder(f)
- // var buf []Candle
- // err = dec.Decode(&buf)
- // if err != nil {
- // return nil, err
- // }
- // return buf, nil
- // }
- func TestGetLastN(t *testing.T) {
- newDB()
- rows, err := db.getLastN("lmax_4001", M1, 1024)
- if err != nil {
- t.Fatal(err)
- }
- sum := 0
- for _, r := range rows {
- sum += r.Count
- }
- if sum < 1024 {
- t.Error("getLastN return not enough")
- }
- }
- func TestGetLastTime(t *testing.T) {
- newDB()
- r1, err := db.getLastTime("lmax_4001", M1)
- if err != nil {
- t.Fatal(err)
- }
- t1 := time.Unix(r1.EndTime/1000, r1.EndTime%1000*1e6)
- log.Println(t1)
- r2, err := db.getLastTime("lmax_4002", M1)
- if err != nil {
- t.Fatal(err)
- }
- t2 := time.Unix(r2.EndTime/1000, r2.EndTime%1000*1e6)
- log.Println(t2)
- if r1.EndTime != r2.EndTime {
- t.Error("lt1 != lt2", r1.EndTime, r2.EndTime)
- }
- }
- func TestQuery(t *testing.T) {
- newDB()
- tm := time.Date(2014, 5, 13, 10, 0, 0, 0, time.UTC)
- ts := tm.Unix() * 1000
- want := 1000
- rows, err := db.query("lmax_4001", M1, 1000, ts)
- if err != nil {
- t.Error(err)
- }
- if len(rows) == 0 {
- t.Error("no rows return")
- }
- sum := 0
- for _, r := range rows {
- sum += r.Count
- }
- if want < 0 {
- want = -want
- }
- if sum < want {
- t.Error("sum < want", sum, want)
- }
- }
|