예제 #1
0
class TestColorValue(unittest.TestCase):
    def setUp(self):
        self.colordef1 = POBColorDefinition(1, {
            'txhash': 'genesis',
            'outindex': 0
        })
        self.colordef2 = OBColorDefinition(2, {
            'txhash': 'genesis',
            'outindex': 0
        })
        self.cv1 = SimpleColorValue(colordef=self.colordef1,
                                    value=1,
                                    label='test')
        self.cv2 = SimpleColorValue(colordef=self.colordef1,
                                    value=2,
                                    label='test2')
        self.cv3 = SimpleColorValue(colordef=self.colordef2, value=1)

    def test_add(self):
        cv4 = self.cv1 + self.cv2
        self.assertEqual(cv4.get_value(), 3)
        cv4 = 0 + self.cv1
        self.assertEqual(cv4.get_value(), 1)
        self.assertRaises(IncompatibleTypesError, self.cv1.__add__, self.cv3)

    def test_iadd(self):
        cv = self.cv1.clone()
        cv += self.cv2
        self.assertEqual(cv.get_value(), 3)

    def test_sub(self):
        cv = self.cv2 - self.cv1
        self.assertEqual(cv.get_value(), 1)

    def test_lt(self):
        self.assertTrue(self.cv1 < self.cv2)
        self.assertTrue(self.cv2 > self.cv1)
        self.assertTrue(self.cv2 >= self.cv1)
        self.assertTrue(self.cv2 > 0)

    def test_eq(self):
        self.assertTrue(self.cv1 == self.cv1)
        self.assertTrue(self.cv1 != self.cv2)
        self.assertTrue(self.cv1 != self.cv3)

    def test_label(self):
        self.assertEqual(self.cv1.get_label(), 'test')

    def test_repr(self):
        self.assertEqual(self.cv1.__repr__(), 'test: 1')

    def test_sum(self):
        cvs = [
            self.cv1, self.cv2,
            SimpleColorValue(colordef=self.colordef1, value=3)
        ]
        self.assertEqual(SimpleColorValue.sum(cvs).get_value(), 6)
예제 #2
0
 def select_coins(self, colorvalue, use_fee_estimator=None):
     cvs = [
         SimpleColorValue(colordef=colorvalue.get_colordef(), value=10000),
         SimpleColorValue(colordef=colorvalue.get_colordef(), value=20000),
         SimpleColorValue(colordef=colorvalue.get_colordef(), value=10000),
         SimpleColorValue(colordef=colorvalue.get_colordef(), value=10000)
     ]
     s = SimpleColorValue.sum(cvs)
     return [MockUTXO([cv]) for cv in cvs], s
예제 #3
0
class TestColorValue(unittest.TestCase):
    def setUp(self):
        self.colordef1 = POBColorDefinition(
            1, {'txhash': 'genesis', 'outindex': 0})
        self.colordef2 = OBColorDefinition(
            2, {'txhash': 'genesis', 'outindex': 0})
        self.cv1 = SimpleColorValue(colordef=self.colordef1,
                                    value=1, label='test')
        self.cv2 = SimpleColorValue(colordef=self.colordef1,
                                    value=2, label='test2')
        self.cv3 = SimpleColorValue(colordef=self.colordef2,
                                    value=1)

    def test_add(self):
        cv4 = self.cv1 + self.cv2
        self.assertEqual(cv4.get_value(), 3)
        cv4 = 0 + self.cv1
        self.assertEqual(cv4.get_value(), 1)
        self.assertRaises(IncompatibleTypesError, self.cv1.__add__,
                          self.cv3)

    def test_iadd(self):
        cv = self.cv1.clone()
        cv += self.cv2
        self.assertEqual(cv.get_value(), 3)

    def test_sub(self):
        cv = self.cv2 - self.cv1
        self.assertEqual(cv.get_value(), 1)

    def test_lt(self):
        self.assertTrue(self.cv1 < self.cv2)
        self.assertTrue(self.cv2 > self.cv1)
        self.assertTrue(self.cv2 >= self.cv1)
        self.assertTrue(self.cv2 > 0)

    def test_eq(self):
        self.assertTrue(self.cv1 == self.cv1)
        self.assertTrue(self.cv1 != self.cv2)
        self.assertTrue(self.cv1 != self.cv3)

    def test_label(self):
        self.assertEqual(self.cv1.get_label(), 'test')

    def test_repr(self):
        self.assertEqual(self.cv1.__repr__(), 'test: 1')

    def test_sum(self):
        cvs = [self.cv1, self.cv2, SimpleColorValue(colordef=self.colordef1,
                                                    value=3)]
        self.assertEqual(SimpleColorValue.sum(cvs).get_value(), 6)
