mirror of
https://github.com/donnemartin/interactive-coding-challenges
synced 2026-01-08 10:28:03 +00:00
@@ -92,9 +92,7 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"class Bit(object):\n",
|
||||
@@ -145,40 +143,38 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# %load test_bit.py\n",
|
||||
"from nose.tools import assert_equal\n",
|
||||
"import unittest\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"class TestBit(object):\n",
|
||||
"class TestBit(unittest.TestCase):\n",
|
||||
"\n",
|
||||
" def test_bit(self):\n",
|
||||
" number = int('10001110', base=2)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" assert_equal(bit.get_bit(index=3), True)\n",
|
||||
" self.assertEqual(bit.get_bit(index=3), True)\n",
|
||||
" expected = int('10011110', base=2)\n",
|
||||
" assert_equal(bit.set_bit(index=4), expected)\n",
|
||||
" self.assertEqual(bit.set_bit(index=4), expected)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" expected = int('10000110', base=2)\n",
|
||||
" assert_equal(bit.clear_bit(index=3), expected)\n",
|
||||
" self.assertEqual(bit.clear_bit(index=3), expected)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" expected = int('00000110', base=2)\n",
|
||||
" assert_equal(bit.clear_bits_msb_to_index(index=3), expected)\n",
|
||||
" self.assertEqual(bit.clear_bits_msb_to_index(index=3), expected)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" expected = int('10000000', base=2)\n",
|
||||
" assert_equal(bit.clear_bits_index_to_lsb(index=3), expected)\n",
|
||||
" self.assertEqual(bit.clear_bits_index_to_lsb(index=3), expected)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" assert_equal(bit.update_bit(index=3, value=1), number)\n",
|
||||
" self.assertEqual(bit.update_bit(index=3, value=1), number)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" expected = int('10000110', base=2)\n",
|
||||
" assert_equal(bit.update_bit(index=3, value=0), expected)\n",
|
||||
" self.assertEqual(bit.update_bit(index=3, value=0), expected)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" expected = int('10001111', base=2)\n",
|
||||
" assert_equal(bit.update_bit(index=0, value=1), expected)\n",
|
||||
" self.assertEqual(bit.update_bit(index=0, value=1), expected)\n",
|
||||
" print('Success: test_bit')\n",
|
||||
"\n",
|
||||
"\n",
|
||||
@@ -217,9 +213,9 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.5.0"
|
||||
"version": "3.7.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 0
|
||||
"nbformat_minor": 1
|
||||
}
|
||||
|
||||
@@ -179,9 +179,7 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def validate_index(func):\n",
|
||||
@@ -196,9 +194,7 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"class Bit(object):\n",
|
||||
@@ -260,9 +256,7 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
@@ -274,34 +268,34 @@
|
||||
],
|
||||
"source": [
|
||||
"%%writefile test_bit.py\n",
|
||||
"from nose.tools import assert_equal\n",
|
||||
"import unittest\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"class TestBit(object):\n",
|
||||
"class TestBit(unittest.TestCase):\n",
|
||||
"\n",
|
||||
" def test_bit(self):\n",
|
||||
" number = int('10001110', base=2)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" assert_equal(bit.get_bit(index=3), True)\n",
|
||||
" self.assertEqual(bit.get_bit(index=3), True)\n",
|
||||
" expected = int('10011110', base=2)\n",
|
||||
" assert_equal(bit.set_bit(index=4), expected)\n",
|
||||
" self.assertEqual(bit.set_bit(index=4), expected)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" expected = int('10000110', base=2)\n",
|
||||
" assert_equal(bit.clear_bit(index=3), expected)\n",
|
||||
" self.assertEqual(bit.clear_bit(index=3), expected)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" expected = int('00000110', base=2)\n",
|
||||
" assert_equal(bit.clear_bits_msb_to_index(index=3), expected)\n",
|
||||
" self.assertEqual(bit.clear_bits_msb_to_index(index=3), expected)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" expected = int('10000000', base=2)\n",
|
||||
" assert_equal(bit.clear_bits_index_to_lsb(index=3), expected)\n",
|
||||
" self.assertEqual(bit.clear_bits_index_to_lsb(index=3), expected)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" assert_equal(bit.update_bit(index=3, value=1), number)\n",
|
||||
" self.assertEqual(bit.update_bit(index=3, value=1), number)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" expected = int('10000110', base=2)\n",
|
||||
" assert_equal(bit.update_bit(index=3, value=0), expected)\n",
|
||||
" self.assertEqual(bit.update_bit(index=3, value=0), expected)\n",
|
||||
" bit = Bit(number)\n",
|
||||
" expected = int('10001111', base=2)\n",
|
||||
" assert_equal(bit.update_bit(index=0, value=1), expected)\n",
|
||||
" self.assertEqual(bit.update_bit(index=0, value=1), expected)\n",
|
||||
" print('Success: test_bit')\n",
|
||||
"\n",
|
||||
"\n",
|
||||
@@ -317,9 +311,7 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
@@ -350,9 +342,9 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.5.0"
|
||||
"version": "3.7.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 0
|
||||
"nbformat_minor": 1
|
||||
}
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
from nose.tools import assert_equal
|
||||
import unittest
|
||||
|
||||
|
||||
class TestBit(object):
|
||||
class TestBit(unittest.TestCase):
|
||||
|
||||
def test_bit(self):
|
||||
number = int('10001110', base=2)
|
||||
bit = Bit(number)
|
||||
assert_equal(bit.get_bit(index=3), True)
|
||||
self.assertEqual(bit.get_bit(index=3), True)
|
||||
expected = int('10011110', base=2)
|
||||
assert_equal(bit.set_bit(index=4), expected)
|
||||
self.assertEqual(bit.set_bit(index=4), expected)
|
||||
bit = Bit(number)
|
||||
expected = int('10000110', base=2)
|
||||
assert_equal(bit.clear_bit(index=3), expected)
|
||||
self.assertEqual(bit.clear_bit(index=3), expected)
|
||||
bit = Bit(number)
|
||||
expected = int('00000110', base=2)
|
||||
assert_equal(bit.clear_bits_msb_to_index(index=3), expected)
|
||||
self.assertEqual(bit.clear_bits_msb_to_index(index=3), expected)
|
||||
bit = Bit(number)
|
||||
expected = int('10000000', base=2)
|
||||
assert_equal(bit.clear_bits_index_to_lsb(index=3), expected)
|
||||
self.assertEqual(bit.clear_bits_index_to_lsb(index=3), expected)
|
||||
bit = Bit(number)
|
||||
assert_equal(bit.update_bit(index=3, value=1), number)
|
||||
self.assertEqual(bit.update_bit(index=3, value=1), number)
|
||||
bit = Bit(number)
|
||||
expected = int('10000110', base=2)
|
||||
assert_equal(bit.update_bit(index=3, value=0), expected)
|
||||
self.assertEqual(bit.update_bit(index=3, value=0), expected)
|
||||
bit = Bit(number)
|
||||
expected = int('10001111', base=2)
|
||||
assert_equal(bit.update_bit(index=0, value=1), expected)
|
||||
self.assertEqual(bit.update_bit(index=0, value=1), expected)
|
||||
print('Success: test_bit')
|
||||
|
||||
|
||||
@@ -35,4 +35,4 @@ def main():
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user