text: #!/usr/bin/env python3
  # Copyright (c) 2018-2020 The Vadercoin Core developers
  # Distributed under the MIT software license, see the accompanying
  # file COPYING or http://www.opensource.org/licenses/mit-license.php.
  """Test the estimatefee RPCs.
  
  Test the following RPCs:
     - estimatesmartfee
     - estimaterawfee
  """
  
  from test_framework.test_framework import VadercoinTestFramework
  from test_framework.util import assert_raises_rpc_error
  
  class EstimateFeeTest(VadercoinTestFramework):
      def set_test_params(self):
          self.num_nodes = 1
  
      def run_test(self):
          # missing required params
          assert_raises_rpc_error(-1, "estimatesmartfee", self.nodes[0].estimatesmartfee)
          assert_raises_rpc_error(-1, "estimaterawfee", self.nodes[0].estimaterawfee)
  
          # wrong type for conf_target
          assert_raises_rpc_error(-3, "Expected type number, got string", self.nodes[0].estimatesmartfee, 'foo')
          assert_raises_rpc_error(-3, "Expected type number, got string", self.nodes[0].estimaterawfee, 'foo')
  
          # wrong type for estimatesmartfee(estimate_mode)
          assert_raises_rpc_error(-3, "Expected type string, got number", self.nodes[0].estimatesmartfee, 1, 1)
          assert_raises_rpc_error(-8, 'Invalid estimate_mode parameter, must be one of: "unset", "economical", "conservative"', self.nodes[0].estimatesmartfee, 1, 'foo')
  
          # wrong type for estimaterawfee(threshold)
          assert_raises_rpc_error(-3, "Expected type number, got string", self.nodes[0].estimaterawfee, 1, 'foo')
  
          # extra params
          assert_raises_rpc_error(-1, "estimatesmartfee", self.nodes[0].estimatesmartfee, 1, 'ECONOMICAL', 1)
          assert_raises_rpc_error(-1, "estimaterawfee", self.nodes[0].estimaterawfee, 1, 1, 1)
  
          # valid calls
          self.nodes[0].estimatesmartfee(1)
          # self.nodes[0].estimatesmartfee(1, None)
          self.nodes[0].estimatesmartfee(1, 'ECONOMICAL')
          self.nodes[0].estimatesmartfee(1, 'unset')
          self.nodes[0].estimatesmartfee(1, 'conservative')
  
          self.nodes[0].estimaterawfee(1)
          self.nodes[0].estimaterawfee(1, None)
          self.nodes[0].estimaterawfee(1, 1)
  
  
  if __name__ == '__main__':
      EstimateFeeTest().main()
  