@ngdoc overview @name Tutorial: 9 - Filters @description
angular.filter('checkmark', function(input) {
  return input ? '\u2713' : '\u2718';
});
The name of our filter is "checkmark". The `input` evaluates to either `true` or `false`, and we
return one of two unicode characters we have chosen to represent true or false (`\u2713` and
`\u2718`).
## Template
Since the filter code lives in the `app/js/filters.js` file, we need to include this file in our
layout template.
__`app/index.html`:__
... ...The syntax for using filters in angular templates is as follows: {{ expression | filter }} Let's employ the filter in the phone details template: __`app/partials/phone-detail.html`:__
...
    
describe('checkmark filter', function() {
  it('should convert boolean values to unicode checkmark or cross', function() {
    expect(angular.filter.checkmark(true)).toBe('\u2713');
    expect(angular.filter.checkmark(false)).toBe('\u2718');
  });
})
To run the unit tests, execute the `./scripts/test.sh` script and you should see the following
output.
        Chrome: Runner reset.
        ....
        Total 4 tests (Passed: 4; Fails: 0; Errors: 0) (3.00 ms)
          Chrome 11.0.696.57 Mac OS: Run 4 tests (Passed: 4; Fails: 0; Errors 0) (3.00 ms)
# Experiments
* Let's experiment with some of the {@link api/angular.filter built-in angular filters} and add the
following bindings to `index.html`:
  * `{{ "lower cap string" | uppercase }}`
  * `{{ {foo: "bar", baz: 23} | json }}`
  * `{{ 1304375948024 | date }}`
  * `{{ 1304375948024 | date:"'MM/dd/yyyy @ h:mma" }}`
*  We can also create a model with an input element, and combine it with a filtered binding. Add
the following to index.html:
         Uppercased: {{ userInput | uppercase }}
# Summary
Now that you have learned how to write and test a custom filter, go to step 10 to learn how we can
use angular to enhance the phone details page further.