github.com/neugram/ng@v0.0.0-20180309130942-d472ff93d872/eval/testdata/vec.ng (about)

     1  // This package exports symbols and is used by ./import3.ng.
     2  
     3  type Vector3 struct {
     4  	X float64
     5  	Y float64
     6  	Z float64
     7  	// TODO: X, Y, Z float64
     8  }
     9  
    10  one := float64(1)
    11  One := Vector3{X: one, Y: 1.0, Z: 1}
    12  Zero := Vector3{}
    13  
    14  func Add(m, n Vector3) Vector3 {
    15  	return Vector3{m.X + n.X, m.Y + n.Y, m.Z + n.Z}
    16  }
    17  
    18  func Sub(m, n Vector3) Vector3 {
    19  	m2 := &m
    20  	y := m2.Y
    21  	y -= n.Y
    22  	return Vector3{m.X - n.X, y, m.Z - n.Z}
    23  }
    24  
    25  func Dot(m, n Vector3) float64 {
    26  	return m.X*n.X + m.Y*n.Y + m.Z*n.Z
    27  }
    28  
    29  OK := true
    30  if got := Sub(One, One); got != Zero {
    31  	OK = false
    32  	printf("Sub(One, One)=%v, want Zero", got)
    33  }
    34  
    35  X := "initx"
    36  
    37  func PassThrough(s string) string { return X + s }
    38  
    39  if OK {
    40  	print("OK")
    41  }