|
| 1 | +package gpy |
| 2 | + |
| 3 | +import ( |
| 4 | + "strings" |
| 5 | + "testing" |
| 6 | +) |
| 7 | + |
| 8 | +var hans500 = strings.Replace(strings.Replace(` |
| 9 | +的、一、是、在、不、了、有、和、人、这、中、大、为、上、个、国、我、以、要、他、 |
| 10 | +时、来、用、们、生、到、作、地、于、出、就、分、对、成、会、可、主、发、年、动、 |
| 11 | +同、工、也、能、下、过、子、说、产、种、面、而、方、后、多、定、行、学、法、所、 |
| 12 | +民、得、经、十、三、之、进、着、等、部、度、家、电、力、里、如、水、化、高、自、 |
| 13 | +二、理、起、小、物、现、实、加、量、都、两、体、制、机、当、使、点、从、业、本、 |
| 14 | +去、把、性、好、应、开、它、合、还、因、由、其、些、然、前、外、天、政、四、日、 |
| 15 | +那、社、义、事、平、形、相、全、表、间、样、与、关、各、重、新、线、内、数、正、 |
| 16 | +心、反、你、明、看、原、又、么、利、比、或、但、质、气、第、向、道、命、此、变、 |
| 17 | +条、只、没、结、解、问、意、建、月、公、无、系、军、很、情、者、最、立、代、想、 |
| 18 | +已、通、并、提、直、题、党、程、展、五、果、料、象、员、革、位、入、常、文、总、 |
| 19 | +次、品、式、活、设、及、管、特、件、长、求、老、头、基、资、边、流、路、级、少、 |
| 20 | +图、山、统、接、知、较、将、组、见、计、别、她、手、角、期、根、论、运、农、指、 |
| 21 | +几、九、区、强、放、决、西、被、干、做、必、战、先、回、则、任、取、据、处、队、 |
| 22 | +南、给、色、光、门、即、保、治、北、造、百、规、热、领、七、海、口、东、导、器、 |
| 23 | +压、志、世、金、增、争、济、阶、油、思、术、极、交、受、联、什、认、六、共、权、 |
| 24 | +收、证、改、清、己、美、再、采、转、更、单、风、切、打、白、教、速、花、带、安、 |
| 25 | +场、身、车、例、真、务、具、万、每、目、至、达、走、积、示、议、声、报、斗、完、 |
| 26 | +类、八、离、华、名、确、才、科、张、信、马、节、话、米、整、空、元、况、今、集、 |
| 27 | +温、传、土、许、步、群、广、石、记、需、段、研、界、拉、林、律、叫、且、究、观、 |
| 28 | +越、织、装、影、算、低、持、音、众、书、布、复、容、儿、须、际、商、非、验、连、 |
| 29 | +断、深、难、近、矿、千、周、委、素、技、备、半、办、青、省、列、习、响、约、支、 |
| 30 | +般、史、感、劳、便、团、往、酸、历、市、克、何、除、消、构、府、称、太、准、精、 |
| 31 | +值、号、率、族、维、划、选、标、写、存、候、毛、亲、快、效、斯、院、查、江、型、 |
| 32 | +眼、王、按、格、养、易、置、派、层、片、始、却、专、状、育、厂、京、识、适、属、 |
| 33 | +圆、包、火、住、调、满、县、局、照、参、红、细、引、听、该、铁、价、严、龙、飞 |
| 34 | +`, "、", "", -1), "\n", "", -1) |
| 35 | + |
| 36 | +func benchmarkPinyin(b *testing.B, s string, args Args) { |
| 37 | + b.StopTimer() |
| 38 | + b.StartTimer() |
| 39 | + |
| 40 | + for i := 0; i < b.N; i++ { |
| 41 | + Pinyin(s, args) |
| 42 | + } |
| 43 | +} |
| 44 | + |
| 45 | +func benchmarkLazyPinyin(b *testing.B, s string, args Args) { |
| 46 | + b.StopTimer() |
| 47 | + b.StartTimer() |
| 48 | + |
| 49 | + for i := 0; i < b.N; i++ { |
| 50 | + LazyPinyin(s, args) |
| 51 | + } |
| 52 | +} |
| 53 | + |
| 54 | +func BenchmarkPinyinOne(b *testing.B) { |
| 55 | + args := NewArgs() |
| 56 | + benchmarkPinyin(b, "中", args) |
| 57 | +} |
| 58 | + |
| 59 | +func BenchmarkPinyin500(b *testing.B) { |
| 60 | + args := NewArgs() |
| 61 | + benchmarkPinyin(b, hans500, args) |
| 62 | +} |
| 63 | + |
| 64 | +func BenchmarkLazyPinyinOne(b *testing.B) { |
| 65 | + args := NewArgs() |
| 66 | + benchmarkLazyPinyin(b, "中", args) |
| 67 | +} |
| 68 | + |
| 69 | +func BenchmarkLazyPinyin500(b *testing.B) { |
| 70 | + args := NewArgs() |
| 71 | + benchmarkLazyPinyin(b, hans500, args) |
| 72 | +} |
0 commit comments