Massive refactoring of quartz to prepare for nip-based packages.

This commit is contained in:
Vitor Pamplona
2025-01-13 10:38:45 -05:00
parent 1430ba4745
commit d2b731e372
592 changed files with 7710 additions and 5334 deletions
@@ -29,8 +29,8 @@ import com.vitorpamplona.amethyst.commons.richtext.HashTagSegment
import com.vitorpamplona.amethyst.commons.richtext.ImageSegment
import com.vitorpamplona.amethyst.commons.richtext.LinkSegment
import com.vitorpamplona.amethyst.commons.richtext.RichTextParser
import com.vitorpamplona.quartz.events.EmptyTagList
import com.vitorpamplona.quartz.events.ImmutableListOfLists
import com.vitorpamplona.quartz.nip02FollowList.EmptyTagList
import com.vitorpamplona.quartz.nip02FollowList.ImmutableListOfLists
import junit.framework.TestCase.assertNull
import junit.framework.TestCase.assertTrue
import org.junit.Rule
@@ -23,9 +23,9 @@ package com.vitorpamplona.quartz.benchmark
import androidx.benchmark.junit4.BenchmarkRule
import androidx.benchmark.junit4.measureRepeated
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.vitorpamplona.quartz.encoders.Hex
import com.vitorpamplona.quartz.encoders.bechToBytes
import com.vitorpamplona.quartz.encoders.toNpub
import com.vitorpamplona.quartz.crypto.Hex
import com.vitorpamplona.quartz.nip19Bech32Entities.bech32.bechToBytes
import com.vitorpamplona.quartz.nip19Bech32Entities.toNpub
import junit.framework.TestCase.assertEquals
import org.junit.Rule
import org.junit.Test
@@ -26,8 +26,9 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import com.fasterxml.jackson.module.kotlin.readValue
import com.vitorpamplona.amethyst.commons.data.LargeCache
import com.vitorpamplona.quartz.encoders.HexKey
import com.vitorpamplona.quartz.events.Event
import com.vitorpamplona.quartz.nip01Core.HexKey
import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper
import org.junit.Assert.assertTrue
import org.junit.Rule
import org.junit.Test
@@ -43,7 +44,7 @@ open class BaseCacheBenchmark {
// This file includes duplicates
val fullDBInputStream = getInstrumentation().context.assets.open("nostr_vitor_startup_data.json")
return Event.mapper.readValue<ArrayList<Event>>(
return EventMapper.mapper.readValue<ArrayList<Event>>(
GZIPInputStream(fullDBInputStream),
)
}
@@ -23,8 +23,9 @@ package com.vitorpamplona.quartz.benchmark
import androidx.benchmark.junit4.BenchmarkRule
import androidx.benchmark.junit4.measureRepeated
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.vitorpamplona.quartz.events.Event
import com.vitorpamplona.quartz.events.EventFactory
import com.vitorpamplona.quartz.nip01Core.EventFactory
import com.vitorpamplona.quartz.nip01Core.hasValidSignature
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper
import com.vitorpamplona.quartz.utils.TimeUtils
import junit.framework.TestCase.assertTrue
import org.junit.Rule
@@ -43,20 +44,20 @@ class EventBenchmark {
@Test
fun parseREQString() {
benchmarkRule.measureRepeated { Event.mapper.readTree(reqResponseEvent) }
benchmarkRule.measureRepeated { EventMapper.mapper.readTree(reqResponseEvent) }
}
@Test
fun parseEvent() {
val msg = Event.mapper.readTree(reqResponseEvent)
val msg = EventMapper.mapper.readTree(reqResponseEvent)
benchmarkRule.measureRepeated { Event.fromJson(msg[2]) }
benchmarkRule.measureRepeated { EventMapper.fromJson(msg[2]) }
}
@Test
fun checkSignature() {
val msg = Event.mapper.readTree(reqResponseEvent)
val event = Event.fromJson(msg[2])
val msg = EventMapper.mapper.readTree(reqResponseEvent)
val event = EventMapper.fromJson(msg[2])
benchmarkRule.measureRepeated {
// Should pass
assertTrue(event.hasValidSignature())
@@ -23,7 +23,10 @@ package com.vitorpamplona.quartz.benchmark
import androidx.benchmark.junit4.BenchmarkRule
import androidx.benchmark.junit4.measureRepeated
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.vitorpamplona.quartz.events.Event
import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.generateId
import com.vitorpamplona.quartz.nip01Core.hasCorrectIDHash
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper
import junit.framework.TestCase.assertNotNull
import junit.framework.TestCase.assertTrue
import org.junit.Rule
@@ -42,7 +45,7 @@ class EventHasherBenchmark {
@Test
fun checkIDHashKind1WihtoutTags() {
val event = Event.fromJson(Event.mapper.readTree(reqResponseEvent))
val event = EventMapper.fromJson(EventMapper.mapper.readTree(reqResponseEvent))
benchmarkRule.measureRepeated {
// Should pass
@@ -24,8 +24,8 @@ import androidx.benchmark.junit4.BenchmarkRule
import androidx.benchmark.junit4.measureRepeated
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import com.vitorpamplona.quartz.encoders.Nip01Serializer
import com.vitorpamplona.quartz.events.Event
import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.experimental.Nip01Serializer
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@@ -25,11 +25,12 @@ import androidx.benchmark.junit4.measureRepeated
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.vitorpamplona.quartz.crypto.CryptoUtils
import com.vitorpamplona.quartz.crypto.KeyPair
import com.vitorpamplona.quartz.events.Event
import com.vitorpamplona.quartz.events.GiftWrapEvent
import com.vitorpamplona.quartz.events.NIP17Factory
import com.vitorpamplona.quartz.events.SealedGossipEvent
import com.vitorpamplona.quartz.signers.NostrSignerInternal
import com.vitorpamplona.quartz.nip01Core.checkSignature
import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal
import com.vitorpamplona.quartz.nip17Dm.NIP17Factory
import com.vitorpamplona.quartz.nip59Giftwrap.GiftWrapEvent
import com.vitorpamplona.quartz.nip59Giftwrap.SealedGossipEvent
import junit.framework.TestCase
import org.junit.Assert
import org.junit.Assert.assertTrue
@@ -25,14 +25,16 @@ import androidx.benchmark.junit4.measureRepeated
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.vitorpamplona.quartz.crypto.CryptoUtils
import com.vitorpamplona.quartz.crypto.KeyPair
import com.vitorpamplona.quartz.encoders.hexToByteArray
import com.vitorpamplona.quartz.events.ChatMessageEvent
import com.vitorpamplona.quartz.events.Event
import com.vitorpamplona.quartz.events.GiftWrapEvent
import com.vitorpamplona.quartz.events.Gossip
import com.vitorpamplona.quartz.events.SealedGossipEvent
import com.vitorpamplona.quartz.signers.NostrSigner
import com.vitorpamplona.quartz.signers.NostrSignerInternal
import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.hasCorrectIDHash
import com.vitorpamplona.quartz.nip01Core.hasVerifiedSignature
import com.vitorpamplona.quartz.nip01Core.hexToByteArray
import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner
import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal
import com.vitorpamplona.quartz.nip17Dm.ChatMessageEvent
import com.vitorpamplona.quartz.nip59Giftwrap.GiftWrapEvent
import com.vitorpamplona.quartz.nip59Giftwrap.Gossip
import com.vitorpamplona.quartz.nip59Giftwrap.SealedGossipEvent
import junit.framework.TestCase.assertNotNull
import junit.framework.TestCase.assertTrue
import org.junit.Rule
@@ -24,10 +24,10 @@ import androidx.benchmark.junit4.BenchmarkRule
import androidx.benchmark.junit4.measureRepeated
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.vitorpamplona.quartz.crypto.KeyPair
import com.vitorpamplona.quartz.events.ChatMessageEvent
import com.vitorpamplona.quartz.events.GiftWrapEvent
import com.vitorpamplona.quartz.events.SealedGossipEvent
import com.vitorpamplona.quartz.signers.NostrSignerInternal
import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal
import com.vitorpamplona.quartz.nip17Dm.ChatMessageEvent
import com.vitorpamplona.quartz.nip59Giftwrap.GiftWrapEvent
import com.vitorpamplona.quartz.nip59Giftwrap.SealedGossipEvent
import junit.framework.TestCase.assertTrue
import org.junit.Rule
import org.junit.Test
@@ -23,7 +23,7 @@ package com.vitorpamplona.quartz.benchmark
import androidx.benchmark.junit4.BenchmarkRule
import androidx.benchmark.junit4.measureRepeated
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.vitorpamplona.quartz.encoders.HexValidator
import com.vitorpamplona.quartz.crypto.Hex
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@@ -46,7 +46,7 @@ class HexBenchmark {
@Test
fun hexDecodeOurs() {
r.measureRepeated {
com.vitorpamplona.quartz.encoders.Hex
Hex
.decode(hex)
}
}
@@ -54,7 +54,7 @@ class HexBenchmark {
@Test
fun hexEncodeOurs() {
r.measureRepeated {
com.vitorpamplona.quartz.encoders.Hex
Hex
.encode(bytes)
}
}
@@ -89,6 +89,6 @@ class HexBenchmark {
@Test
fun isHex() {
r.measureRepeated { HexValidator.isHex(hex) }
r.measureRepeated { Hex.isHex(hex) }
}
}
@@ -26,8 +26,9 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import com.fasterxml.jackson.module.kotlin.readValue
import com.vitorpamplona.amethyst.commons.data.LargeCache
import com.vitorpamplona.quartz.encoders.HexKey
import com.vitorpamplona.quartz.events.Event
import com.vitorpamplona.quartz.nip01Core.HexKey
import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper
import org.junit.Assert.assertTrue
import org.junit.Rule
import org.junit.Test
@@ -41,7 +42,7 @@ open class BaseLargeCacheBenchmark {
// This file includes duplicates
val fullDBInputStream = getInstrumentation().context.assets.open("nostr_vitor_startup_data.json")
return Event.mapper.readValue<ArrayList<Event>>(
return EventMapper.mapper.readValue<ArrayList<Event>>(
GZIPInputStream(fullDBInputStream),
)
}
@@ -23,9 +23,9 @@ package com.vitorpamplona.quartz.benchmark
import androidx.benchmark.junit4.BenchmarkRule
import androidx.benchmark.junit4.measureRepeated
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.vitorpamplona.quartz.crypto.nip01.EventHasher
import com.vitorpamplona.quartz.crypto.sha256Hash
import com.vitorpamplona.quartz.events.Event
import com.vitorpamplona.quartz.nip01Core.EventHasher
import com.vitorpamplona.quartz.nip01Core.core.Event
import junit.framework.TestCase.assertNotNull
import org.junit.Rule
import org.junit.Test