|
48 | 48 | import org.numenta.nupic.algorithms.TemporalMemory; |
49 | 49 | import org.numenta.nupic.datagen.ResourceLocator; |
50 | 50 | import org.numenta.nupic.encoders.MultiEncoder; |
| 51 | +import org.numenta.nupic.model.Connections; |
51 | 52 | import org.numenta.nupic.model.SDR; |
52 | 53 | import org.numenta.nupic.network.Layer.FunctionFactory; |
53 | 54 | import org.numenta.nupic.network.sensor.FileSensor; |
@@ -111,6 +112,108 @@ public void testMasking() { |
111 | 112 | algo_content_mask ^= Layer.CLA_CLASSIFIER; |
112 | 113 | assertEquals(0, algo_content_mask); |
113 | 114 | } |
| 115 | + |
| 116 | + @Test |
| 117 | + public void callsOnClosedLayer() { |
| 118 | + Parameters p = NetworkTestHarness.getParameters().copy(); |
| 119 | + p = p.union(NetworkTestHarness.getDayDemoTestEncoderParams()); |
| 120 | + p.set(KEY.RANDOM, new UniversalRandom(42)); |
| 121 | + |
| 122 | + Network n = new Network("AlreadyClosed", p) |
| 123 | + .add(Network.createRegion("AlreadyClosed") |
| 124 | + .add(Network.createLayer("AlreadyClosed", p))); |
| 125 | + |
| 126 | + Layer<?> l = n.lookup("AlreadyClosed").lookup("AlreadyClosed"); |
| 127 | + l.using(new Connections()); |
| 128 | + l.using(p); |
| 129 | + |
| 130 | + l.close(); |
| 131 | + |
| 132 | + try { |
| 133 | + l.using(new Connections()); |
| 134 | + |
| 135 | + fail(); // Should fail here, disallowing "using" call on closed layer |
| 136 | + }catch(Exception e) { |
| 137 | + assertEquals(IllegalStateException.class, e.getClass()); |
| 138 | + assertEquals("Layer already \"closed\"", e.getMessage()); |
| 139 | + } |
| 140 | + |
| 141 | + try { |
| 142 | + l.using(p); |
| 143 | + |
| 144 | + fail(); // Should fail here, disallowing "using" call on closed layer |
| 145 | + }catch(Exception e) { |
| 146 | + assertEquals(IllegalStateException.class, e.getClass()); |
| 147 | + assertEquals("Layer already \"closed\"", e.getMessage()); |
| 148 | + } |
| 149 | + } |
| 150 | + |
| 151 | + @Test |
| 152 | + public void testNoName() { |
| 153 | + Parameters p = Parameters.getAllDefaultParameters(); |
| 154 | + |
| 155 | + try { |
| 156 | + new Network("", p) |
| 157 | + .add(Network.createRegion("") |
| 158 | + .add(Network.createLayer("", p) |
| 159 | + .add(Sensor.create( |
| 160 | + FileSensor::create, |
| 161 | + SensorParams.create( |
| 162 | + Keys::path, "", ResourceLocator.path("rec-center-hourly-small.csv")))))); |
| 163 | + |
| 164 | + fail(); // Fails due to no name... |
| 165 | + }catch(Exception e) { |
| 166 | + assertEquals(IllegalStateException.class, e.getClass()); |
| 167 | + assertEquals("All Networks must have a name. Increases digestion, and overall happiness!", |
| 168 | + e.getMessage()); |
| 169 | + } |
| 170 | + |
| 171 | + try { |
| 172 | + new Network("Name", p) |
| 173 | + .add(Network.createRegion("") |
| 174 | + .add(Network.createLayer("", p) |
| 175 | + .add(Sensor.create( |
| 176 | + FileSensor::create, |
| 177 | + SensorParams.create( |
| 178 | + Keys::path, "", ResourceLocator.path("rec-center-hourly-small.csv")))))); |
| 179 | + |
| 180 | + fail(); // Fails due to no name on Region... |
| 181 | + }catch(Exception e) { |
| 182 | + assertEquals(IllegalArgumentException.class, e.getClass()); |
| 183 | + assertEquals("Name may not be null or empty. ...not that anyone here advocates name calling!", |
| 184 | + e.getMessage()); |
| 185 | + } |
| 186 | + } |
| 187 | + |
| 188 | + @Test |
| 189 | + public void testAddSensor() { |
| 190 | + Parameters p = NetworkTestHarness.getParameters().copy(); |
| 191 | + p = p.union(NetworkTestHarness.getDayDemoTestEncoderParams()); |
| 192 | + p.set(KEY.RANDOM, new UniversalRandom(42)); |
| 193 | + |
| 194 | + try { |
| 195 | + PublisherSupplier supplier = PublisherSupplier.builder() |
| 196 | + .addHeader("dayOfWeek") |
| 197 | + .addHeader("int") |
| 198 | + .addHeader("B").build(); |
| 199 | + |
| 200 | + Network n = new Network("Name", p) |
| 201 | + .add(Network.createRegion("Name") |
| 202 | + .add(Network.createLayer("Name", p))); |
| 203 | + |
| 204 | + Layer<?> l = n.lookup("Name").lookup("Name"); |
| 205 | + l.add(Sensor.create( |
| 206 | + ObservableSensor::create, |
| 207 | + SensorParams.create( |
| 208 | + Keys::obs, "", supplier))); |
| 209 | + |
| 210 | + assertEquals(n, l.getNetwork()); |
| 211 | + assertTrue(l.getRegion() != null); |
| 212 | + |
| 213 | + }catch(Exception e) { |
| 214 | + e.printStackTrace(); |
| 215 | + } |
| 216 | + } |
114 | 217 |
|
115 | 218 | @Test |
116 | 219 | public void testGetAllValues() { |
|
0 commit comments