MCPcopy Index your code
hub / github.com/TheAlgorithms/Go / TestNewFromElements

Function TestNewFromElements

math/matrix/matrix_test.go:24–69  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

22}
23
24func TestNewFromElements(t *testing.T) {
25 // Test case 1: Valid matrix
26 validElements := [][]int{
27 {1, 2, 3},
28 {4, 5, 6},
29 }
30 expectedm1 := matrix.New(2, 3, 0)
31 for i := 0; i < len(validElements); i++ {
32 for j := 0; j < len(validElements[0]); j++ {
33 err := expectedm1.Set(i, j, validElements[i][j])
34 if err != nil {
35 t.Errorf("copyMatrix.Set error: %s", err.Error())
36 }
37 }
38 }
39
40 m1, err1 := matrix.NewFromElements(validElements)
41 if err1 != nil {
42 t.Errorf("NewFromElements(validElements) returned an error: %v", err1)
43 }
44 res := m1.CheckEqual(expectedm1)
45 if res != true {
46 t.Errorf("NewFromElements(validElements) returned %v, expected %v", m1, expectedm1)
47 }
48
49 // Test case 2: Invalid matrix with different column counts
50 invalidElements := [][]int{
51 {1, 2, 3},
52 {4, 5},
53 }
54 _, err2 := matrix.NewFromElements(invalidElements)
55 expectedError2 := errors.New("rows have different numbers of columns")
56 if err2 == nil || err2.Error() != expectedError2.Error() {
57 t.Errorf("NewFromElements(invalidElements) returned error: %v, expected error: %v", err2, expectedError2)
58 }
59
60 // Test case 3: Empty matrix
61 emptyElements := [][]int{}
62 m3, err3 := matrix.NewFromElements(emptyElements)
63 if err3 != nil {
64 t.Errorf("NewFromElements(emptyElements) returned an error: %v", err3)
65 }
66 if m3.Rows() != 0 || m3.Columns() != 0 {
67 t.Errorf("NewFromElements(emptyElements) returned %v, expected nil", m3)
68 }
69}
70
71func TestMatrixGet(t *testing.T) {
72 // Create a sample matrix for testing

Callers

nothing calls this directly

Calls 6

NewFunction · 0.92
NewFromElementsFunction · 0.92
SetMethod · 0.80
CheckEqualMethod · 0.80
RowsMethod · 0.80
ColumnsMethod · 0.80

Tested by

no test coverage detected