コード例 #1
0
def test_send(client: sy.VirtualMachineClient) -> None:
    syft_bool = Bool(5)
    ptr = syft_bool.send(client)
    # Check pointer type
    assert ptr.__class__.__name__ == "BoolPointer"

    # Check that we can get back the object
    res = ptr.get()
    assert res == syft_bool
コード例 #2
0
ファイル: range_test.py プロジェクト: stoic-signs/PySyft
    def test_large_operands(self):
        x = Range(10 ** 20, 10 ** 20 + 10, 3)
        self.assertEqual(len(x), 4)
        self.assertEqual(len(list(x)), 4)

        x = Range(10 ** 20 + 10, 10 ** 20, 3)
        self.assertEqual(len(x), 0)
        self.assertEqual(len(list(x)), 0)
        # self.assertFalse(x)
        assert Bool(False) == x.__bool__()

        x = Range(10 ** 20, 10 ** 20 + 10, -3)
        self.assertEqual(len(x), 0)
        self.assertEqual(len(list(x)), 0)
        # self.assertFalse(x)
        assert Bool(False) == x.__bool__()

        x = Range(10 ** 20 + 10, 10 ** 20, -3)
        self.assertEqual(len(x), 4)
        self.assertEqual(len(list(x)), 4)
        # self.assertTrue(x)
        assert Bool(True) == x.__bool__()

        # Now test Range() with longs
        for x in [Range(-(2 ** 100)), Range(0, -(2 ** 100)), Range(0, 2 ** 100, -1)]:
            self.assertEqual(list(x), [])
            # self.assertFalse(x)
            assert Bool(False) == x.__bool__()

        a = int(10 * sys.maxsize)
        b = int(100 * sys.maxsize)
        c = int(50 * sys.maxsize)

        self.assertEqual(list(Range(a, a + 2)), [a, a + 1])
        self.assertEqual(list(Range(a + 2, a, -1)), [a + 2, a + 1])
        self.assertEqual(list(Range(a + 4, a, -2)), [a + 4, a + 2])

        seq = list(Range(a, b, c))
        self.assertIn(a, seq)
        self.assertNotIn(b, seq)
        self.assertEqual(len(seq), 2)
        self.assertEqual(seq[0], a)
        self.assertEqual(seq[-1], a + c)

        seq = list(Range(b, a, -c))
        self.assertIn(b, seq)
        self.assertNotIn(a, seq)
        self.assertEqual(len(seq), 2)
        self.assertEqual(seq[0], b)
        self.assertEqual(seq[-1], b - c)

        seq = list(Range(-a, -b, -c))
        self.assertIn(-a, seq)
        self.assertNotIn(-b, seq)
        self.assertEqual(len(seq), 2)
        self.assertEqual(seq[0], -a)
        self.assertEqual(seq[-1], -a - c)
コード例 #3
0
def test_serde() -> None:
    syft_bool = Bool(True)

    serialized = syft_bool._object2proto()

    assert isinstance(serialized, Bool_PB)

    deserialized = Bool._proto2object(proto=serialized)

    assert isinstance(deserialized, Bool)
    assert deserialized.id == syft_bool.id
    assert deserialized == syft_bool
コード例 #4
0
ファイル: bool_test.py プロジェクト: yashlamba/PySyft
def test_convert() -> None:
    assert Bool(10) == SyTrue
    assert Bool(1) == SyTrue
    assert Bool(-1) == SyTrue
    assert Bool(0) == SyFalse
    assert Bool("hello") == SyTrue
    assert Bool("") == SyFalse
    assert Bool() == SyFalse
コード例 #5
0
ファイル: bool_test.py プロジェクト: yashlamba/PySyft
def test_sane_len():
    # this test just tests our assumptions about __len__
    # this will start failing if __len__ changes assertions
    for badval in [String("illegal"), Int(-1), Int(1 << 32)]:

        class A:
            def __len__(self):
                return badval

        try:
            Bool(A())
        except (Exception) as e_bool:
            try:
                len(A())
            except (Exception) as e_len:
                assert str(e_bool) == str(e_len)
