github.com/TrueBlocks/trueblocks-core/src/apps/chifra@v0.0.0-20241022031540-b362680128f7/pkg/validate/block_integration_test.go (about)

     1  //go:build integration
     2  // +build integration
     3  
     4  package validate
     5  
     6  import (
     7  	"fmt"
     8  	"strings"
     9  	"testing"
    10  
    11  	"github.com/TrueBlocks/trueblocks-core/src/apps/chifra/pkg/colors"
    12  	"github.com/TrueBlocks/trueblocks-core/src/apps/chifra/pkg/config"
    13  	"github.com/TrueBlocks/trueblocks-core/src/apps/chifra/pkg/identifiers"
    14  	"github.com/TrueBlocks/trueblocks-core/src/apps/chifra/pkg/utils"
    15  )
    16  
    17  func Test_BlockRanges(t *testing.T) {
    18  	config.GetRootConfig()
    19  	for _, item := range testBlocks {
    20  		if !item.enabled {
    21  			continue
    22  		}
    23  		// fmt.Println("----------->", item.input)
    24  		inputs := strings.Split(item.input, " ")
    25  		var results []identifiers.Identifier
    26  		var err error
    27  		err = ValidateIdentifiers(
    28  			"mainnet",
    29  			inputs,
    30  			ValidBlockIdWithRangeAndDate,
    31  			100,
    32  			&results,
    33  		)
    34  		if err != nil {
    35  			// we're not testing validation here, so there won't be any errors here, but if
    36  			// there is we want to know about them so we can fix the test
    37  			fmt.Println(item.input, err)
    38  			continue
    39  		}
    40  		for _, br := range results {
    41  			blockNums, err := br.ResolveBlocks(utils.GetTestChain())
    42  			if err != nil {
    43  				t.Error(br)
    44  				t.Error(err)
    45  			}
    46  			if len(blockNums) > 0 {
    47  				max := len(blockNums)
    48  				min := 0
    49  				if len(blockNums) > 10 {
    50  					max = 10
    51  				}
    52  				if len(blockNums) > 3 {
    53  					min = len(blockNums) - 3
    54  				}
    55  				str := fmt.Sprintf("%s|%d|%v...%v", br.Orig, len(blockNums), blockNums[:max], blockNums[min:])
    56  				check := colors.Green
    57  				if str != item.expected {
    58  					check = colors.Red
    59  					// fmt.Printf("got:    %s\nwanted: %s%s%s\n", str, check, item.expected, colors.Off)
    60  					t.Errorf("got:    %s\nwanted: %s%s%s\n", str, check, item.expected, colors.Off)
    61  				}
    62  				// } else {
    63  				// 	fmt.Println("No blocks:", colors.Yellow, br, colors.Off)
    64  			}
    65  		}
    66  	}
    67  }
    68  
    69  type testCase struct {
    70  	input    string
    71  	expected string
    72  	enabled  bool
    73  }
    74  
    75  var testBlocks = []testCase{
    76  	{
    77  		input:    "1001001.0",
    78  		expected: "1001001.0",
    79  		// enabled:  true,
    80  	},
    81  	{
    82  		input:    "195633",
    83  		expected: "195633|1|[195633]...[195633]",
    84  		enabled:  true,
    85  	},
    86  	{
    87  		input:    "195633-200000",
    88  		expected: "195633-200000|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
    89  	},
    90  	{
    91  		input:    "195633-1441661589",
    92  		expected: "195633-1441661589|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
    93  	},
    94  	{
    95  		input:    "195633-0x13ced9eaa49a522d4e7dcf80a739a57dbf08f4ce5efc4edbac86a66d8010f693",
    96  		expected: "195633-0x13ced9eaa49a522d4e7dcf80a739a57dbf08f4ce5efc4edbac86a66d8010f693|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
    97  		enabled:  true,
    98  	},
    99  	{
   100  		input:    "195633-2015-09-07",
   101  		expected: "195633-2015-09-07|1|[195633]...[195633]",
   102  		enabled:  true,
   103  	},
   104  	{
   105  		input:    "195633-2015-09-07T21",
   106  		expected: "195633-2015-09-07T21|4256|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199886 199887 199888]",
   107  		enabled:  true,
   108  	},
   109  	{
   110  		input:    "195633-2015-09-07T21:33",
   111  		expected: "195633-2015-09-07T21:33|4365|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199995 199996 199997]",
   112  		enabled:  true,
   113  	},
   114  	{
   115  		input:    "195633-2015-09-07T21:33:09",
   116  		expected: "195633-2015-09-07T21:33:09|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   117  		enabled:  true,
   118  	},
   119  	{
   120  		input:    "195633-iceage",
   121  		expected: "195633-iceage|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   122  		enabled:  true,
   123  	},
   124  	{
   125  		input:    "195633-iceage:51",
   126  		expected: "195633-iceage:51|86|[195633 195684 195735 195786 195837 195888 195939 195990 196041 196092]...[199866 199917 199968]",
   127  		enabled:  true,
   128  	},
   129  	{
   130  		input:    "195433-iceage:hourly",
   131  		expected: "195433-iceage:hourly|23|[195433 195634 195845 196049 196249 196438 196646 196843 197031 197234]...[199494 199694 199889]",
   132  		enabled:  true,
   133  	},
   134  	{
   135  		input:    "1441583975",
   136  		expected: "1441583975|1|[195633]...[195633]",
   137  		enabled:  true,
   138  	},
   139  	{
   140  		input:    "1441583975-200000",
   141  		expected: "1441583975-200000|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   142  	},
   143  	{
   144  		input:    "1441583975-1441661589",
   145  		expected: "1441583975-1441661589|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   146  	},
   147  	{
   148  		input:    "1441583975-0x13ced9eaa49a522d4e7dcf80a739a57dbf08f4ce5efc4edbac86a66d8010f693",
   149  		expected: "1441583975-0x13ced9eaa49a522d4e7dcf80a739a57dbf08f4ce5efc4edbac86a66d8010f693|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   150  	},
   151  	{
   152  		input:    "1441583975-2015-09-07",
   153  		expected: "1441583975-2015-09-07|1|[195633]...[195633]",
   154  	},
   155  	{
   156  		input:    "1441583975-2015-09-07T21",
   157  		expected: "1441583975-2015-09-07T21|4256|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199886 199887 199888]",
   158  	},
   159  	{
   160  		input:    "1441583975-2015-09-07T21:33",
   161  		expected: "1441583975-2015-09-07T21:33|4365|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199995 199996 199997]",
   162  	},
   163  	{
   164  		input:    "1441583975-2015-09-07T21:33:09",
   165  		expected: "1441583975-2015-09-07T21:33:09|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   166  	},
   167  	{
   168  		input:    "1441583975-iceage",
   169  		expected: "1441583975-iceage|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   170  	},
   171  	{
   172  		input:    "1441583975-iceage:51",
   173  		expected: "1441583975-iceage:51|86|[195633 195684 195735 195786 195837 195888 195939 195990 196041 196092]...[199866 199917 199968]",
   174  	},
   175  	{
   176  		input:    "1440709168-iceage:daily",
   177  		expected: "1440709168-iceage:daily|12|[148428 153135 157788 162118 166272 170394 174332 177909 181292 185735]...[185735 190656 195634]",
   178  		enabled:  true,
   179  	},
   180  	{
   181  		input:    "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2",
   182  		expected: "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2|1|[195633]...[195633]",
   183  	},
   184  	{
   185  		input:    "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-200000",
   186  		expected: "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-200000|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   187  	},
   188  	{
   189  		input:    "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-1441661589",
   190  		expected: "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-1441661589|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   191  	},
   192  	{
   193  		input:    "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-0x13ced9eaa49a522d4e7dcf80a739a57dbf08f4ce5efc4edbac86a66d8010f693",
   194  		expected: "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-0x13ced9eaa49a522d4e7dcf80a739a57dbf08f4ce5efc4edbac86a66d8010f693|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   195  		enabled:  true,
   196  	},
   197  	{
   198  		input:    "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-2015-09-07",
   199  		expected: "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-2015-09-07|1|[195633]...[195633]",
   200  	},
   201  	{
   202  		input:    "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-2015-09-07T21",
   203  		expected: "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-2015-09-07T21|4256|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199886 199887 199888]",
   204  	},
   205  	{
   206  		input:    "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-2015-09-07T21:33",
   207  		expected: "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-2015-09-07T21:33|4365|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199995 199996 199997]",
   208  	},
   209  	{
   210  		input:    "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-2015-09-07T21:33:09",
   211  		expected: "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-2015-09-07T21:33:09|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   212  	},
   213  	{
   214  		input:    "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-iceage",
   215  		expected: "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-iceage|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   216  	},
   217  	{
   218  		input:    "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-iceage:51",
   219  		expected: "0xf6bfe0a959330e01858c63512b9deb4c4308944584eb0080e2b85e90fcedd9f2-iceage:51|86|[195633 195684 195735 195786 195837 195888 195939 195990 196041 196092]...[199866 199917 199968]",
   220  	},
   221  	{
   222  		input:    "0x15576d5deb72a552fcde26caf8587c40bf39f0c8f9fde5bbb21f3164e0cf2bc5-devcon1:weekly",
   223  		expected: "0x15576d5deb72a552fcde26caf8587c40bf39f0c8f9fde5bbb21f3164e0cf2bc5-devcon1:weekly|14|[93129 128130 162118 190656 225596 259991 295664 330002 364660 399788]...[470667 506226 541677]",
   224  	},
   225  	{
   226  		input:    "2015-09-06",
   227  		expected: "2015-09-06|1|[190656]...[190656]",
   228  	},
   229  	{
   230  		input:    "2015-09-06T23-200000",
   231  		expected: "2015-09-06T23-200000|4567|[195433 195434 195435 195436 195437 195438 195439 195440 195441 195442]...[199997 199998 199999]",
   232  	},
   233  	{
   234  		input:    "2015-09-06T23:59-1441661589",
   235  		expected: "2015-09-06T23:59-1441661589|4369|[195631 195632 195633 195634 195635 195636 195637 195638 195639 195640]...[199997 199998 199999]",
   236  	},
   237  	{
   238  		input:    "2015-09-06T23:59:35-0x13ced9eaa49a522d4e7dcf80a739a57dbf08f4ce5efc4edbac86a66d8010f693",
   239  		expected: "2015-09-06T23:59:35-0x13ced9eaa49a522d4e7dcf80a739a57dbf08f4ce5efc4edbac86a66d8010f693|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   240  		enabled:  true,
   241  	},
   242  	{
   243  		input:    "2015-09-06-2015-09-07",
   244  		expected: "2015-09-06-2015-09-07|4978|[190656 190657 190658 190659 190660 190661 190662 190663 190664 190665]...[195631 195632 195633]",
   245  	},
   246  	{
   247  		input:    "2015-09-06T23-2015-09-07T21",
   248  		expected: "2015-09-06T23-2015-09-07T21|4456|[195433 195434 195435 195436 195437 195438 195439 195440 195441 195442]...[199886 199887 199888]",
   249  	},
   250  	{
   251  		input:    "2015-09-06T23:59-2015-09-07T21:33",
   252  		expected: "2015-09-06T23:59-2015-09-07T21:33|4367|[195631 195632 195633 195634 195635 195636 195637 195638 195639 195640]...[199995 199996 199997]",
   253  		enabled:  true,
   254  	},
   255  	{
   256  		input:    "2015-09-06T23:59:35-2015-09-07T21:33:09",
   257  		expected: "2015-09-06T23:59:35-2015-09-07T21:33:09|4367|[195633 195634 195635 195636 195637 195638 195639 195640 195641 195642]...[199997 199998 199999]",
   258  	},
   259  	{
   260  		input:    "2015-09-06-iceage",
   261  		expected: "2015-09-06-iceage|9344|[190656 190657 190658 190659 190660 190661 190662 190663 190664 190665]...[199997 199998 199999]",
   262  	},
   263  	{
   264  		input:    "2015-09-06T23-iceage:51",
   265  		expected: "2015-09-06T23-iceage:51|90|[195433 195484 195535 195586 195637 195688 195739 195790 195841 195892]...[199870 199921 199972]",
   266  	},
   267  	{
   268  		input:    "2018-03-18T23:23:11-istanbul:monthly",
   269  		expected: "2018-03-18T23:23:11-istanbul:monthly|22|[5174124 5357794 5534862 5710964 5883489 6065979 6249398 6430272 6620475 6803256]...[8653171 8849471 9029509]",
   270  	},
   271  	{
   272  		input:    "istanbul",
   273  		expected: "istanbul|1|[9069000]...[9069000]",
   274  		enabled:  true,
   275  	},
   276  	{
   277  		input:    "muirglacier-9200001",
   278  		expected: "muirglacier-9200001|1|[9200000]...[9200000]",
   279  	},
   280  	{
   281  		input:    "istanbul-9069050:10",
   282  		expected: "istanbul-9069050:10|5|[9069000 9069010 9069020 9069030 9069040]...[9069020 9069030 9069040]",
   283  	},
   284  	{
   285  		input:    "istanbul-1575765384",
   286  		expected: "istanbul-1575765384|50|[9069000 9069001 9069002 9069003 9069004 9069005 9069006 9069007 9069008 9069009]...[9069047 9069048 9069049]",
   287  	},
   288  	{
   289  		input:    "istanbul-0xc6c6091af102c8294959e2a2b15a7fc68270ae17bfef3dec04d81398104daf40",
   290  		expected: "istanbul-0xc6c6091af102c8294959e2a2b15a7fc68270ae17bfef3dec04d81398104daf40|50|[9069000 9069001 9069002 9069003 9069004 9069005 9069006 9069007 9069008 9069009]...[9069047 9069048 9069049]",
   291  	},
   292  	{
   293  		input:    "istanbul-2019-12-09",
   294  		expected: "istanbul-2019-12-09|5508|[9069000 9069001 9069002 9069003 9069004 9069005 9069006 9069007 9069008 9069009]...[9074505 9074506 9074507]",
   295  	},
   296  	{
   297  		input:    "istanbul-2019-12-09T00",
   298  		expected: "istanbul-2019-12-09T00|5508|[9069000 9069001 9069002 9069003 9069004 9069005 9069006 9069007 9069008 9069009]...[9074505 9074506 9074507]",
   299  	},
   300  	{
   301  		input:    "istanbul-2019-12-08T00:36",
   302  		expected: "istanbul-2019-12-08T00:36|48|[9069000 9069001 9069002 9069003 9069004 9069005 9069006 9069007 9069008 9069009]...[9069045 9069046 9069047]",
   303  	},
   304  	{
   305  		input:    "istanbul-2019-12-08T00:36:24",
   306  		expected: "istanbul-2019-12-08T00:36:24|50|[9069000 9069001 9069002 9069003 9069004 9069005 9069006 9069007 9069008 9069009]...[9069047 9069048 9069049]",
   307  	},
   308  	{
   309  		input:    "istanbul-muirglacier:13001",
   310  		expected: "istanbul-muirglacier:13001|11|[9069000 9082001 9095002 9108003 9121004 9134005 9147006 9160007 9173008 9186009]...[9173008 9186009 9199010]",
   311  		enabled:  true,
   312  	},
   313  	{
   314  		input:    "daohack-muirglacier:6000",
   315  		expected: "daohack-muirglacier:6000|1247|[1718497 1724497 1730497 1736497 1742497 1748497 1754497 1760497 1766497 1772497]...[9182497 9188497 9194497]",
   316  	},
   317  	{
   318  		input:    "iceage-13922671:annually",
   319  		expected: "iceage-13922671:annually|8|[0 778482 2912406 4832685 6988614 9193265 11565019 13916165]...[9193265 11565019 13916165]",
   320  	},
   321  	{
   322  		input:    "0",
   323  		expected: "0|1|[0]...[0]",
   324  		enabled:  true,
   325  	},
   326  }