| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package dto
- import (
- "testing"
- "github.com/QuantumNous/new-api/common"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- )
- func TestGeminiChatGenerationConfigPreservesExplicitZeroValuesCamelCase(t *testing.T) {
- raw := []byte(`{
- "contents":[{"role":"user","parts":[{"text":"hello"}]}],
- "generationConfig":{
- "topP":0,
- "topK":0,
- "maxOutputTokens":0,
- "candidateCount":0,
- "seed":0,
- "responseLogprobs":false
- }
- }`)
- var req GeminiChatRequest
- require.NoError(t, common.Unmarshal(raw, &req))
- encoded, err := common.Marshal(req)
- require.NoError(t, err)
- var out map[string]any
- require.NoError(t, common.Unmarshal(encoded, &out))
- generationConfig, ok := out["generationConfig"].(map[string]any)
- require.True(t, ok)
- assert.Contains(t, generationConfig, "topP")
- assert.Contains(t, generationConfig, "topK")
- assert.Contains(t, generationConfig, "maxOutputTokens")
- assert.Contains(t, generationConfig, "candidateCount")
- assert.Contains(t, generationConfig, "seed")
- assert.Contains(t, generationConfig, "responseLogprobs")
- assert.Equal(t, float64(0), generationConfig["topP"])
- assert.Equal(t, float64(0), generationConfig["topK"])
- assert.Equal(t, float64(0), generationConfig["maxOutputTokens"])
- assert.Equal(t, float64(0), generationConfig["candidateCount"])
- assert.Equal(t, float64(0), generationConfig["seed"])
- assert.Equal(t, false, generationConfig["responseLogprobs"])
- }
- func TestGeminiChatGenerationConfigPreservesExplicitZeroValuesSnakeCase(t *testing.T) {
- raw := []byte(`{
- "contents":[{"role":"user","parts":[{"text":"hello"}]}],
- "generationConfig":{
- "top_p":0,
- "top_k":0,
- "max_output_tokens":0,
- "candidate_count":0,
- "seed":0,
- "response_logprobs":false
- }
- }`)
- var req GeminiChatRequest
- require.NoError(t, common.Unmarshal(raw, &req))
- encoded, err := common.Marshal(req)
- require.NoError(t, err)
- var out map[string]any
- require.NoError(t, common.Unmarshal(encoded, &out))
- generationConfig, ok := out["generationConfig"].(map[string]any)
- require.True(t, ok)
- assert.Contains(t, generationConfig, "topP")
- assert.Contains(t, generationConfig, "topK")
- assert.Contains(t, generationConfig, "maxOutputTokens")
- assert.Contains(t, generationConfig, "candidateCount")
- assert.Contains(t, generationConfig, "seed")
- assert.Contains(t, generationConfig, "responseLogprobs")
- assert.Equal(t, float64(0), generationConfig["topP"])
- assert.Equal(t, float64(0), generationConfig["topK"])
- assert.Equal(t, float64(0), generationConfig["maxOutputTokens"])
- assert.Equal(t, float64(0), generationConfig["candidateCount"])
- assert.Equal(t, float64(0), generationConfig["seed"])
- assert.Equal(t, false, generationConfig["responseLogprobs"])
- }
|