コード例 #6
0
ファイル: bool_test.py プロジェクト: yashlamba/PySyft
def test_math() -> None:
    assert +SyFalse == Int(0)
    assert +SyFalse == SyFalse
    assert -SyFalse == Int(0)
    assert -SyFalse == SyFalse
    assert abs(SyFalse) == Int(0)
    assert abs(SyFalse) is not SyFalse
    assert +SyTrue == Int(1)
    assert +SyTrue is not SyTrue
    assert -SyTrue == Int(-1)
    assert abs(SyTrue) == Int(1)
    assert abs(SyTrue) is not SyTrue
    assert ~SyFalse == Int(-1)
    assert ~SyTrue == Int(-2)

    assert SyFalse + Int(2) == Int(2)
    assert SyTrue + Int(2) == Int(3)
    assert Int(2) + SyFalse == Int(2)
    assert Int(2) + SyTrue == Int(3)

    assert SyFalse + SyFalse == Int(0)
    assert SyFalse + SyFalse is not SyFalse
    assert SyFalse + SyTrue == Int(1)
    assert SyFalse + SyTrue is not SyTrue
    assert SyTrue + SyFalse == Int(1)
    assert SyTrue + SyFalse is not SyTrue
    assert SyTrue + SyTrue == Int(2)

    assert SyTrue - SyTrue == Int(0)
    assert SyTrue - SyTrue is not SyFalse
    assert SyFalse - SyFalse == Int(0)
    assert SyFalse - SyFalse is not SyFalse
    assert SyTrue - SyFalse == Int(1)
    assert SyTrue - SyFalse is not SyTrue
    assert SyFalse - SyTrue == Int(-1)

    assert SyTrue * Int(1) == Int(1)
    assert SyFalse * Int(1) == Int(0)
    assert SyFalse * Int(1) is not SyFalse

    assert SyTrue / Int(1) == Int(1)
    assert SyTrue / Int(1) is not SyTrue
    assert SyFalse / Int(1) == Int(0)
    assert SyFalse / Int(1) is not SyFalse

    assert SyTrue % Int(1) == Int(0)
    assert SyTrue % Int(1) is not SyFalse
    assert SyTrue % Int(2) == Int(1)
    assert SyTrue % Int(2) is not SyTrue
    assert SyFalse % Int(1) == Int(0)
    assert SyFalse % Int(1) is not SyFalse

    for b in SyFalse, SyTrue:
        for i in Int(0), Int(1), Int(2):
            assert b**i == Int(b)**i
            assert b**i is not Bool(Int(b)**i)

    assert (Int(1) == Int(1)) == SyTrue
    assert (Int(1) == Int(0)) == SyFalse
    assert (Int(0) < Int(1)) == SyTrue
    assert (Int(1) < Int(0)) == SyFalse
    assert (Int(0) <= Int(0)) == SyTrue
    assert (Int(1) <= Int(0)) == SyFalse
    assert (Int(1) > Int(0)) == SyTrue
    assert (Int(1) > Int(1)) == SyFalse
    assert (Int(1) >= Int(1)) == SyTrue
    assert (Int(0) >= Int(1)) == SyFalse
    assert (Int(0) != Int(1)) == SyTrue
    assert (Int(0) != Int(0)) == SyFalse

    x = List([Int(1)])
    assert (x == x) == SyTrue
    assert (x == x) != SyFalse

    assert (1 in x) == SyTrue
    assert (0 in x) == SyFalse
    assert (1 not in x) == SyFalse
    assert (0 not in x) == SyTrue

    x = Dict({Int(1): Int(2)})
    assert (x is x) == SyTrue
    assert (x is not x) == SyFalse

    assert (Int(1) in x) == SyTrue
    assert (Int(0) in x) == SyFalse
    assert (Int(1) not in x) == SyFalse
    assert (Int(0) not in x) == SyTrue

    assert not SyTrue == SyFalse
    assert not SyFalse == SyTrue
コード例 #7
0
ファイル: bool_test.py プロジェクト: yashlamba/PySyft
def test_to_bytes():
    assert Bool.from_bytes(SyTrue.to_bytes(4, "big"), "big")
    assert not Bool.from_bytes(SyFalse.to_bytes(4, "big"), "big")
コード例 #8
0
ファイル: bool_test.py プロジェクト: yashlamba/PySyft
def test_protobuf_schema():
    assert Bool.get_protobuf_schema()
コード例 #9
0
ファイル: bool_test.py プロジェクト: yashlamba/PySyft
def test_from_bytes():
    assert Bool.from_bytes(b"\x00" * 8, "big") == SyFalse
    assert Bool.from_bytes(b"abcd", "little") == SyTrue