예제 #4
0
 def test_compose_tx_spec(self):
     cv1 = SimpleColorValue(colordef=UNCOLORED_MARKER, value=1)
     cv2 = SimpleColorValue(colordef=self.obc, value=1)
     target1 = ColorTarget('addr1', cv1)
     target2 = ColorTarget('addr2', cv2)
     targets = [target1, target2]
     txspec = MockOpTxSpec(targets)
     self.assertTrue(
         isinstance(self.obc.compose_tx_spec(txspec), ComposedTxSpec))
     non = POBColorDefinition(2, {'txhash': 'something', 'outindex': 0})
     cv3 = SimpleColorValue(colordef=non, value=1)
     target3 = ColorTarget('addr3', cv3)
     targets = [cv3, cv2]
     txspec = MockOpTxSpec(targets)
     self.assertRaises(InvalidColorError, self.obc.compose_tx_spec, txspec)
예제 #5
0
 def test_compose_genesis_tx_spec(self):
     txspec = MockOpTxSpec([])
     cv = SimpleColorValue(colordef=UNCOLORED_MARKER, value=1)
     self.assertRaises(InvalidTargetError,
                       OBColorDefinition.compose_genesis_tx_spec, txspec)
     target = ColorTarget('addr', cv)
     txspec = MockOpTxSpec([target])
     self.assertRaises(InvalidColorError,
                       OBColorDefinition.compose_genesis_tx_spec, txspec)
     cv = SimpleColorValue(colordef=GENESIS_OUTPUT_MARKER, value=1)
     target = ColorTarget('addr', cv)
     txspec = MockOpTxSpec([target])
     self.assertTrue(
         isinstance(OBColorDefinition.compose_genesis_tx_spec(txspec),
                    ComposedTxSpec))
예제 #6
0
 def setUp(self):
     self.colordef1 = POBColorDefinition(1, {
         'txhash': 'genesis',
         'outindex': 0
     })
     self.colordef2 = OBColorDefinition(2, {
         'txhash': 'genesis',
         'outindex': 0
     })
     self.cv1 = SimpleColorValue(colordef=self.colordef1,
                                 value=1,
                                 label='test')
     self.cv2 = SimpleColorValue(colordef=self.colordef1,
                                 value=2,
                                 label='test2')
     self.cv3 = SimpleColorValue(colordef=self.colordef2, value=1)
예제 #7
0
 def select_coins(self, colorvalue, use_fee_estimator=None):
     cvs = [
         SimpleColorValue(colordef=colorvalue.get_colordef(), value=10000),
         SimpleColorValue(colordef=colorvalue.get_colordef(), value=20000),
         SimpleColorValue(colordef=colorvalue.get_colordef(), value=10000),
         SimpleColorValue(colordef=colorvalue.get_colordef(), value=10000)
         ]
     s = SimpleColorValue.sum(cvs)
     return [MockUTXO([cv]) for cv in cvs], s
예제 #8
0
 def test(self, inputs, outputs, in_colorvalues, txhash="not genesis", inp_seq_indices=None):
     ins = []
     for i in in_colorvalues:
         if i is None:
             ins.append(None)
         else:
             ins.append(SimpleColorValue(colordef=self.colordef, value=i))
     tx = MockTX(txhash, inputs, outputs, inp_seq_indices)
     return [i and i.get_value() for i in self.colordef.run_kernel(tx, ins)]
예제 #9
0
 def setUp(self):
     self.colordef1 = POBColorDefinition(
         1, {'txhash': 'genesis', 'outindex': 0})
     self.colordef2 = OBColorDefinition(
         2, {'txhash': 'genesis', 'outindex': 0})
     self.cv1 = SimpleColorValue(colordef=self.colordef1,
                                 value=1, label='test')
     self.cv2 = SimpleColorValue(colordef=self.colordef1,
                                 value=2, label='test2')
     self.cv3 = SimpleColorValue(colordef=self.colordef2,
                                 value=1)
예제 #10
0
 def setUp(self):
     self.colordef1 = EPOBCColorDefinition(1, {
         'txhash': 'genesis',
         'outindex': 0
     })
     self.colordef2 = OBColorDefinition(2, {
         'txhash': 'genesis',
         'outindex': 0
     })
     self.cv1 = SimpleColorValue(colordef=self.colordef1,
                                 value=1,
                                 label='test')
     self.cv2 = SimpleColorValue(colordef=self.colordef1,
                                 value=2,
                                 label='test2')
     self.cv3 = SimpleColorValue(colordef=self.colordef2, value=1)
     self.ct1 = ColorTarget('address1', self.cv1)
     self.ct2 = ColorTarget('address2', self.cv2)
     self.ct3 = ColorTarget('address3', self.cv3)
     self.txspec = MockOpTxSpec([self.ct1, self.ct2])
