214 lines
5.0 KiB
Go
214 lines
5.0 KiB
Go
// Copyright 2017 Google Inc.
|
||
//
|
||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||
// you may not use this file except in compliance with the License.
|
||
// You may obtain a copy of the License at
|
||
//
|
||
// http://www.apache.org/licenses/LICENSE-2.0
|
||
//
|
||
// Unless required by applicable law or agreed to in writing, software
|
||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
// See the License for the specific language governing permissions and
|
||
// limitations under the License.
|
||
package sets
|
||
|
||
import (
|
||
"strings"
|
||
"testing"
|
||
)
|
||
|
||
const (
|
||
postmodernThesisCollapse = `1. Expressions of collapse
|
||
|
||
If one examines postcultural Marxism, one is faced with a choice: either
|
||
reject capitalist submodern theory or conclude that the purpose of the reader
|
||
is significant form. Bataille uses the term ‘capitalist construction’ to denote
|
||
not, in fact, discourse, but prediscourse.
|
||
|
||
Therefore, in Stardust, Gaiman analyses postcultural Marxism; in
|
||
The Books of Magic, although, he denies capitalist submodern theory. If
|
||
capitalist construction holds, we have to choose between capitalist submodern
|
||
theory and Baudrillardist simulacra.
|
||
|
||
However, conceptualist socialism implies that narrativity may be used to
|
||
oppress the proletariat, given that sexuality is distinct from art. The subject
|
||
is interpolated into a capitalist construction that includes language as a
|
||
paradox.
|
||
`
|
||
postmodernThesisNarratives = `1. Narratives of failure
|
||
|
||
The main theme of the works of Joyce is the defining characteristic, and some
|
||
would say the economy, of neocultural class. But Bataille promotes the use of
|
||
socialist realism to deconstruct sexual identity.
|
||
|
||
The subject is interpolated into a Baudrillardist simulation that includes
|
||
consciousness as a whole. Thus, the primary theme of Pickett's[1] model of
|
||
socialist realism is the role of the reader as artist.
|
||
|
||
The subject is contextualised into a postcapitalist discourse that includes
|
||
language as a paradox. It could be said that if Baudrillardist simulation
|
||
holds, the works of Gibson are postmodern. The characteristic theme of the
|
||
works of Gibson is the common ground between society and narrativity. However,
|
||
Sartre uses the term 'postcapitalist discourse' to denote not, in fact,
|
||
narrative, but postnarrative.
|
||
`
|
||
)
|
||
|
||
var (
|
||
// Word lists:
|
||
stringsA = strings.Fields(postmodernThesisCollapse)
|
||
stringsB = strings.Fields(postmodernThesisNarratives)
|
||
)
|
||
|
||
func BenchmarkStringSets_NewStringSet(b *testing.B) {
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
NewStringSet(stringsA...)
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Copy(b *testing.B) {
|
||
s := NewStringSet(stringsA...)
|
||
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s.Copy()
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Insert(b *testing.B) {
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s := NewStringSet()
|
||
s.Insert(stringsA...)
|
||
s.Insert(stringsB...)
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Delete(b *testing.B) {
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s := NewStringSet(stringsA...)
|
||
s.Delete(stringsB...)
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Intersect(b *testing.B) {
|
||
s := NewStringSet(stringsA...)
|
||
t := NewStringSet(stringsB...)
|
||
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s.Intersect(t)
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Disjoint(b *testing.B) {
|
||
s := NewStringSet(stringsA...)
|
||
t := NewStringSet(stringsB...)
|
||
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s.Disjoint(t)
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Difference(b *testing.B) {
|
||
s := NewStringSet(stringsA...)
|
||
t := NewStringSet(stringsB...)
|
||
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s.Difference(t)
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Unique(b *testing.B) {
|
||
s := NewStringSet(stringsA...)
|
||
t := NewStringSet(stringsB...)
|
||
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s.Unique(t)
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Equal(b *testing.B) {
|
||
s := NewStringSet(stringsA...)
|
||
t := NewStringSet(stringsB...)
|
||
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s.Equal(t)
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Union(b *testing.B) {
|
||
s := NewStringSet(stringsA...)
|
||
t := NewStringSet(stringsB...)
|
||
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s.Union(t)
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Contains(b *testing.B) {
|
||
s := NewStringSet(stringsA...)
|
||
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
for _, w := range stringsB {
|
||
s.Contains(w)
|
||
}
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Len(b *testing.B) {
|
||
s := NewStringSet(stringsA...)
|
||
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s.Len()
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Empty(b *testing.B) {
|
||
s := NewStringSet(stringsA...)
|
||
t := NewStringSet()
|
||
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s.Empty()
|
||
t.Empty()
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Elements(b *testing.B) {
|
||
s := NewStringSet(stringsA...)
|
||
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s.Elements()
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_Sorted(b *testing.B) {
|
||
s := NewStringSet(stringsA...)
|
||
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s.Sorted()
|
||
}
|
||
}
|
||
|
||
func BenchmarkStringSets_String(b *testing.B) {
|
||
s := NewStringSet(stringsA...)
|
||
|
||
b.ResetTimer()
|
||
for i := 0; i < b.N; i++ {
|
||
s.String()
|
||
}
|
||
}
|