github.com/neugram/ng@v0.0.0-20180309130942-d472ff93d872/frame/memframe/memframe_test.go (about) 1 // Copyright 2015 The Neugram Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package memframe_test 6 7 import ( 8 "testing" 9 10 "neugram.io/ng/frame" 11 "neugram.io/ng/frame/internal/frametest" 12 "neugram.io/ng/frame/memframe" 13 ) 14 15 func TestLoadPresidents(t *testing.T) { 16 f := memframe.NewLiteral([]string{"ID", "Name", "Term1", "Term2"}, nil) 17 frametest.LoadPresidents(t, f) 18 } 19 20 func TestMemory(t *testing.T) { 21 fm := memframe.New(6, 4) 22 var f frame.Frame = fm 23 h, err := fm.Len() 24 if err != nil { 25 t.Fatal(err) 26 } 27 if h != 4 { 28 t.Fatalf("Len(): %d, want %d", h, 4) 29 } 30 if w := len(f.Cols()); w != 6 { 31 t.Fatalf("len(f.Cols())=%d, want %d", w, 6) 32 } 33 if err := fm.Set(2, 1, 2.1); err != nil { 34 t.Errorf("Set error: %v", err) 35 } 36 var v interface{} 37 if err := fm.Get(2, 1, &v); err != nil { 38 t.Fatal(err) 39 } 40 if v != 2.1 { 41 t.Errorf("Get(2, 1) = %v, want %v", v, 2.1) 42 } 43 44 f = frame.Slice(f, 2, 3, 1, 1) 45 fm, ok := f.(*memframe.Memory) 46 if !ok { 47 t.Fatalf("slice produced wrong type: %T", f) 48 } 49 h, err = fm.Len() 50 if err != nil { 51 t.Fatal(err) 52 } 53 if h != 1 { 54 t.Fatalf("slice Len(): %d, want %d", h, 1) 55 } 56 if w := len(f.Cols()); w != 3 { 57 t.Fatalf("slice width: %d, want %d", w, 3) 58 } 59 v = 0 60 if err := f.Get(0, 0, &v); err != nil { 61 t.Fatal(err) 62 } 63 if v != 2.1 { 64 t.Errorf("slice Get(0, 0) = %v, want %v", v, 2.1) 65 } 66 }