Skip to content
Snippets Groups Projects
Select Git revision
  • 3595985353e0339c0b8cbcf24972ed3e373ffaf5
  • without_tipselection default
  • develop protected
  • fix/grafana-local-dashboard
  • wasp
  • fix/dashboard-explorer-freeze
  • master
  • feat/timerqueue
  • test/sync_debug_and_650
  • feat/sync_revamp_inv
  • wip/sync
  • tool/db-recovery
  • portcheck/fix
  • fix/synchronization
  • feat/new-dashboard-analysis
  • feat/refactored-analysis-dashboard
  • feat/new-analysis-dashboard
  • test/demo-prometheus-fpc
  • prometheus_metrics
  • wip/analysis-server
  • merge/fpc-test-value-transfer
  • v0.2.2
  • v0.2.1
  • v0.2.0
  • v0.1.3
  • v0.1.2
  • v0.1.1
  • v0.1.0
28 results

fpc_test.go

Blame
  • fpc_test.go 2.50 KiB
    package metrics
    
    import (
    	"testing"
    
    	"github.com/iotaledger/goshimmer/packages/metrics"
    	"github.com/iotaledger/goshimmer/packages/vote"
    	"github.com/magiconair/properties/assert"
    )
    
    func TestActiveConflicts(t *testing.T) {
    	// initialized to 0
    	assert.Equal(t, ActiveConflicts(), (uint64)(0))
    	stats := vote.RoundStats{
    		ActiveVoteContexts: map[string]*vote.Context{
    			"test1": &vote.Context{},
    			"test2": &vote.Context{},
    			"test3": &vote.Context{},
    		},
    	}
    	processRoundStats(stats)
    	assert.Equal(t, ActiveConflicts(), (uint64)(3))
    }
    
    func TestFailedConflicts(t *testing.T) {
    	// initialized to 0
    	assert.Equal(t, FailedConflicts(), (uint64)(0))
    	// simulate 10 failed conflicts
    	for i := 0; i < 10; i++ {
    		processFailed(vote.Context{})
    	}
    	assert.Equal(t, FailedConflicts(), (uint64)(10))
    	// simulate 10 failed conflicts
    	for i := 0; i < 10; i++ {
    		processFailed(vote.Context{})
    	}
    	assert.Equal(t, FailedConflicts(), (uint64)(20))
    }
    
    func TestFinalize(t *testing.T) {
    	assert.Equal(t, AverageRoundsToFinalize(), 0.0)
    	assert.Equal(t, FinalizedConflict(), (uint64)(0))
    	// simulate 5 finalized conflicts with 5 rounds
    	for i := 0; i < 5; i++ {
    		processFinalized(vote.Context{
    			Rounds: 5,
    		})
    	}
    	assert.Equal(t, FinalizedConflict(), (uint64)(5))
    	// simulate 5 finalized conflicts with 10 rounds
    	for i := 0; i < 5; i++ {
    		processFinalized(vote.Context{
    			Rounds: 10,
    		})
    	}
    	assert.Equal(t, FinalizedConflict(), (uint64)(10))
    	// => average should be 7.5
    	assert.Equal(t, AverageRoundsToFinalize(), 7.5)
    }
    
    func TestQueryReceived(t *testing.T) {
    	assert.Equal(t, FPCQueryReceived(), (uint64)(0))
    	assert.Equal(t, FPCOpinionQueryReceived(), (uint64)(0))
    
    	processQueryReceived(&metrics.QueryReceivedEvent{OpinionCount: 5})
    
    	assert.Equal(t, FPCQueryReceived(), (uint64)(1))
    	assert.Equal(t, FPCOpinionQueryReceived(), (uint64)(5))
    
    	processQueryReceived(&metrics.QueryReceivedEvent{OpinionCount: 5})
    
    	assert.Equal(t, FPCQueryReceived(), (uint64)(2))
    	assert.Equal(t, FPCOpinionQueryReceived(), (uint64)(10))
    }
    
    func TestQueryReplyError(t *testing.T) {
    	assert.Equal(t, FPCQueryReplyErrors(), (uint64)(0))
    	assert.Equal(t, FPCOpinionQueryReplyErrors(), (uint64)(0))
    
    	processQueryReplyError(&metrics.QueryReplyErrorEvent{OpinionCount: 5})
    
    	assert.Equal(t, FPCQueryReplyErrors(), (uint64)(1))
    	assert.Equal(t, FPCOpinionQueryReplyErrors(), (uint64)(5))
    
    	processQueryReplyError(&metrics.QueryReplyErrorEvent{OpinionCount: 5})
    
    	assert.Equal(t, FPCQueryReplyErrors(), (uint64)(2))
    	assert.Equal(t, FPCOpinionQueryReplyErrors(), (uint64)(10))
    }