コード例 #10
0
ファイル: bool_test.py プロジェクト: yashlamba/PySyft
# syft absolute
from syft.lib.python.bool import Bool
from syft.lib.python.dict import Dict
from syft.lib.python.float import Float
from syft.lib.python.int import Int
from syft.lib.python.list import List
from syft.lib.python.string import String
from syft.lib.python.tuple import Tuple

SyFalse = Bool(False)
SyTrue = Bool(True)

PyFalse = False
PyTrue = True


def test_repr() -> None:
    assert repr(SyFalse) == String("False")
    assert repr(SyTrue) == String("True")
    assert eval(repr(SyFalse)) == SyFalse
    assert eval(repr(SyTrue)) == SyTrue


def test_str() -> None:
    assert str(SyFalse) == String("False")
    assert str(SyTrue) == String("True")


def test_int() -> None:
    assert int(SyFalse) == Int(0)
    assert int(SyFalse) is not SyFalse
コード例 #11
0
ファイル: range_test.py プロジェクト: stoic-signs/PySyft
    def test_large_Range(self):
        # Check long Ranges (len > sys.maxsize)
        # len() is expected to fail due to limitations of the __len__ protocol
        def _Range_len(x):
            try:
                length = len(x)
            except OverflowError:
                step = x[1] - x[0]
                length = 1 + ((x[-1] - x[0]) // step)
            return length

        a = -sys.maxsize
        b = sys.maxsize
        expected_len = b - a
        x = Range(a, b)
        self.assertIn(a, x)
        self.assertNotIn(b, x)
        self.assertRaises(OverflowError, len, x)
        assert Bool(True) == x.__bool__()
        self.assertEqual(_Range_len(x), expected_len)
        self.assertEqual(x[0], a)
        idx = sys.maxsize + 1
        self.assertEqual(x[idx], a + idx)
        self.assertEqual(x[idx : idx + 1][0], a + idx)  # noqa: E203
        with self.assertRaises(IndexError):
            x[-expected_len - 1]
        with self.assertRaises(IndexError):
            x[expected_len]

        a = 0
        b = 2 * sys.maxsize
        expected_len = b - a
        x = Range(a, b)
        self.assertIn(a, x)
        self.assertNotIn(b, x)
        self.assertRaises(OverflowError, len, x)
        assert Bool(True) == x.__bool__()
        self.assertEqual(_Range_len(x), expected_len)
        self.assertEqual(x[0], a)
        idx = sys.maxsize + 1
        self.assertEqual(x[idx], a + idx)
        self.assertEqual(x[idx : idx + 1][0], a + idx)  # noqa: E203
        with self.assertRaises(IndexError):
            x[-expected_len - 1]
        with self.assertRaises(IndexError):
            x[expected_len]

        a = 0
        b = sys.maxsize ** 10
        c = 2 * sys.maxsize
        expected_len = 1 + (b - a) // c
        x = Range(a, b, c)
        self.assertIn(a, x)
        self.assertNotIn(b, x)
        self.assertRaises(OverflowError, len, x)
        assert Bool(True) == x.__bool__()
        self.assertEqual(_Range_len(x), expected_len)
        self.assertEqual(x[0], a)
        idx = sys.maxsize + 1
        self.assertEqual(x[idx], a + (idx * c))
        self.assertEqual(x[idx : idx + 1][0], a + (idx * c))  # noqa: E203
        with self.assertRaises(IndexError):
            x[-expected_len - 1]
        with self.assertRaises(IndexError):
            x[expected_len]

        a = sys.maxsize ** 10
        b = 0
        c = -2 * sys.maxsize
        expected_len = 1 + (b - a) // c
        x = Range(a, b, c)
        self.assertIn(a, x)
        self.assertNotIn(b, x)
        self.assertRaises(OverflowError, len, x)
        assert Bool(True) == x.__bool__()
        self.assertEqual(_Range_len(x), expected_len)
        self.assertEqual(x[0], a)
        idx = sys.maxsize + 1
        self.assertEqual(x[idx], a + (idx * c))
        self.assertEqual(x[idx : idx + 1][0], a + (idx * c))  # noqa: E203
        with self.assertRaises(IndexError):
            x[-expected_len - 1]
        with self.assertRaises(IndexError):
            x[expected_len]