52 lines
1.6 KiB
Go
52 lines
1.6 KiB
Go
|
// Copyright (c) 2013 Conformal Systems LLC.
|
||
|
// Use of this source code is governed by an ISC
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package btcchain_test
|
||
|
|
||
|
import (
|
||
|
"github.com/conformal/btcchain"
|
||
|
"reflect"
|
||
|
"sort"
|
||
|
"testing"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
// TestTimeSorter tests the timeSorter implementation.
|
||
|
func TestTimeSorter(t *testing.T) {
|
||
|
tests := []struct {
|
||
|
in []time.Time
|
||
|
want []time.Time
|
||
|
}{
|
||
|
{
|
||
|
in: []time.Time{
|
||
|
time.Unix(1351228575, 0), // Fri Oct 26 05:16:15 UTC 2012 (Block #205000)
|
||
|
time.Unix(1351228575, 1), // Fri Oct 26 05:16:15 UTC 2012 (+1 nanosecond)
|
||
|
time.Unix(1348310759, 0), // Sat Sep 22 10:45:59 UTC 2012 (Block #200000)
|
||
|
time.Unix(1305758502, 0), // Wed May 18 22:41:42 UTC 2011 (Block #125000)
|
||
|
time.Unix(1347777156, 0), // Sun Sep 16 06:32:36 UTC 2012 (Block #199000)
|
||
|
time.Unix(1349492104, 0), // Sat Oct 6 02:55:04 UTC 2012 (Block #202000)
|
||
|
},
|
||
|
want: []time.Time{
|
||
|
time.Unix(1305758502, 0), // Wed May 18 22:41:42 UTC 2011 (Block #125000)
|
||
|
time.Unix(1347777156, 0), // Sun Sep 16 06:32:36 UTC 2012 (Block #199000)
|
||
|
time.Unix(1348310759, 0), // Sat Sep 22 10:45:59 UTC 2012 (Block #200000)
|
||
|
time.Unix(1349492104, 0), // Sat Oct 6 02:55:04 UTC 2012 (Block #202000)
|
||
|
time.Unix(1351228575, 0), // Fri Oct 26 05:16:15 UTC 2012 (Block #205000)
|
||
|
time.Unix(1351228575, 1), // Fri Oct 26 05:16:15 UTC 2012 (+1 nanosecond)
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for i, test := range tests {
|
||
|
result := make([]time.Time, len(test.in))
|
||
|
copy(result, test.in)
|
||
|
sort.Sort(btcchain.TstTimeSorter(result))
|
||
|
if !reflect.DeepEqual(result, test.want) {
|
||
|
t.Errorf("timeSorter #%d got %v want %v", i, result,
|
||
|
test.want)
|
||
|
continue
|
||
|
}
|
||
|
}
|
||
|
}
|