Skip to content

Commit bed6a7d

Browse files
committed
Clean up of benchmarks
1 parent 7df1e7f commit bed6a7d

File tree

5 files changed

+132
-122
lines changed

5 files changed

+132
-122
lines changed

jsoniter-scala-benchmark/shared/src/main/scala/com/github/plokhotnyuk/jsoniter_scala/benchmark/BorerJsonEncodersDecoders.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import java.util.UUID
66
import java.util.concurrent.ConcurrentHashMap
77
import com.github.plokhotnyuk.jsoniter_scala.benchmark.SuitEnum.SuitEnum
88
import io.bullet.borer.{AdtEncodingStrategy, Codec, Decoder, Encoder, Reader, Writer}
9-
import io.bullet.borer.Borer.Error._
109
import io.bullet.borer.Json.DecodingConfig
1110
import io.bullet.borer.derivation.ArrayBasedCodecs
1211
import io.bullet.borer.derivation.MapBasedCodecs._

jsoniter-scala-benchmark/shared/src/main/scala/com/github/plokhotnyuk/jsoniter_scala/benchmark/CirceEncodersDecoders.scala

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,12 @@ import io.circe.Encoder._
77
import io.circe._
88
import io.circe.generic.semiauto._
99
import io.circe.syntax._
10-
1110
import java.time.Instant
1211
import java.util.Base64
1312
import java.util.concurrent.ConcurrentHashMap
1413
import scala.collection.immutable.{BitSet, IntMap, Map}
1514
import scala.collection.mutable
16-
import scala.util.Try
15+
import scala.util.control.NonFatal
1716

1817
object CirceEncodersDecoders {
1918
val printer: Printer = Printer.noSpaces.copy(dropNullValues = true, reuseWriters = true, predictSize = true)
@@ -755,7 +754,11 @@ object CirceEncodersDecoders {
755754
implicit val missingRequiredFieldsC3c: Codec[MissingRequiredFields] = deriveCodec
756755
implicit val nestedStructsC3c: Codec[NestedStructs] = deriveCodec
757756
implicit val suitC3c: Codec[Suit] =
758-
Codec.from(decodeString.emap(s => Try(Suit.valueOf(s)).fold[Either[String, Suit]](_ => Left("Suit"), Right.apply)),
757+
Codec.from(decodeString.emap(s => {
758+
try new Right(Suit.valueOf(s)) catch {
759+
case NonFatal(_) => new Left("Suit")
760+
}
761+
}),
759762
encodeString.contramap[Suit](_.name))
760763
implicit val suitADTC3c: Codec[SuitADT] = Codec.from(decodeString.map {
761764
val m = Map(
@@ -765,16 +768,19 @@ object CirceEncodersDecoders {
765768
"Clubs" -> Clubs)
766769
s => m.getOrElse(s, throw new IllegalArgumentException("SuitADT"))
767770
}, encodeString.contramap(_.toString))
768-
implicit val suitEnumC3c: Codec[SuitEnum] = Codec.from(decodeString.emapTry {
771+
implicit val suitEnumC3c: Codec[SuitEnum] = Codec.from(decodeString.emap {
769772
val m = new ConcurrentHashMap[String, SuitEnum]
770-
s => Try {
771-
var v = m.get(s)
772-
if (v eq null) {
773-
v = SuitEnum.values.iterator.find(_.toString == s).getOrElse(throw new IllegalArgumentException("SuitEnum"))
774-
m.put(s, v)
773+
s =>
774+
try {
775+
var v = m.get(s)
776+
if (v eq null) {
777+
v = SuitEnum.values.iterator.find(_.toString == s).getOrElse(throw new IllegalArgumentException("SuitEnum"))
778+
m.put(s, v)
779+
}
780+
new Right(v)
781+
} catch {
782+
case NonFatal(_) => new Left("SuitEnum")
775783
}
776-
v
777-
}
778784
}, encodeString.contramap(_.toString))
779785
implicit val primitivesC3c: Codec[Primitives] = deriveCodec
780786
implicit val tweetC3c: Codec[TwitterAPI.Tweet] = {

jsoniter-scala-benchmark/shared/src/main/scala/com/github/plokhotnyuk/jsoniter_scala/benchmark/Json4sFormats.scala

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,37 +47,37 @@ object AnyValsJson4sFormats {
4747
new CustomSerializer[ByteVal](_ => ({
4848
case JInt(x) if x.isValidByte => new ByteVal(x.toByte)
4949
}, {
50-
case x: ByteVal => JInt(BigInt(x.a))
50+
case x: ByteVal => new JLong(x.a.toLong)
5151
})) +
5252
new CustomSerializer[ShortVal](_ => ({
5353
case JInt(x) if x.isValidShort => new ShortVal(x.toShort)
5454
}, {
55-
case x: ShortVal => JInt(BigInt(x.a))
55+
case x: ShortVal => new JLong(x.a.toLong)
5656
})) +
5757
new CustomSerializer[IntVal](_ => ({
5858
case JInt(x) if x.isValidInt => new IntVal(x.toInt)
5959
}, {
60-
case x: IntVal => JInt(x.a)
60+
case x: IntVal => new JLong(x.a.toLong)
6161
})) +
6262
new CustomSerializer[LongVal](_ => ({
63-
case JInt(x) if x.isValidLong => new LongVal(x.toInt)
63+
case JInt(x) if x.isValidLong => new LongVal(x.toLong)
6464
}, {
65-
case x: LongVal => JInt(x.a)
65+
case x: LongVal => new JLong(x.a)
6666
})) +
6767
new CustomSerializer[FloatVal](_ => ({
6868
case JDecimal(x) => new FloatVal(x.toFloat)
6969
}, {
70-
case x: FloatVal => JDecimal(BigDecimal(x.a))
70+
case x: FloatVal => new JDecimal(BigDecimal(x.a))
7171
})) +
7272
new CustomSerializer[DoubleVal](_ => ({
73-
case JDouble(x) => new DoubleVal(x.toFloat)
73+
case JDouble(x) => new DoubleVal(x)
7474
}, {
75-
case x: DoubleVal => JDecimal(x.a)
75+
case x: DoubleVal => new JDecimal(x.a)
7676
})) +
7777
new CustomSerializer[CharVal](_ => ({
7878
case JString(x) if x.length == 1 => new CharVal(x.charAt(0))
7979
}, {
80-
case x: CharVal => JString(x.a.toString)
80+
case x: CharVal => new JString(x.a.toString)
8181
}))
8282
}
8383

@@ -106,10 +106,10 @@ object GeoJsonJson4sFormats {
106106
classOf[GeoJSON.MultiLineString], classOf[GeoJSON.Polygon], classOf[GeoJSON.MultiPolygon],
107107
classOf[GeoJSON.GeometryCollection], classOf[GeoJSON.Feature], classOf[GeoJSON.FeatureCollection]))
108108
} +
109-
new CustomSerializer[Tuple2[Double, Double]](_ => ({
109+
new CustomSerializer[(Double, Double)](_ => ({
110110
case JArray(JDouble(x) :: JDouble(y) :: Nil) => new Tuple2[Double, Double](x, y)
111111
}, {
112-
case (x: Double, y: Double) => JArray(JDouble(x) :: JDouble(y) :: Nil)
112+
case (x: Double, y: Double) => new JArray(new JDouble(x) :: new JDouble(y) :: Nil)
113113
}))
114114
}
115115

0 commit comments

Comments
 (0)