예제 #11
0
class TestTxSpec(unittest.TestCase):
    def setUp(self):
        self.colordef1 = EPOBCColorDefinition(1, {
            'txhash': 'genesis',
            'outindex': 0
        })
        self.colordef2 = OBColorDefinition(2, {
            'txhash': 'genesis',
            'outindex': 0
        })
        self.cv1 = SimpleColorValue(colordef=self.colordef1,
                                    value=1,
                                    label='test')
        self.cv2 = SimpleColorValue(colordef=self.colordef1,
                                    value=2,
                                    label='test2')
        self.cv3 = SimpleColorValue(colordef=self.colordef2, value=1)
        self.ct1 = ColorTarget('address1', self.cv1)
        self.ct2 = ColorTarget('address2', self.cv2)
        self.ct3 = ColorTarget('address3', self.cv3)
        self.txspec = MockOpTxSpec([self.ct1, self.ct2])

    def test_repr(self):
        self.assertEqual(self.ct1.__repr__(), 'address1: test: 1')

    def test_get_colordef(self):
        self.assertEqual(self.ct1.get_colordef(), self.colordef1)

    def test_get_value(self):
        self.assertEqual(self.ct1.get_value(), self.cv1.get_value())

    def test_sum(self):
        cts = [self.ct1, self.ct2, ColorTarget('address3', self.cv2)]
        self.assertEqual(ColorTarget.sum(cts).get_value(), 5)
        self.assertEqual(ColorTarget.sum([]), 0)

    def test_opspec(self):
        self.assertTrue(self.txspec.is_monocolor())
        spec = MockOpTxSpec([self.ct1, self.ct2, self.ct3])
        self.assertFalse(spec.is_monocolor())

    def test_cspec(self):
        txo1 = ComposedTxSpec.TxOut(1, 'addr')
        txo2 = ComposedTxSpec.TxOut(2, 'addr2')
        outs = [txo1, txo2]
        c = ComposedTxSpec(None)
        c.add_txins([])
        c.add_txouts([txo1, txo2])
        self.assertEqual(c.get_txins(), [])
        self.assertEqual(c.get_txouts(), outs)
예제 #12
0
 def setUp(self):
     self.colordef1 = EPOBCColorDefinition(
         1, {'txhash': 'genesis', 'outindex': 0})
     self.colordef2 = OBColorDefinition(
         2, {'txhash': 'genesis', 'outindex': 0})
     self.cv1 = SimpleColorValue(colordef=self.colordef1,
                                 value=1, label='test')
     self.cv2 = SimpleColorValue(colordef=self.colordef1,
                                 value=2, label='test2')
     self.cv3 = SimpleColorValue(colordef=self.colordef2,
                                 value=1)
     self.ct1 = ColorTarget('address1', self.cv1)
     self.ct2 = ColorTarget('address2', self.cv2)
     self.ct3 = ColorTarget('address3', self.cv3)
     self.txspec = MockOpTxSpec([self.ct1, self.ct2])
예제 #13
0
class TestTxSpec(unittest.TestCase):
    def setUp(self):
        self.colordef1 = EPOBCColorDefinition(
            1, {'txhash': 'genesis', 'outindex': 0})
        self.colordef2 = OBColorDefinition(
            2, {'txhash': 'genesis', 'outindex': 0})
        self.cv1 = SimpleColorValue(colordef=self.colordef1,
                                    value=1, label='test')
        self.cv2 = SimpleColorValue(colordef=self.colordef1,
                                    value=2, label='test2')
        self.cv3 = SimpleColorValue(colordef=self.colordef2,
                                    value=1)
        self.ct1 = ColorTarget('address1', self.cv1)
        self.ct2 = ColorTarget('address2', self.cv2)
        self.ct3 = ColorTarget('address3', self.cv3)
        self.txspec = MockOpTxSpec([self.ct1, self.ct2])

    def test_repr(self):
        self.assertEqual(self.ct1.__repr__(), 'address1: test: 1')

    def test_get_colordef(self):
        self.assertEqual(self.ct1.get_colordef(), self.colordef1)

    def test_get_value(self):
        self.assertEqual(self.ct1.get_value(), self.cv1.get_value())

    def test_sum(self):
        cts = [self.ct1, self.ct2, ColorTarget('address3',self.cv2)]
        self.assertEqual(ColorTarget.sum(cts).get_value(), 5)
        self.assertEqual(ColorTarget.sum([]), 0)

    def test_opspec(self):
        self.assertTrue(self.txspec.is_monocolor())
        spec = MockOpTxSpec([self.ct1, self.ct2, self.ct3])
        self.assertFalse(spec.is_monocolor())

    def test_cspec(self):
        txo1 = ComposedTxSpec.TxOut(1, 'addr')
        txo2 = ComposedTxSpec.TxOut(2, 'addr2')
        outs = [txo1, txo2]
        c = ComposedTxSpec(None)
        c.add_txins([])
        c.add_txouts([txo1, txo2])
        self.assertEqual(c.get_txins(), [])
        self.assertEqual(c.get_txouts(), outs)
예제 #14
0
 def get_dust_threshold(self):
     return SimpleColorValue(colordef=UNCOLORED_MARKER, value=10000)
예제 #15
0
 def get_required_fee(self, amount):
     return SimpleColorValue(colordef=UNCOLORED_MARKER, value=10000)
예제 #16
0
 def test_sum(self):
     cvs = [
         self.cv1, self.cv2,
         SimpleColorValue(colordef=self.colordef1, value=3)
     ]
     self.assertEqual(SimpleColorValue.sum(cvs).get_value(), 6)
예제 #17
0
 def test_sum(self):
     cvs = [self.cv1, self.cv2, SimpleColorValue(colordef=self.colordef1,
                                                 value=3)]
     self.assertEqual(SimpleColorValue.sum(cvs).get_value(), 6)