|
26 | 26 | * Unit tests for {@link OpenAiUsage}.
|
27 | 27 | *
|
28 | 28 | * @author Thomas Vitale
|
| 29 | + * @author Christian Tzolov |
29 | 30 | */
|
30 | 31 | class OpenAiUsageTests {
|
31 | 32 |
|
@@ -76,88 +77,84 @@ void whenPromptAndCompletionTokensDetailsIsNull() {
|
76 | 77 | OpenAiApi.Usage openAiUsage = new OpenAiApi.Usage(100, 200, 300, null, null);
|
77 | 78 | OpenAiUsage usage = OpenAiUsage.from(openAiUsage);
|
78 | 79 | assertThat(usage.getTotalTokens()).isEqualTo(300);
|
79 |
| - assertThat(usage.getCachedTokens()).isEqualTo(0); |
80 |
| - assertThat(usage.getReasoningTokens()).isEqualTo(0); |
81 |
| - } |
82 |
| - |
83 |
| - @Test |
84 |
| - void whenReasoningTokensIsNull() { |
85 |
| - OpenAiApi.Usage openAiUsage = new OpenAiApi.Usage(100, 200, 300, null, |
86 |
| - new OpenAiApi.Usage.CompletionTokenDetails(null, null, null, null)); |
87 |
| - OpenAiUsage usage = OpenAiUsage.from(openAiUsage); |
88 |
| - assertThat(usage.getReasoningTokens()).isEqualTo(0); |
| 80 | + assertThat(usage.getCompletionTokenDetails().reasoningTokens()).isEqualTo(0); |
| 81 | + assertThat(usage.getCompletionTokenDetails().acceptedPredictionTokens()).isEqualTo(0); |
| 82 | + assertThat(usage.getCompletionTokenDetails().audioTokens()).isEqualTo(0); |
| 83 | + assertThat(usage.getCompletionTokenDetails().rejectedPredictionTokens()).isEqualTo(0); |
89 | 84 | }
|
90 | 85 |
|
91 | 86 | @Test
|
92 | 87 | void whenCompletionTokenDetailsIsPresent() {
|
93 | 88 | OpenAiApi.Usage openAiUsage = new OpenAiApi.Usage(100, 200, 300, null,
|
94 | 89 | new OpenAiApi.Usage.CompletionTokenDetails(50, null, null, null));
|
95 | 90 | OpenAiUsage usage = OpenAiUsage.from(openAiUsage);
|
96 |
| - assertThat(usage.getReasoningTokens()).isEqualTo(50); |
97 |
| - } |
98 |
| - |
99 |
| - @Test |
100 |
| - void whenAcceptedPredictionTokensIsNull() { |
101 |
| - OpenAiApi.Usage openAiUsage = new OpenAiApi.Usage(100, 200, 300, null, |
102 |
| - new OpenAiApi.Usage.CompletionTokenDetails(null, null, null, null)); |
103 |
| - OpenAiUsage usage = OpenAiUsage.from(openAiUsage); |
104 |
| - assertThat(usage.getAcceptedPredictionTokens()).isEqualTo(0); |
| 91 | + assertThat(usage.getCompletionTokenDetails().reasoningTokens()).isEqualTo(50); |
| 92 | + assertThat(usage.getCompletionTokenDetails().acceptedPredictionTokens()).isEqualTo(0); |
| 93 | + assertThat(usage.getCompletionTokenDetails().audioTokens()).isEqualTo(0); |
| 94 | + assertThat(usage.getCompletionTokenDetails().rejectedPredictionTokens()).isEqualTo(0); |
105 | 95 | }
|
106 | 96 |
|
107 | 97 | @Test
|
108 | 98 | void whenAcceptedPredictionTokensIsPresent() {
|
109 | 99 | OpenAiApi.Usage openAiUsage = new OpenAiApi.Usage(100, 200, 300, null,
|
110 | 100 | new OpenAiApi.Usage.CompletionTokenDetails(null, 75, null, null));
|
111 | 101 | OpenAiUsage usage = OpenAiUsage.from(openAiUsage);
|
112 |
| - assertThat(usage.getAcceptedPredictionTokens()).isEqualTo(75); |
113 |
| - } |
114 |
| - |
115 |
| - @Test |
116 |
| - void whenAudioTokensIsNull() { |
117 |
| - OpenAiApi.Usage openAiUsage = new OpenAiApi.Usage(100, 200, 300, null, |
118 |
| - new OpenAiApi.Usage.CompletionTokenDetails(null, null, null, null)); |
119 |
| - OpenAiUsage usage = OpenAiUsage.from(openAiUsage); |
120 |
| - assertThat(usage.getAudioTokens()).isEqualTo(0); |
| 102 | + assertThat(usage.getCompletionTokenDetails().reasoningTokens()).isEqualTo(0); |
| 103 | + assertThat(usage.getCompletionTokenDetails().acceptedPredictionTokens()).isEqualTo(75); |
| 104 | + assertThat(usage.getCompletionTokenDetails().audioTokens()).isEqualTo(0); |
| 105 | + assertThat(usage.getCompletionTokenDetails().rejectedPredictionTokens()).isEqualTo(0); |
121 | 106 | }
|
122 | 107 |
|
123 | 108 | @Test
|
124 | 109 | void whenAudioTokensIsPresent() {
|
125 | 110 | OpenAiApi.Usage openAiUsage = new OpenAiApi.Usage(100, 200, 300, null,
|
126 | 111 | new OpenAiApi.Usage.CompletionTokenDetails(null, null, 125, null));
|
127 | 112 | OpenAiUsage usage = OpenAiUsage.from(openAiUsage);
|
128 |
| - assertThat(usage.getAudioTokens()).isEqualTo(125); |
| 113 | + assertThat(usage.getCompletionTokenDetails().reasoningTokens()).isEqualTo(0); |
| 114 | + assertThat(usage.getCompletionTokenDetails().acceptedPredictionTokens()).isEqualTo(0); |
| 115 | + assertThat(usage.getCompletionTokenDetails().audioTokens()).isEqualTo(125); |
| 116 | + assertThat(usage.getCompletionTokenDetails().rejectedPredictionTokens()).isEqualTo(0); |
129 | 117 | }
|
130 | 118 |
|
131 | 119 | @Test
|
132 | 120 | void whenRejectedPredictionTokensIsNull() {
|
133 | 121 | OpenAiApi.Usage openAiUsage = new OpenAiApi.Usage(100, 200, 300, null,
|
134 | 122 | new OpenAiApi.Usage.CompletionTokenDetails(null, null, null, null));
|
135 | 123 | OpenAiUsage usage = OpenAiUsage.from(openAiUsage);
|
136 |
| - assertThat(usage.getRejectedPredictionTokens()).isEqualTo(0); |
| 124 | + assertThat(usage.getCompletionTokenDetails().reasoningTokens()).isEqualTo(0); |
| 125 | + assertThat(usage.getCompletionTokenDetails().acceptedPredictionTokens()).isEqualTo(0); |
| 126 | + assertThat(usage.getCompletionTokenDetails().audioTokens()).isEqualTo(0); |
| 127 | + assertThat(usage.getCompletionTokenDetails().rejectedPredictionTokens()).isEqualTo(0); |
| 128 | + |
137 | 129 | }
|
138 | 130 |
|
139 | 131 | @Test
|
140 | 132 | void whenRejectedPredictionTokensIsPresent() {
|
141 | 133 | OpenAiApi.Usage openAiUsage = new OpenAiApi.Usage(100, 200, 300, null,
|
142 | 134 | new OpenAiApi.Usage.CompletionTokenDetails(null, null, null, 25));
|
143 | 135 | OpenAiUsage usage = OpenAiUsage.from(openAiUsage);
|
144 |
| - assertThat(usage.getRejectedPredictionTokens()).isEqualTo(25); |
| 136 | + assertThat(usage.getCompletionTokenDetails().reasoningTokens()).isEqualTo(0); |
| 137 | + assertThat(usage.getCompletionTokenDetails().acceptedPredictionTokens()).isEqualTo(0); |
| 138 | + assertThat(usage.getCompletionTokenDetails().audioTokens()).isEqualTo(0); |
| 139 | + assertThat(usage.getCompletionTokenDetails().rejectedPredictionTokens()).isEqualTo(25); |
145 | 140 | }
|
146 | 141 |
|
147 | 142 | @Test
|
148 | 143 | void whenCacheTokensIsNull() {
|
149 |
| - OpenAiApi.Usage openAiUsage = new OpenAiApi.Usage(100, 200, 300, new OpenAiApi.Usage.PromptTokensDetails(null), |
150 |
| - null); |
| 144 | + OpenAiApi.Usage openAiUsage = new OpenAiApi.Usage(100, 200, 300, |
| 145 | + new OpenAiApi.Usage.PromptTokensDetails(null, null), null); |
151 | 146 | OpenAiUsage usage = OpenAiUsage.from(openAiUsage);
|
152 |
| - assertThat(usage.getCachedTokens()).isEqualTo(0); |
| 147 | + assertThat(usage.getPromptTokensDetails().audioTokens()).isEqualTo(0); |
| 148 | + assertThat(usage.getPromptTokensDetails().cachedTokens()).isEqualTo(0); |
153 | 149 | }
|
154 | 150 |
|
155 | 151 | @Test
|
156 | 152 | void whenCacheTokensIsPresent() {
|
157 |
| - OpenAiApi.Usage openAiUsage = new OpenAiApi.Usage(100, 200, 300, new OpenAiApi.Usage.PromptTokensDetails(15), |
158 |
| - null); |
| 153 | + OpenAiApi.Usage openAiUsage = new OpenAiApi.Usage(100, 200, 300, |
| 154 | + new OpenAiApi.Usage.PromptTokensDetails(99, 15), null); |
159 | 155 | OpenAiUsage usage = OpenAiUsage.from(openAiUsage);
|
160 |
| - assertThat(usage.getCachedTokens()).isEqualTo(15); |
| 156 | + assertThat(usage.getPromptTokensDetails().audioTokens()).isEqualTo(99); |
| 157 | + assertThat(usage.getPromptTokensDetails().cachedTokens()).isEqualTo(15); |
161 | 158 | }
|
162 | 159 |
|
163 | 160 | }
|
0 commit comments