| 80 | |
| 81 | |
| 82 | class TestDatashader(TestCase): |
| 83 | def setUp(self): |
| 84 | try: |
| 85 | import datashader # noqa |
| 86 | except ImportError: |
| 87 | raise SkipTest('Datashader not available') |
| 88 | if sys.maxsize < 2**32: |
| 89 | raise SkipTest('Datashader does not support 32-bit systems') |
| 90 | self.df = pd.DataFrame(np.random.randn(1000, 3), columns=['a', 'b', 'c']) |
| 91 | |
| 92 | def test_rasterize_datashade_mutually_exclusive(self): |
| 93 | with self.assertRaises(ValueError): |
| 94 | scatter_matrix(self.df, rasterize=True, datashade=True) |
| 95 | |
| 96 | def test_spread_but_no_rasterize_or_datashade(self): |
| 97 | with self.assertRaises(ValueError): |
| 98 | scatter_matrix(self.df, dynspread=True) |
| 99 | with self.assertRaises(ValueError): |
| 100 | scatter_matrix(self.df, spread=True) |
| 101 | with self.assertRaises(ValueError): |
| 102 | scatter_matrix(self.df, dynspread=True, spread=True) |
| 103 | |
| 104 | @parameterized.expand([('rasterize',), ('datashade',)]) |
| 105 | def test_rasterization(self, operation): |
| 106 | sm = scatter_matrix(self.df, **{operation: True}) |
| 107 | dm = sm['a', 'b'] |
| 108 | self.assertEqual(dm.callback.operation.name, operation) |
| 109 | dm[()] |
| 110 | self.assertEqual(len(dm.last.pipeline.operations), 3) |
| 111 | |
| 112 | @parameterized.expand([('rasterize',), ('datashade',)]) |
| 113 | def test_datashade_aggregator(self, operation): |
| 114 | sm = scatter_matrix(self.df, aggregator='mean', **{operation: True}) |
| 115 | dm = sm['a', 'b'] |
| 116 | dm[()] |
| 117 | self.assertEqual(dm.last.pipeline.operations[-1].aggregator, 'mean') |
| 118 | |
| 119 | @parameterized.expand([('spread',), ('dynspread',)]) |
| 120 | def test_spread_rasterize(self, operation): |
| 121 | sm = scatter_matrix(self.df, rasterize=True, **{operation: True}) |
| 122 | dm = sm['a', 'b'] |
| 123 | dm[()] |
| 124 | self.assertEqual(len(dm.last.pipeline.operations), 4) |
| 125 | |
| 126 | @parameterized.expand([('spread',), ('dynspread',)]) |
| 127 | def test_spread_datashade(self, operation): |
| 128 | sm = scatter_matrix(self.df, datashade=True, **{operation: True}) |
| 129 | dm = sm['a', 'b'] |
| 130 | dm[()] |
| 131 | self.assertEqual(len(dm.last.pipeline.operations), 4) |
| 132 | |
| 133 | @parameterized.expand([('spread',), ('dynspread',)]) |
| 134 | def test_spread_kwargs(self, operation): |
| 135 | sm = scatter_matrix(self.df, datashade=True, **{operation: True, 'shape': 'circle'}) |
| 136 | dm = sm['a', 'b'] |
| 137 | dm[()] |
| 138 | self.assertEqual(dm.last.pipeline.operations[-1].args[0].keywords['shape'], 'circle') |
nothing calls this directly
no outgoing calls
no test coverage detected
searching dependent graphs…