| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package dto
- import (
- "testing"
- "github.com/QuantumNous/new-api/common"
- "github.com/stretchr/testify/require"
- "github.com/tidwall/gjson"
- )
- func TestGeneralOpenAIRequestPreserveExplicitZeroValues(t *testing.T) {
- raw := []byte(`{
- "model":"gpt-4.1",
- "stream":false,
- "max_tokens":0,
- "max_completion_tokens":0,
- "top_p":0,
- "top_k":0,
- "n":0,
- "frequency_penalty":0,
- "presence_penalty":0,
- "seed":0,
- "logprobs":false,
- "top_logprobs":0,
- "dimensions":0,
- "return_images":false,
- "return_related_questions":false
- }`)
- var req GeneralOpenAIRequest
- err := common.Unmarshal(raw, &req)
- require.NoError(t, err)
- encoded, err := common.Marshal(req)
- require.NoError(t, err)
- require.True(t, gjson.GetBytes(encoded, "stream").Exists())
- require.True(t, gjson.GetBytes(encoded, "max_tokens").Exists())
- require.True(t, gjson.GetBytes(encoded, "max_completion_tokens").Exists())
- require.True(t, gjson.GetBytes(encoded, "top_p").Exists())
- require.True(t, gjson.GetBytes(encoded, "top_k").Exists())
- require.True(t, gjson.GetBytes(encoded, "n").Exists())
- require.True(t, gjson.GetBytes(encoded, "frequency_penalty").Exists())
- require.True(t, gjson.GetBytes(encoded, "presence_penalty").Exists())
- require.True(t, gjson.GetBytes(encoded, "seed").Exists())
- require.True(t, gjson.GetBytes(encoded, "logprobs").Exists())
- require.True(t, gjson.GetBytes(encoded, "top_logprobs").Exists())
- require.True(t, gjson.GetBytes(encoded, "dimensions").Exists())
- require.True(t, gjson.GetBytes(encoded, "return_images").Exists())
- require.True(t, gjson.GetBytes(encoded, "return_related_questions").Exists())
- }
- func TestOpenAIResponsesRequestPreserveExplicitZeroValues(t *testing.T) {
- raw := []byte(`{
- "model":"gpt-4.1",
- "max_output_tokens":0,
- "max_tool_calls":0,
- "stream":false,
- "top_p":0
- }`)
- var req OpenAIResponsesRequest
- err := common.Unmarshal(raw, &req)
- require.NoError(t, err)
- encoded, err := common.Marshal(req)
- require.NoError(t, err)
- require.True(t, gjson.GetBytes(encoded, "max_output_tokens").Exists())
- require.True(t, gjson.GetBytes(encoded, "max_tool_calls").Exists())
- require.True(t, gjson.GetBytes(encoded, "stream").Exists())
- require.True(t, gjson.GetBytes(encoded, "top_p").Exists())
- }
|