This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git


The following commit(s) were added to refs/heads/main by this push:
     new 12c42703 Added unit test for delta.go in encoding package (#417)
12c42703 is described below

commit 12c42703eef183be56983866a1547bfc6b04d57e
Author: D N Siva Sathyaseelan 
<95441117+sivasathyaseee...@users.noreply.github.com>
AuthorDate: Sat Mar 16 17:50:06 2024 +0530

    Added unit test for delta.go in encoding package (#417)
    
    Signed-off-by: sivasathyaseeelan <dnsiva.sathyaseelan.ch...@iitbhu.ac.in>
---
 pkg/encoding/delta_test.go | 183 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 183 insertions(+)

diff --git a/pkg/encoding/delta_test.go b/pkg/encoding/delta_test.go
new file mode 100644
index 00000000..acb30480
--- /dev/null
+++ b/pkg/encoding/delta_test.go
@@ -0,0 +1,183 @@
+// Licensed to Apache Software Foundation (ASF) under one or more contributor
+// license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright
+// ownership. Apache Software Foundation (ASF) licenses this file to you under
+// the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package encoding
+
+import (
+       "reflect"
+       "testing"
+)
+
+func TestInt64ListDeltaToBytesAndBytesDeltaToInt64List(t *testing.T) {
+       testCases := []struct {
+               name             string
+               inputSrc         []int64
+               expectedResult   []int64
+               expectedFirstVal int64
+       }{
+               {
+                       name:             "Basic Test Case",
+                       inputSrc:         []int64{10, 20, 30, 40, 50},
+                       expectedResult:   []int64{10, 20, 30, 40, 50},
+                       expectedFirstVal: 10,
+               },
+               {
+                       name:             "Negative Numbers",
+                       inputSrc:         []int64{-10, -5, 0, 5, 10},
+                       expectedResult:   []int64{-10, -5, 0, 5, 10},
+                       expectedFirstVal: -10,
+               },
+               {
+                       name:             "Large Numbers",
+                       inputSrc:         []int64{1000000, 2000000, 3000000, 
4000000, 5000000},
+                       expectedResult:   []int64{1000000, 2000000, 3000000, 
4000000, 5000000},
+                       expectedFirstVal: 1000000,
+               },
+               {
+                       name:             "Repeated Numbers",
+                       inputSrc:         []int64{5, 5, 5, 5, 5},
+                       expectedResult:   []int64{5, 5, 5, 5, 5},
+                       expectedFirstVal: 5,
+               },
+               {
+                       name:             "Descending Numbers",
+                       inputSrc:         []int64{10, 8, 6, 4, 2},
+                       expectedResult:   []int64{10, 8, 6, 4, 2},
+                       expectedFirstVal: 10,
+               },
+               {
+                       name:             "Ascending Numbers",
+                       inputSrc:         []int64{1, 2, 3, 4, 5},
+                       expectedResult:   []int64{1, 2, 3, 4, 5},
+                       expectedFirstVal: 1,
+               },
+               {
+                       name:             "Mixed Numbers",
+                       inputSrc:         []int64{-3, -2, 0, 2, 3},
+                       expectedResult:   []int64{-3, -2, 0, 2, 3},
+                       expectedFirstVal: -3,
+               },
+               {
+                       name:             "Large Random Numbers",
+                       inputSrc:         []int64{987654321, 123456789, 
987654321, 987654321, 123456789},
+                       expectedResult:   []int64{987654321, 123456789, 
987654321, 987654321, 123456789},
+                       expectedFirstVal: 987654321,
+               },
+       }
+
+       for _, tc := range testCases {
+               t.Run(tc.name, func(t *testing.T) {
+                       // Test int64ListDeltaToBytes
+                       dst := make([]byte, 0)
+                       resultBytes, firstValue := int64ListDeltaToBytes(dst, 
tc.inputSrc)
+                       if firstValue != tc.expectedFirstVal {
+                               t.Errorf("Expected first value %d, got %d", 
tc.expectedFirstVal, firstValue)
+                       }
+
+                       // Test bytesDeltaToInt64List
+                       dstInt64 := make([]int64, 0)
+                       itemsCount := len(tc.inputSrc)
+                       resultInt64, err := bytesDeltaToInt64List(dstInt64, 
resultBytes, firstValue, itemsCount)
+                       if err != nil {
+                               t.Errorf("Error decoding bytes: %v", err)
+                       }
+                       if !reflect.DeepEqual(tc.inputSrc, resultInt64) {
+                               t.Errorf("Expected decoded result %v, got %v", 
tc.inputSrc, resultInt64)
+                       }
+               })
+       }
+}
+
+func TestInt64sDeltaOfDeltaToBytesAndBytesDeltaOfDeltaToInt64s(t *testing.T) {
+       testCases := []struct {
+               name             string
+               inputSrc         []int64
+               expectedResult   []int64
+               expectedFirstVal int64
+       }{
+               {
+                       name:             "Basic Test Case",
+                       inputSrc:         []int64{10, 20, 30, 40, 50},
+                       expectedResult:   []int64{10, 20, 30, 40, 50},
+                       expectedFirstVal: 10,
+               },
+               {
+                       name:             "Negative Numbers",
+                       inputSrc:         []int64{-10, -5, 0, 5, 10},
+                       expectedResult:   []int64{-10, -5, 0, 5, 10},
+                       expectedFirstVal: -10,
+               },
+               {
+                       name:             "Large Numbers",
+                       inputSrc:         []int64{1000000, 2000000, 3000000, 
4000000, 5000000},
+                       expectedResult:   []int64{1000000, 2000000, 3000000, 
4000000, 5000000},
+                       expectedFirstVal: 1000000,
+               },
+               {
+                       name:             "Repeated Numbers",
+                       inputSrc:         []int64{5, 5, 5, 5, 5},
+                       expectedResult:   []int64{5, 5, 5, 5, 5},
+                       expectedFirstVal: 5,
+               },
+               {
+                       name:             "Descending Numbers",
+                       inputSrc:         []int64{10, 8, 6, 4, 2},
+                       expectedResult:   []int64{10, 8, 6, 4, 2},
+                       expectedFirstVal: 10,
+               },
+               {
+                       name:             "Ascending Numbers",
+                       inputSrc:         []int64{1, 2, 3, 4, 5},
+                       expectedResult:   []int64{1, 2, 3, 4, 5},
+                       expectedFirstVal: 1,
+               },
+               {
+                       name:             "Mixed Numbers",
+                       inputSrc:         []int64{-3, -2, 0, 2, 3},
+                       expectedResult:   []int64{-3, -2, 0, 2, 3},
+                       expectedFirstVal: -3,
+               },
+               {
+                       name:             "Large Random Numbers",
+                       inputSrc:         []int64{987654321, 123456789, 
987654321, 987654321, 123456789},
+                       expectedResult:   []int64{987654321, 123456789, 
987654321, 987654321, 123456789},
+                       expectedFirstVal: 987654321,
+               },
+       }
+
+       for _, tc := range testCases {
+               t.Run(tc.name, func(t *testing.T) {
+                       // Test int64sDeltaOfDeltaToBytes
+                       dst := make([]byte, 0)
+                       resultBytes, firstValue := 
int64sDeltaOfDeltaToBytes(dst, tc.inputSrc)
+                       if firstValue != tc.expectedFirstVal {
+                               t.Errorf("Expected first value %d, got %d", 
tc.expectedFirstVal, firstValue)
+                       }
+
+                       // Test bytesDeltaOfDeltaToInt64s
+                       dstInt64 := make([]int64, 0)
+                       itemsCount := len(tc.inputSrc)
+                       resultInt64, err := bytesDeltaOfDeltaToInt64s(dstInt64, 
resultBytes, firstValue, itemsCount)
+                       if err != nil {
+                               t.Errorf("Error decoding bytes: %v", err)
+                       }
+                       if !reflect.DeepEqual(tc.inputSrc, resultInt64) {
+                               t.Errorf("Expected decoded result %v, got %v", 
tc.inputSrc, resultInt64)
+                       }
+               })
+       }
+}

Reply via email to