...

Source file src/github.com/jackc/pgx/v5/pgtype/path_test.go

Documentation: github.com/jackc/pgx/v5/pgtype

     1  package pgtype_test
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/jackc/pgx/v5/pgtype"
     8  	"github.com/jackc/pgx/v5/pgxtest"
     9  )
    10  
    11  func isExpectedEqPath(a any) func(any) bool {
    12  	return func(v any) bool {
    13  		ap := a.(pgtype.Path)
    14  		vp := v.(pgtype.Path)
    15  
    16  		if !(ap.Valid == vp.Valid && ap.Closed == vp.Closed && len(ap.P) == len(vp.P)) {
    17  			return false
    18  		}
    19  
    20  		for i := range ap.P {
    21  			if ap.P[i] != vp.P[i] {
    22  				return false
    23  			}
    24  		}
    25  
    26  		return true
    27  	}
    28  }
    29  
    30  func TestPathTranscode(t *testing.T) {
    31  	skipCockroachDB(t, "Server does not support type path")
    32  
    33  	pgxtest.RunValueRoundTripTests(context.Background(), t, defaultConnTestRunner, nil, "path", []pgxtest.ValueRoundTripTest{
    34  		{
    35  			pgtype.Path{
    36  				P:      []pgtype.Vec2{{3.14, 1.678901234}, {7.1, 5.234}},
    37  				Closed: false,
    38  				Valid:  true,
    39  			},
    40  			new(pgtype.Path),
    41  			isExpectedEqPath(pgtype.Path{
    42  				P:      []pgtype.Vec2{{3.14, 1.678901234}, {7.1, 5.234}},
    43  				Closed: false,
    44  				Valid:  true,
    45  			}),
    46  		},
    47  		{
    48  			pgtype.Path{
    49  				P:      []pgtype.Vec2{{3.14, 1.678}, {7.1, 5.234}, {23.1, 9.34}},
    50  				Closed: true,
    51  				Valid:  true,
    52  			},
    53  			new(pgtype.Path),
    54  			isExpectedEqPath(pgtype.Path{
    55  				P:      []pgtype.Vec2{{3.14, 1.678}, {7.1, 5.234}, {23.1, 9.34}},
    56  				Closed: true,
    57  				Valid:  true,
    58  			}),
    59  		},
    60  		{
    61  			pgtype.Path{
    62  				P:      []pgtype.Vec2{{7.1, 1.678}, {-13.14, -5.234}},
    63  				Closed: true,
    64  				Valid:  true,
    65  			},
    66  			new(pgtype.Path),
    67  			isExpectedEqPath(pgtype.Path{
    68  				P:      []pgtype.Vec2{{7.1, 1.678}, {-13.14, -5.234}},
    69  				Closed: true,
    70  				Valid:  true,
    71  			}),
    72  		},
    73  		{pgtype.Path{}, new(pgtype.Path), isExpectedEqPath(pgtype.Path{})},
    74  		{nil, new(pgtype.Path), isExpectedEqPath(pgtype.Path{})},
    75  	})
    76  }
    77  

View as plain text