Best K6 code snippet using main.calcDistance
lookup_test.go
Source:lookup_test.go
1package main2import (3 "testing"4 "sync"5 "sort"6)7func TestGetResponse(t *testing.T) {8 receiveCh := make(chan LookupResponse)9 defer close(receiveCh)10 sendCh := make(chan Contact)11 defer close(sendCh)12 id := NewKademliaID("1111111100000000000000000000000000000000")13 contact1 := NewContact(NewKademliaID("2111111400000000000000000000000000000000"), "localhost:8002")14 contact1.CalcDistance(id)15 contact2 := NewContact(NewKademliaID("1111111400000000000000000000000000000000"), "localhost:8002")16 contact2.CalcDistance(id)17 contact3 := NewContact(NewKademliaID("1111111100000000000000000000000000000000"), "localhost:8002")18 contact3.CalcDistance(id)19 lookup := Lookup{20 id: id,21 notCalled: []Contact{contact1},22 called: append([]Contact{contact2}),23 wg: sync.WaitGroup{},24 sendCh: sendCh,25 receiveCh: receiveCh,26 closestHasNotValue: contact1,27 mutex: sync.RWMutex{}}28 go func(){29 contacts := LookupResponse{[]Contact{contact2, contact3}, contact2, false}30 receiveCh <- contacts31 }()32 newContacts := lookup.getResponse()33 checkContacts(t, newContacts, []Contact{contact3})34 checkContacts(t, lookup.called, []Contact{contact2})35 expContacts := []Contact{contact1, contact3}36 sort.Sort(ByDistance(expContacts))37 checkContacts(t, lookup.notCalled, expContacts)38}39func TestCallContact(t *testing.T) {40 receiveCh := make(chan LookupResponse)41 defer close(receiveCh)42 sendCh := make(chan Contact)43 defer close(sendCh)44 id := NewKademliaID("1111111100000000000000000000000000000000")45 contact1 := NewContact(NewKademliaID("2111111400000000000000000000000000000000"), "localhost:8002")46 contact1.CalcDistance(id)47 contact2 := NewContact(NewKademliaID("1111111400000000000000000000000000000000"), "localhost:8002")48 contact2.CalcDistance(id)49 contact3 := NewContact(NewKademliaID("1111111100000000000000000000000000000000"), "localhost:8002")50 contact3.CalcDistance(id)51 lookup := Lookup{52 id: id,53 notCalled: []Contact{contact1},54 called: append([]Contact{contact2}),55 wg: sync.WaitGroup{},56 sendCh: sendCh,57 receiveCh: receiveCh,58 closestHasNotValue: contact1,59 mutex: sync.RWMutex{}}60 lookup.wg.Add(1)61 go func(){62 defer lookup.wg.Done()63 contact := <-sendCh64 if !contact.ID.Equals(contact1.ID) {65 t.Error("Expected contact ", contact1, " got ", contact)66 }67 }()68 lookup.callContact()69 expContacts := []Contact{contact1, contact2}70 sort.Sort(ByDistance(expContacts))71 checkContacts(t, lookup.called, expContacts)72 checkContacts(t, lookup.notCalled, []Contact{})73 lookup.wg.Wait()74}75func TestLastEffort(t *testing.T) {76 wg := sync.WaitGroup{}77 receiveCh := make(chan LookupResponse)78 defer close(receiveCh)79 sendCh := make(chan Contact)80 defer close(sendCh)81 id := NewKademliaID("1111111100000000000000000000000000000000")82 contact1 := NewContact(NewKademliaID("2111111400000000000000000000000000000000"), "localhost:8002")83 contact1.CalcDistance(id)84 contact2 := NewContact(NewKademliaID("1111111400000000000000000000000000000000"), "localhost:8002")85 contact2.CalcDistance(id)86 contact3 := NewContact(NewKademliaID("1111111100000000000000000000000000000000"), "localhost:8002")87 contact3.CalcDistance(id)88 lookup := Lookup{89 id: id,90 notCalled: []Contact{contact1},91 called: append([]Contact{contact2}),92 wg: sync.WaitGroup{},93 sendCh: sendCh,94 receiveCh: receiveCh,95 closestHasNotValue: contact1,96 mutex: sync.RWMutex{}}97 wg.Add(1)98 go func(){99 defer wg.Done()100 contact := <-sendCh101 if !contact.ID.Equals(contact1.ID) {102 t.Error("Expected contact ", contact1, " got ", contact)103 }104 receiveCh <- LookupResponse{[]Contact{}, contact, false}105 }()106 lookup.lastEffort()107 expContacts := []Contact{contact1, contact2}108 sort.Sort(ByDistance(expContacts))109 checkContacts(t, lookup.called, expContacts)110 checkContacts(t, lookup.notCalled, []Contact{})111 wg.Wait()112}113func TestRunLookupLessThenK(t *testing.T) {114 receiveCh := make(chan LookupResponse)115 defer close(receiveCh)116 sendCh := make(chan Contact)117 defer close(sendCh)118 id := NewKademliaID("1111111100000000000000000000000000000000")119 contact1 := NewContact(NewKademliaID("2111111400000000000000000000000000000000"), "localhost:8002")120 contact1.CalcDistance(id)121 contact2 := NewContact(NewKademliaID("1111111400000000000000000000000000000000"), "localhost:8002")122 contact2.CalcDistance(id)123 contact3 := NewContact(NewKademliaID("1111111100000000000000000000000000000000"), "localhost:8002")124 contact3.CalcDistance(id)125 expContacts := []Contact{contact1, contact2, contact3}126 sort.Sort(ByDistance(expContacts))127 go func() {128 hasReturnd := false129 for {130 contact, more := <-sendCh131 if !more {132 return133 }134 if hasReturnd {135 receiveCh <- LookupResponse{[]Contact{}, contact, false}136 } else {137 hasReturnd = true138 receiveCh <- LookupResponse{[]Contact{contact2, contact3}, contact, true}139 }140 }141 }()142 contacts, contact, _ := RunLookup(id, contact1, []Contact{contact3}, sendCh, receiveCh)143 if !contact.ID.Equals(contact2.ID) {144 t.Error("Expected contact ", contact2, " got ", contact)145 }146 checkContacts(t, contacts, expContacts)147}148func TestRunLookup(t *testing.T) {149 receiveCh := make(chan LookupResponse)150 defer close(receiveCh)151 sendCh := make(chan Contact)152 defer close(sendCh)153 id := NewKademliaID("1111111100000000000000000000000000000000")154 contact1 := NewContact(NewKademliaID("2111111400000000000000000000000000000000"), "localhost:8002")155 contact1.CalcDistance(id)156 contact2 := NewContact(NewKademliaID("1111111400000000000000000000000000000000"), "localhost:8002")157 contact2.CalcDistance(id)158 contact3 := NewContact(NewKademliaID("1111111100000000000000000000000000000000"), "localhost:8002")159 contact3.CalcDistance(id)160 contact4 := NewContact(NewKademliaID("1111111500000000000000000000000000000000"), "localhost:8002")161 contact4.CalcDistance(id)162 contact5 := NewContact(NewKademliaID("1111111600000000000000000000000000000000"), "localhost:8002")163 contact5.CalcDistance(id)164 contact6 := NewContact(NewKademliaID("1111111700000000000000000000000000000000"), "localhost:8002")165 contact6.CalcDistance(id)166 expContacts := []Contact{contact1, contact2, contact3, contact4, contact5, contact6}167 sort.Sort(ByDistance(expContacts))168 go func() {169 hasReturnd := false170 for {171 contact, more := <-sendCh172 if !more {173 return174 }175 go func(contact Contact){176 if hasReturnd {177 receiveCh <- LookupResponse{[]Contact{contact1}, contact, false}178 } else {179 hasReturnd = true180 receiveCh <- LookupResponse{[]Contact{contact2, contact3, contact4, contact5, contact6}, contact, true}181 }182 }(contact)183 }184 }()185 contacts, contact, _ := RunLookup(id, contact1, []Contact{contact3}, sendCh, receiveCh)186 if !contact.ID.Equals(contact2.ID) {187 t.Error("Expected contact ", contact2, " got ", contact)188 }189 checkContacts(t, contacts, expContacts[:k])190}191func checkContacts(t *testing.T, contacts []Contact, expContacts []Contact) {192 if len(contacts) != len(expContacts) {193 t.Error("Expected ", len(expContacts), " contacts got ", len(contacts))194 }195 for i := 0; i < len(expContacts); i++ {196 if !contacts[i].ID.Equals(expContacts[i].ID) {197 t.Error("Expected contact ", expContacts[i], " got ", contacts[i])198 }199 }200}...
server.go
Source:server.go
...51}52func toRadians(num float64) float64 {53 return num * math.Pi / float64(180)54}55// calcDistance calculates the distance between two points using the "haversine" formula.56// The formula is based on http://mathforum.org/library/drmath/view/51879.html.57func calcDistance(p1 *pb.Point, p2 *pb.Point) int32 {58 const CordFactor float64 = 1e759 const R = float64(6371000) // earth radius in metres60 lat1 := toRadians(float64(p1.Latitude) / CordFactor)61 lat2 := toRadians(float64(p2.Latitude) / CordFactor)62 lng1 := toRadians(float64(p1.Longitude) / CordFactor)63 lng2 := toRadians(float64(p2.Longitude) / CordFactor)64 dlat := lat2 - lat165 dlng := lng2 - lng166 a := math.Sin(dlat/2)*math.Sin(dlat/2) +67 math.Cos(lat1)*math.Cos(lat2)*68 math.Sin(dlng/2)*math.Sin(dlng/2)69 c := 2 * math.Atan2(math.Sqrt(a), math.Sqrt(1-a))70 distance := R * c71 return int32(distance)72}73func (s *routeGuideServer) RecordRoute(stream pb.RouteGuide_RecordRouteServer) error {74 startTime := time.Now()75 var pointCount, distance int3276 var prevPoint *pb.Point77 for {78 point, err := stream.Recv()79 // ç¨æ·åæ¢ä¸ä¼ 80 if err == io.EOF {81 // conclude a route summary82 endTime := time.Now()83 return stream.SendAndClose(&pb.RouteSummary{84 PointCount: pointCount,85 Distance: distance,86 ElapsedTime: int32(endTime.Sub(startTime).Seconds()),87 })88 }89 if err != nil {90 return err91 }92 pointCount++93 if prevPoint != nil {94 distance += calcDistance(prevPoint, point)95 }96 prevPoint = point97 }98 return nil99}100func (s *routeGuideServer) recommendOnce(request *pb.RecommendationRequest) (*pb.Feature, error) {101 var nearest, farthest *pb.Feature102 var nearestDistance, farthestDistance int32103 for _, feature := range s.features {104 distance := calcDistance(feature.Location, request.Point)105 if nearest == nil || distance < nearestDistance {106 nearestDistance = distance107 nearest = feature108 }109 if farthest == nil || distance > farthestDistance {110 farthestDistance = distance111 farthest = feature112 }113 }114 if request.Mode == pb.RecommendationMode_GetFarthest {115 return farthest, nil116 } else {117 return nearest, nil118 }...
main.go
Source:main.go
...30 fmt.Printf("%.4f", d)31}32func closestDistance(X, Y []point) float64 {33 if len(X) == 2 {34 return calcDistance(X[0], X[1])35 } else if len(X) == 3 {36 return math.Min(math.Min(calcDistance(X[0], X[1]), calcDistance(X[1], X[2])), calcDistance(X[0], X[2]))37 }38 half := int(math.Floor(float64(len(X)) / 2))39 pointsLeft := X[:half]40 pointsRight := X[half:]41 XL, XR := pointsLeft, pointsRight42 YL, YR := sortedSplit(pointsLeft, pointsRight, Y)43 minLeft := closestDistance(XL, YL)44 minRight := closestDistance(XR, YR)45 sigma := math.Min(minLeft, minRight)46 sigmaPrime := closestSplitPoint(Y, pointsRight[0], sigma)47 return math.Min(sigma, sigmaPrime)48}49func closestSplitPoint(Y []point, mid point, sigma float64) float64 {50 YPrime := make([]point, 0)51 for i, point := range Y {52 if i == 0 {53 continue54 }55 if calcDistance(point, mid) > 2*sigma {56 YPrime = append(YPrime, point)57 }58 if i == 6 {59 break60 }61 }62 for i, point := range Y {63 for j, yPoint := range YPrime {64 if i == 0 || i != j+1 {65 tempSigma := calcDistance(point, yPoint)66 if tempSigma < sigma {67 sigma = tempSigma68 }69 }70 }71 }72 return sigma73}74func sortedSplit(pointsLeft, pointsRight, Y []point) ([]point, []point) {75 left := make([]point, 0, len(pointsLeft))76 right := make([]point, 0, len(pointsRight))77 for _, point := range Y {78 if point.x < pointsRight[0].x {79 left = append(left, point)80 } else {81 right = append(right, point)82 }83 }84 return left, right85}86func calcDistance(p1, p2 point) float64 {87 return math.Sqrt(math.Pow(float64(p1.x-p2.x), 2) + math.Pow(float64(p1.y-p2.y), 2))88}...
calcDistance
Using AI Code Generation
1import (2func main() {3 p := geometry.Point{1, 2}4 q := geometry.Point{4, 6}5}6import (7func main() {8 p := geometry.Point{1, 2}9 q := geometry.Point{4, 6}10}11import (12func main() {13 p := geometry.Point{1, 2}14 q := geometry.Point{4, 6}15}16import (17func main() {18 p := geometry.Point{1, 2}19 q := geometry.Point{4, 6}20}21import (22func main() {23 p := geometry.Point{1, 2}24 q := geometry.Point{4, 6}25}26import (27func main() {28 p := geometry.Point{1, 2}29 q := geometry.Point{4, 6}30 fmt.Println(geometry.Distance(p, q
calcDistance
Using AI Code Generation
1import (2type Point struct {3}4func (p Point) calcDistance(q Point) float64 {5 return math.Sqrt(math.Pow(p.x-q.x, 2) + math.Pow(p.y-q.y, 2))6}7func main() {8 p1 := Point{3, 4}9 p2 := Point{5, 6}10 fmt.Println(p1.calcDistance(p2))11}12import (13type Point struct {14}15func (p Point) calcDistance(q Point) float64 {16 return math.Sqrt(math.Pow(p.x-q.x, 2) + math.Pow(p.y-q.y, 2))17}18func (p Point) calcDistance(q Point, r Point) float64 {19 return math.Sqrt(math.Pow(p.x-q.x, 2) + math.Pow(p.y-q.y, 2) + math.Pow(q.x-r.x, 2) + math.Pow(q.y-r.y, 2))20}21func main() {22 p1 := Point{3, 4}23 p2 := Point{5, 6}24 p3 := Point{1, 2}25 fmt.Println(p1.calcDistance(p2))26 fmt.Println(p1.calcDistance(p2, p3))27}28import (29type Point struct {30}31func (p Point)
calcDistance
Using AI Code Generation
1import "fmt"2import "math"3func main() {4 fmt.Print("Enter x1: ")5 fmt.Scanln(&x1)6 fmt.Print("Enter y1: ")7 fmt.Scanln(&y1)8 fmt.Print("Enter x2: ")9 fmt.Scanln(&x2)10 fmt.Print("Enter y2: ")11 fmt.Scanln(&y2)12 fmt.Println("Distance: ", calcDistance(x1, y1, x2, y2))13}14import "fmt"15import "math"16func main() {17 fmt.Print("Enter x1: ")18 fmt.Scanln(&x1)19 fmt.Print("Enter y1: ")20 fmt.Scanln(&y1)21 fmt.Print("Enter x2: ")22 fmt.Scanln(&x2)23 fmt.Print("Enter y2: ")24 fmt.Scanln(&y2)25 fmt.Println("Distance: ", calcDistance(x1, y1, x2, y2))26}27import "fmt"28import "math"29func main() {30 fmt.Print("Enter x1: ")31 fmt.Scanln(&x1)32 fmt.Print("Enter y1: ")33 fmt.Scanln(&y1)34 fmt.Print("Enter x2: ")35 fmt.Scanln(&x2)36 fmt.Print("Enter y2: ")37 fmt.Scanln(&y2)38 fmt.Println("Distance: ", calcDistance(x1, y1, x2, y2))39}40import "fmt"41import "math"42func main() {43 fmt.Print("Enter x1: ")44 fmt.Scanln(&x1)45 fmt.Print("Enter y1: ")46 fmt.Scanln(&y1)47 fmt.Print("Enter x2: ")48 fmt.Scanln(&x2
calcDistance
Using AI Code Generation
1import "fmt"2func main() {3 fmt.Println("Enter the value of x1")4 fmt.Scanln(&x1)5 fmt.Println("Enter the value of y1")6 fmt.Scanln(&y1)7 fmt.Println("Enter the value of x2")8 fmt.Scanln(&x2)9 fmt.Println("Enter the value of y2")10 fmt.Scanln(&y2)11 fmt.Println("The distance between the points is", calcDistance(x1, y1, x2, y2))12}13import "math"14func calcDistance(x1, y1, x2, y2 float64) float64 {15 return math.Sqrt(x*x + y*y)16}17import "fmt"18func main() {19 fmt.Println("Enter the value of x1")20 fmt.Scanln(&x1)21 fmt.Println("Enter the value of y1")22 fmt.Scanln(&y1)23 fmt.Println("Enter the value of x2")24 fmt.Scanln(&x2)25 fmt.Println("Enter the value of y2")26 fmt.Scanln(&y2)27 fmt.Println("The distance between the points is", calcDistance(x1, y1, x2, y2))28}29import "math"30func calcDistance(x1, y1, x2, y2 float64) float64 {31 return math.Sqrt(x*x + y*y)32}33import "fmt"34func main() {35 fmt.Println("Enter the value of x1")36 fmt.Scanln(&x1)37 fmt.Println("Enter the value of y1")38 fmt.Scanln(&
calcDistance
Using AI Code Generation
1import "fmt"2func main() {3 fmt.Println("Enter x1 and y1")4 fmt.Scanln(&x1, &y1)5 fmt.Println("Enter x2 and y2")6 fmt.Scanln(&x2, &y2)7 fmt.Println("Distance between points is", calcDistance(x1, x2, y1, y2))8}9import "fmt"10func main() {11 fmt.Println("Enter x1 and y1")12 fmt.Scanln(&x1, &y1)13 fmt.Println("Enter x2 and y2")14 fmt.Scanln(&x2, &y2)15 fmt.Println("Distance between points is", calcDistance(x1, x2, y1, y2))16}17import "fmt"18func main() {19 fmt.Println("Enter x1 and y1")20 fmt.Scanln(&x1, &y1)21 fmt.Println("Enter x2 and y2")22 fmt.Scanln(&x2, &y2)23 fmt.Println("Distance between points is", calcDistance(x1, x2, y1, y2))24}25import "fmt"26func main() {27 fmt.Println("Enter x1 and y1")28 fmt.Scanln(&x1, &y1)29 fmt.Println("Enter x2 and y2")30 fmt.Scanln(&x2, &y2)31 fmt.Println("Distance between points is", calcDistance(x1, x2, y1, y2))32}33import "fmt"34func main() {35 fmt.Println("Enter x1 and y1")
calcDistance
Using AI Code Generation
1import (2func main() {3 fmt.Println("Distance is: ", calcDistance(10, 20, 30, 40))4}5import (6func main() {7 fmt.Println("Distance is: ", calcDistance(10, 20, 30, 40))8}9import (10func main() {11 fmt.Println("Distance is: ", calcDistance(10, 20, 30, 40))12}
calcDistance
Using AI Code Generation
1import (2func main() {3 fmt.Println("Hello, World!")4 fmt.Println(calcDistance(1, 1, 2, 2))5}6import (7func calcDistance(x1, y1, x2, y2 float64) float64 {8 return math.Sqrt(a*a + b*b)9}
calcDistance
Using AI Code Generation
1import (2func main() {3 fmt.Println(main.calcDistance(5, 12, 8, 15))4}5import (6func main() {7 fmt.Println(main.calcDistance(5, 12, 8, 15))8}9import (10func main() {11 fmt.Println(main.calcDistance(5, 12, 8, 15))12}13import (14func main() {15 fmt.Println(main.calcDistance(5, 12, 8, 15))16}17import (18func main() {19 fmt.Println(main.calcDistance(5, 12, 8, 15))20}21import (22func main() {23 fmt.Println(main.calcDistance(5, 12, 8, 15))24}25import (26func main() {27 fmt.Println(main.calcDistance(5, 12, 8, 15))28}29import (30func main() {31 fmt.Println(main.calcDistance(5, 12, 8, 15))32}33import (
calcDistance
Using AI Code Generation
1import (2func main() {3 fmt.Println("Hello, 世界")4 p := Point{x: 4, y: 3}5 q := Point{x: 0, y: 0}6 fmt.Println(calcDistance(p, q))7}8type Point struct {9}10func calcDistance(p, q Point) float64 {11 return math.Hypot(q.x-p.x, q.y-p.y)12}
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!