github.com/goshafaq/sonic@v0.0.0-20231026082336-871835fb94c6/encoder/testdata_test.go (about) 1 /* 2 * Copyright 2021 ByteDance Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package encoder 18 19 import ( 20 "os" 21 ) 22 23 var ( 24 debugSyncGC = os.Getenv("SONIC_SYNC_GC") != "" 25 debugAsyncGC = os.Getenv("SONIC_NO_ASYNC_GC") == "" 26 ) 27 28 const TwitterJson = `{ 29 "statuses": [ 30 { 31 "coordinates": null, 32 "favorited": false, 33 "truncated": false, 34 "created_at": "Mon Sep 24 03:35:21 +0000 2012", 35 "id_str": "250075927172759552", 36 "entities": { 37 "urls": [ 38 39 ], 40 "hashtags": [ 41 { 42 "text": "freebandnames", 43 "indices": [ 44 20, 45 34 46 ] 47 } 48 ], 49 "user_mentions": [ 50 51 ] 52 }, 53 "in_reply_to_user_id_str": null, 54 "contributors": null, 55 "text": "Aggressive Ponytail #freebandnames", 56 "metadata": { 57 "iso_language_code": "en", 58 "result_type": "recent" 59 }, 60 "retweet_count": 0, 61 "in_reply_to_status_id_str": null, 62 "id": 250075927172759552, 63 "geo": null, 64 "retweeted": false, 65 "in_reply_to_user_id": null, 66 "place": null, 67 "user": { 68 "profile_sidebar_fill_color": "DDEEF6", 69 "profile_sidebar_border_color": "C0DEED", 70 "profile_background_tile": false, 71 "name": "Sean Cummings", 72 "profile_image_url": "https://a0.twimg.com/profile_images/2359746665/1v6zfgqo8g0d3mk7ii5s_normal.jpeg", 73 "created_at": "Mon Apr 26 06:01:55 +0000 2010", 74 "location": "LA, CA", 75 "follow_request_sent": null, 76 "profile_link_color": "0084B4", 77 "is_translator": false, 78 "id_str": "137238150", 79 "entities": { 80 "url": { 81 "urls": [ 82 { 83 "expanded_url": null, 84 "url": "", 85 "indices": [ 86 0, 87 0 88 ] 89 } 90 ] 91 }, 92 "description": { 93 "urls": [ 94 95 ] 96 } 97 }, 98 "default_profile": true, 99 "contributors_enabled": false, 100 "favourites_count": 0, 101 "url": null, 102 "profile_image_url_https": "https://si0.twimg.com/profile_images/2359746665/1v6zfgqo8g0d3mk7ii5s_normal.jpeg", 103 "utc_offset": -28800, 104 "id": 137238150, 105 "profile_use_background_image": true, 106 "listed_count": 2, 107 "profile_text_color": "333333", 108 "lang": "en", 109 "followers_count": 70, 110 "protected": false, 111 "notifications": null, 112 "profile_background_image_url_https": "https://si0.twimg.com/images/themes/theme1/bg.png", 113 "profile_background_color": "C0DEED", 114 "verified": false, 115 "geo_enabled": true, 116 "time_zone": "Pacific Time (US & Canada)", 117 "description": "Born 330 Live 310", 118 "default_profile_image": false, 119 "profile_background_image_url": "https://a0.twimg.com/images/themes/theme1/bg.png", 120 "statuses_count": 579, 121 "friends_count": 110, 122 "following": null, 123 "show_all_inline_media": false, 124 "screen_name": "sean_cummings" 125 }, 126 "in_reply_to_screen_name": null, 127 "source": "<a href=\"//itunes.apple.com/us/app/twitter/id409789998?mt=12%5C%22\" rel=\"\\\"nofollow\\\"\">Twitter for Mac</a>", 128 "in_reply_to_status_id": null 129 }, 130 { 131 "coordinates": null, 132 "favorited": false, 133 "truncated": false, 134 "created_at": "Fri Sep 21 23:40:54 +0000 2012", 135 "id_str": "249292149810667520", 136 "entities": { 137 "urls": [ 138 139 ], 140 "hashtags": [ 141 { 142 "text": "FreeBandNames", 143 "indices": [ 144 20, 145 34 146 ] 147 } 148 ], 149 "user_mentions": [ 150 151 ] 152 }, 153 "in_reply_to_user_id_str": null, 154 "contributors": null, 155 "text": "Thee Namaste Nerdz. #FreeBandNames", 156 "metadata": { 157 "iso_language_code": "pl", 158 "result_type": "recent" 159 }, 160 "retweet_count": 0, 161 "in_reply_to_status_id_str": null, 162 "id": 249292149810667520, 163 "geo": null, 164 "retweeted": false, 165 "in_reply_to_user_id": null, 166 "place": null, 167 "user": { 168 "profile_sidebar_fill_color": "DDFFCC", 169 "profile_sidebar_border_color": "BDDCAD", 170 "profile_background_tile": true, 171 "name": "Chaz Martenstein", 172 "profile_image_url": "https://a0.twimg.com/profile_images/447958234/Lichtenstein_normal.jpg", 173 "created_at": "Tue Apr 07 19:05:07 +0000 2009", 174 "location": "Durham, NC", 175 "follow_request_sent": null, 176 "profile_link_color": "0084B4", 177 "is_translator": false, 178 "id_str": "29516238", 179 "entities": { 180 "url": { 181 "urls": [ 182 { 183 "expanded_url": null, 184 "url": "https://bullcityrecords.com/wnng/", 185 "indices": [ 186 0, 187 32 188 ] 189 } 190 ] 191 }, 192 "description": { 193 "urls": [ 194 195 ] 196 } 197 }, 198 "default_profile": false, 199 "contributors_enabled": false, 200 "favourites_count": 8, 201 "url": "https://bullcityrecords.com/wnng/", 202 "profile_image_url_https": "https://si0.twimg.com/profile_images/447958234/Lichtenstein_normal.jpg", 203 "utc_offset": -18000, 204 "id": 29516238, 205 "profile_use_background_image": true, 206 "listed_count": 118, 207 "profile_text_color": "333333", 208 "lang": "en", 209 "followers_count": 2052, 210 "protected": false, 211 "notifications": null, 212 "profile_background_image_url_https": "https://si0.twimg.com/profile_background_images/9423277/background_tile.bmp", 213 "profile_background_color": "9AE4E8", 214 "verified": false, 215 "geo_enabled": false, 216 "time_zone": "Eastern Time (US & Canada)", 217 "description": "You will come to Durham, North Carolina. I will sell you some records then, here in Durham, North Carolina. Fun will happen.", 218 "default_profile_image": false, 219 "profile_background_image_url": "https://a0.twimg.com/profile_background_images/9423277/background_tile.bmp", 220 "statuses_count": 7579, 221 "friends_count": 348, 222 "following": null, 223 "show_all_inline_media": true, 224 "screen_name": "bullcityrecords" 225 }, 226 "in_reply_to_screen_name": null, 227 "source": "web", 228 "in_reply_to_status_id": null 229 }, 230 { 231 "coordinates": null, 232 "favorited": false, 233 "truncated": false, 234 "created_at": "Fri Sep 21 23:30:20 +0000 2012", 235 "id_str": "249289491129438208", 236 "entities": { 237 "urls": [ 238 239 ], 240 "hashtags": [ 241 { 242 "text": "freebandnames", 243 "indices": [ 244 29, 245 43 246 ] 247 } 248 ], 249 "user_mentions": [ 250 251 ] 252 }, 253 "in_reply_to_user_id_str": null, 254 "contributors": null, 255 "text": "Mexican Heaven, Mexican Hell #freebandnames", 256 "metadata": { 257 "iso_language_code": "en", 258 "result_type": "recent" 259 }, 260 "retweet_count": 0, 261 "in_reply_to_status_id_str": null, 262 "id": 249289491129438208, 263 "geo": null, 264 "retweeted": false, 265 "in_reply_to_user_id": null, 266 "place": null, 267 "user": { 268 "profile_sidebar_fill_color": "99CC33", 269 "profile_sidebar_border_color": "829D5E", 270 "profile_background_tile": false, 271 "name": "Thomas John Wakeman", 272 "profile_image_url": "https://a0.twimg.com/profile_images/2219333930/Froggystyle_normal.png", 273 "created_at": "Tue Sep 01 21:21:35 +0000 2009", 274 "location": "Kingston New York", 275 "follow_request_sent": null, 276 "profile_link_color": "D02B55", 277 "is_translator": false, 278 "id_str": "70789458", 279 "entities": { 280 "url": { 281 "urls": [ 282 { 283 "expanded_url": null, 284 "url": "", 285 "indices": [ 286 0, 287 0 288 ] 289 } 290 ] 291 }, 292 "description": { 293 "urls": [ 294 295 ] 296 } 297 }, 298 "default_profile": false, 299 "contributors_enabled": false, 300 "favourites_count": 19, 301 "url": null, 302 "profile_image_url_https": "https://si0.twimg.com/profile_images/2219333930/Froggystyle_normal.png", 303 "utc_offset": -18000, 304 "id": 70789458, 305 "profile_use_background_image": true, 306 "listed_count": 1, 307 "profile_text_color": "3E4415", 308 "lang": "en", 309 "followers_count": 63, 310 "protected": false, 311 "notifications": null, 312 "profile_background_image_url_https": "https://si0.twimg.com/images/themes/theme5/bg.gif", 313 "profile_background_color": "352726", 314 "verified": false, 315 "geo_enabled": false, 316 "time_zone": "Eastern Time (US & Canada)", 317 "description": "Science Fiction Writer, sort of. Likes Superheroes, Mole People, Alt. Timelines.", 318 "default_profile_image": false, 319 "profile_background_image_url": "https://a0.twimg.com/images/themes/theme5/bg.gif", 320 "statuses_count": 1048, 321 "friends_count": 63, 322 "following": null, 323 "show_all_inline_media": false, 324 "screen_name": "MonkiesFist" 325 }, 326 "in_reply_to_screen_name": null, 327 "source": "web", 328 "in_reply_to_status_id": null 329 }, 330 { 331 "coordinates": null, 332 "favorited": false, 333 "truncated": false, 334 "created_at": "Fri Sep 21 22:51:18 +0000 2012", 335 "id_str": "249279667666817024", 336 "entities": { 337 "urls": [ 338 339 ], 340 "hashtags": [ 341 { 342 "text": "freebandnames", 343 "indices": [ 344 20, 345 34 346 ] 347 } 348 ], 349 "user_mentions": [ 350 351 ] 352 }, 353 "in_reply_to_user_id_str": null, 354 "contributors": null, 355 "text": "The Foolish Mortals #freebandnames", 356 "metadata": { 357 "iso_language_code": "en", 358 "result_type": "recent" 359 }, 360 "retweet_count": 0, 361 "in_reply_to_status_id_str": null, 362 "id": 249279667666817024, 363 "geo": null, 364 "retweeted": false, 365 "in_reply_to_user_id": null, 366 "place": null, 367 "user": { 368 "profile_sidebar_fill_color": "BFAC83", 369 "profile_sidebar_border_color": "615A44", 370 "profile_background_tile": true, 371 "name": "Marty Elmer", 372 "profile_image_url": "https://a0.twimg.com/profile_images/1629790393/shrinker_2000_trans_normal.png", 373 "created_at": "Mon May 04 00:05:00 +0000 2009", 374 "location": "Wisconsin, USA", 375 "follow_request_sent": null, 376 "profile_link_color": "3B2A26", 377 "is_translator": false, 378 "id_str": "37539828", 379 "entities": { 380 "url": { 381 "urls": [ 382 { 383 "expanded_url": null, 384 "url": "https://www.omnitarian.me", 385 "indices": [ 386 0, 387 24 388 ] 389 } 390 ] 391 }, 392 "description": { 393 "urls": [ 394 395 ] 396 } 397 }, 398 "default_profile": false, 399 "contributors_enabled": false, 400 "favourites_count": 647, 401 "url": "https://www.omnitarian.me", 402 "profile_image_url_https": "https://si0.twimg.com/profile_images/1629790393/shrinker_2000_trans_normal.png", 403 "utc_offset": -21600, 404 "id": 37539828, 405 "profile_use_background_image": true, 406 "listed_count": 52, 407 "profile_text_color": "000000", 408 "lang": "en", 409 "followers_count": 608, 410 "protected": false, 411 "notifications": null, 412 "profile_background_image_url_https": "https://si0.twimg.com/profile_background_images/106455659/rect6056-9.png", 413 "profile_background_color": "EEE3C4", 414 "verified": false, 415 "geo_enabled": false, 416 "time_zone": "Central Time (US & Canada)", 417 "description": "Cartoonist, Illustrator, and T-Shirt connoisseur", 418 "default_profile_image": false, 419 "profile_background_image_url": "https://a0.twimg.com/profile_background_images/106455659/rect6056-9.png", 420 "statuses_count": 3575, 421 "friends_count": 249, 422 "following": null, 423 "show_all_inline_media": true, 424 "screen_name": "Omnitarian" 425 }, 426 "in_reply_to_screen_name": null, 427 "source": "<a href=\"//twitter.com/download/iphone%5C%22\" rel=\"\\\"nofollow\\\"\">Twitter for iPhone</a>", 428 "in_reply_to_status_id": null 429 } 430 ], 431 "search_metadata": { 432 "max_id": 250126199840518145, 433 "since_id": 24012619984051000, 434 "refresh_url": "?since_id=250126199840518145&q=%23freebandnames&result_type=mixed&include_entities=1", 435 "next_results": "?max_id=249279667666817023&q=%23freebandnames&count=4&include_entities=1&result_type=mixed", 436 "count": 4, 437 "completed_in": 0.035, 438 "since_id_str": "24012619984051000", 439 "query": "%23freebandnames", 440 "max_id_str": "250126199840518145" 441 } 442 }` 443 444 type TwitterStruct struct { 445 Statuses []Statuses `json:"statuses"` 446 SearchMetadata SearchMetadata `json:"search_metadata"` 447 } 448 449 type Hashtags struct { 450 Text string `json:"text"` 451 Indices []int `json:"indices"` 452 } 453 454 type Entities struct { 455 Urls []interface{} `json:"urls"` 456 Hashtags []Hashtags `json:"hashtags"` 457 UserMentions []interface{} `json:"user_mentions"` 458 } 459 460 type Metadata struct { 461 IsoLanguageCode string `json:"iso_language_code"` 462 ResultType string `json:"result_type"` 463 } 464 465 type Urls struct { 466 ExpandedURL interface{} `json:"expanded_url"` 467 URL string `json:"url"` 468 Indices []int `json:"indices"` 469 } 470 471 type URL struct { 472 Urls []Urls `json:"urls"` 473 } 474 475 type Description struct { 476 Urls []interface{} `json:"urls"` 477 } 478 479 type UserEntities struct { 480 URL URL `json:"url"` 481 Description Description `json:"description"` 482 } 483 484 type User struct { 485 ProfileSidebarFillColor string `json:"profile_sidebar_fill_color"` 486 ProfileSidebarBorderColor string `json:"profile_sidebar_border_color"` 487 ProfileBackgroundTile bool `json:"profile_background_tile"` 488 Name string `json:"name"` 489 ProfileImageURL string `json:"profile_image_url"` 490 CreatedAt string `json:"created_at"` 491 Location string `json:"location"` 492 FollowRequestSent interface{} `json:"follow_request_sent"` 493 ProfileLinkColor string `json:"profile_link_color"` 494 IsTranslator bool `json:"is_translator"` 495 IDStr string `json:"id_str"` 496 Entities UserEntities `json:"entities"` 497 DefaultProfile bool `json:"default_profile"` 498 ContributorsEnabled bool `json:"contributors_enabled"` 499 FavouritesCount int `json:"favourites_count"` 500 URL interface{} `json:"url"` 501 ProfileImageURLHTTPS string `json:"profile_image_url_https"` 502 UtcOffset int `json:"utc_offset"` 503 ID int `json:"id"` 504 ProfileUseBackgroundImage bool `json:"profile_use_background_image"` 505 ListedCount int `json:"listed_count"` 506 ProfileTextColor string `json:"profile_text_color"` 507 Lang string `json:"lang"` 508 FollowersCount int `json:"followers_count"` 509 Protected bool `json:"protected"` 510 Notifications interface{} `json:"notifications"` 511 ProfileBackgroundImageURLHTTPS string `json:"profile_background_image_url_https"` 512 ProfileBackgroundColor string `json:"profile_background_color"` 513 Verified bool `json:"verified"` 514 GeoEnabled bool `json:"geo_enabled"` 515 TimeZone string `json:"time_zone"` 516 Description string `json:"description"` 517 DefaultProfileImage bool `json:"default_profile_image"` 518 ProfileBackgroundImageURL string `json:"profile_background_image_url"` 519 StatusesCount int `json:"statuses_count"` 520 FriendsCount int `json:"friends_count"` 521 Following interface{} `json:"following"` 522 ShowAllInlineMedia bool `json:"show_all_inline_media"` 523 ScreenName string `json:"screen_name"` 524 } 525 526 type Statuses struct { 527 Coordinates interface{} `json:"coordinates"` 528 Favorited bool `json:"favorited"` 529 Truncated bool `json:"truncated"` 530 CreatedAt string `json:"created_at"` 531 IDStr string `json:"id_str"` 532 Entities Entities `json:"entities"` 533 InReplyToUserIDStr interface{} `json:"in_reply_to_user_id_str"` 534 Contributors interface{} `json:"contributors"` 535 Text string `json:"text"` 536 Metadata Metadata `json:"metadata"` 537 RetweetCount int `json:"retweet_count"` 538 InReplyToStatusIDStr interface{} `json:"in_reply_to_status_id_str"` 539 ID int64 `json:"id"` 540 Geo interface{} `json:"geo"` 541 Retweeted bool `json:"retweeted"` 542 InReplyToUserID interface{} `json:"in_reply_to_user_id"` 543 Place interface{} `json:"place"` 544 User User `json:"user"` 545 InReplyToScreenName interface{} `json:"in_reply_to_screen_name"` 546 Source string `json:"source"` 547 InReplyToStatusID interface{} `json:"in_reply_to_status_id"` 548 } 549 550 type SearchMetadata struct { 551 MaxID int64 `json:"max_id"` 552 SinceID int64 `json:"since_id"` 553 RefreshURL string `json:"refresh_url"` 554 NextResults string `json:"next_results"` 555 Count int `json:"count"` 556 CompletedIn float64 `json:"completed_in"` 557 SinceIDStr string `json:"since_id_str"` 558 Query string `json:"query"` 559 MaxIDStr string `json:"max_id_str"` 560 }