31 Commits

Author SHA1 Message Date
Erik Rauer
f028b7005d Add test for string/conj-char
This adds a test for the `string/conj-char` instruction
2021-03-16 22:27:20 -05:00
Erik Rauer
d73b7c6117 Add test for string/concat
This adds a test for the `string/concat` instruction
2021-03-16 22:26:35 -05:00
Erik Rauer
e21ca24d9d Add test for string/butlast
This adds a test for the `string/butlast` instruction
2021-03-16 22:26:35 -05:00
Erik Rauer
2af20b66b2 Delete core_test.clj file
This file was rather unnecessary so we decided to remove it for the time being.
2021-01-21 15:46:10 -06:00
Erik Rauer
080df4709e Add tests for vector/_iterate
Tests work by iterating the appropriate print instruction on the vector and checking that resulting string in `:output` stack is correct.
2021-01-07 15:48:28 -06:00
Erik Rauer
39626a1764 Fix vector/_replacefirst tests
This fixes the `vector/_replacefirst` tests to be consistent with the changes made to `vector/_replacefirst` in the previous commit.
2021-01-07 14:27:14 -06:00
Erik Rauer
5412ff6c90 Add tests for vector/_take
This add tests for `vector/_take`.
2021-01-05 15:52:59 -06:00
Erik Rauer
2ffffa9fd4 Add tests for vector/_set
This adds tests for `vector/_set`.
2021-01-05 15:46:38 -06:00
Erik Rauer
1c58bcca49 Fix tests for vector/_reverse 2021-01-05 15:26:11 -06:00
Erik Rauer
fce10ca97c Add tests for vector/_reverse
This adds tests for `vector/_reverse`.
2021-01-05 14:55:23 -06:00
Erik Rauer
8afa8f83e5 Add tests for vector/_rest
This adds tests for `vector/_rest`.
2021-01-05 14:49:54 -06:00
Erik Rauer
bcddca184c Add tests for vector/_replacefirst
Add tests for `vector/_replacefirst`.
2021-01-03 18:29:16 -06:00
Erik Rauer
cfe91b5ced Add tests for `vector/_replace'
This adds tests for `vector/_replace`.

We might want to change `vector/_replace` to return `:ignore-instruction` when the value to be replaced is not present in the vector. Same with `vector/_remove`.
2021-01-03 17:50:42 -06:00
Erik Rauer
94d421ef0a Add tests for vector/_remove
This adds tests for `vector/_remove`.
2021-01-03 16:17:09 -06:00
Erik Rauer
f71760c08f Add tests for vector/_pushall
This adds tests for `vector/_pushall`.
2020-12-30 14:47:29 -06:00
Erik Rauer
aa2ed597a1 Add tests for vector/_occurrencesof
This adds tests for `vector/_occurrencesof`.
2020-12-30 14:23:14 -06:00
Erik Rauer
bef5a398eb Add tests for vector/_nth
This adds tests for `vector/_nth`.
2020-12-29 16:18:45 -06:00
Erik Rauer
aae0873c81 Add tests for vector/_length
This adds tests for `vector/_length`.

Also moves the tests for `vector/_indexof` higher in the file in order to be more consistent with the ordering in `vector.cljc`.
2020-12-29 15:08:33 -06:00
Erik Rauer
89b861f124 Add tests for vector/_conj
This adds tests for `vector/_conj`.

Also moves the tests for `vector/_concat` towards the top of the file to be more consistent with the order in `vector.cljc`.
2020-12-29 14:55:58 -06:00
Erik Rauer
5e87478ceb Add tests for vector/_butlast
This adds tests for `vector/_butlast`.
2020-12-29 14:43:39 -06:00
Nic McPhee
957af4fc06 Use new gen-specs macro for other test cases
This moved the new `gen-specs` macro to the top of the file, and uses it to simplify the generation for the existing specifications. This allowed us to remove quite a lot of code.

We also had to change the order of arguments for all the "old" check functions so that `value-type` comes first. We renamed a few check functions so the naming is more consistent.
2020-12-28 15:45:45 -06:00
Nic McPhee
d30f7c195e Write generalized spec generation macro
This add `gen-spec` which provides a fairly general macro for creating `test.check` specifications for vector instructions.  It takes a string used to generate specification names, a function used to check the state after running the function under test, and a list of keywords indicating types for arguments generated by `test.check` and passed to the check function.

Keywords like `:integer` and `:string` are associated with "simple" generators such as `gen/small-integer` and `gen/string`. The keyword `:vector` is used to generate a vector of items whose type is specified by the `generator` argument to `generator-for-arg-type`. This allows us to loop over all of the supported vector item types in the macro and generate a separate specification for each type.

We moved the `value-type` argument for the `check` functions to the front to simplify passing in the value type arguments, which can vary in number.
2020-12-28 15:27:10 -06:00
Erik Rauer
b41c35582a Make prop/for-all call more consistent throughout the vector specs
The specs for `vector/_emptyvector`, `vector/_first`, and `vector/_last` all called `prop/for-all` within their 'check' functions, whereas the other specs all called it within their macros. This change makes the three specs mentioned more consistent with the rest of the specs by having them also call `prop/for-all` within their macros.
2020-12-27 15:33:56 -06:00
Erik Rauer
a606a47ce1 Add tests for vector/_contains
This adds the tests for `vector/_contains`
2020-12-27 15:08:51 -06:00
Nic McPhee
9028a8e174 "Simplify" the testing for concat and subvec
This introduces some fancy macro action that allows us to skip the four calls to `(concat-spec …)` with the different generators and types.

@ErikRauer and I wrestled with this for a _long_ time today, and it turned out that it was absolutely necessary to quote the generators in `gen-type-pairs on lines 10-13. I'm not 100% sure why, but it seems that without that something (perhaps a level of macro-ness) got unwrapped too early and then it couldn't find the generator because it had lost the namespace it belonged in.

Whether this actually _simplifies_ things is really up for debate. If this is as far as we get, it's probably not worth it. If we can find a reasonable way to reduce the other sources of duplication, however, it might be worth it?
2020-12-21 16:59:04 -06:00
Nic McPhee
bd59045767 Add tests for vector/_concat
This adds tests for `vector/_concat`.
2020-12-21 16:40:22 -06:00
Nic McPhee
75de8e5be5 Comment out the boilerplate test in core-test
We should remove that, and maybe the whole file, but for now I'll just comment it out.
2020-12-21 16:39:48 -06:00
Nic McPhee
ab1f6d4396 Add tests for vector/_last
This adds test.check tests for `vector/_last`. This is _really_ similar to `vector/_first` (and the other vector tests), so I think there are definitely ways to extract common logic from these.
2020-12-18 17:02:18 -06:00
Nic McPhee
f2eecc774f Add tests for vector/_first
These turned up an oversight in the implementation in `vector/_first` that is addressed in the next commit.
2020-12-17 18:42:57 -06:00
Nic McPhee
d1e863a23a Start test.check tests on vector instructions
This is a start on using `test.check` to write tests for the vector instructions. We currently have tests for:

   * `vector/_emptyvector`
   * `vector/_indexof`
   * `vector/_subvec`

There are _lots_ of other functions still to be tested.

This did reveal errors in `vector/_subvec`, which will be addressed in the next commit.

We used macros to make it easy to generate tests for each of the four vector types; this should be extensible to additional vector types in the future if needed.
2020-12-17 15:56:27 -06:00
Lee Spector
62dc09ec32 Create empty project 2020-06-07 11:13:33 -04:00