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)
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
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)
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)
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))
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(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)]
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 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])
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)
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])
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)
def get_dust_threshold(self): return SimpleColorValue(colordef=UNCOLORED_MARKER, value=10000)
def get_required_fee(self, amount): return SimpleColorValue(colordef=UNCOLORED_MARKER, value=10000)
def test_sum(self): cvs = [ self.cv1, self.cv2, SimpleColorValue(colordef=self.colordef1, value=3) ] self.assertEqual(SimpleColorValue.sum(cvs).get_value(), 6)
def test_sum(self): cvs = [self.cv1, self.cv2, SimpleColorValue(colordef=self.colordef1, value=3)] self.assertEqual(SimpleColorValue.sum(cvs).get_value(), 6)