// // CSSNthExpressionsParserTests.m // HTMLKit // // Created by Iska on 10/10/15. // Copyright © 2015 BrainCookie. All rights reserved. // #import #import "CSSNthExpressionParser.h" @interface CSSNthExpressionsParserTests : XCTestCase @end @implementation CSSNthExpressionsParserTests - (void)testOddEvenExpression { CSSNthExpression odd = [CSSNthExpressionParser parseExpression:@"odd"]; XCTAssertEqual(odd.an, 2); XCTAssertEqual(odd.b, 1); odd = [CSSNthExpressionParser parseExpression:@" odd"]; XCTAssertEqual(odd.an, 2); XCTAssertEqual(odd.b, 1); odd = [CSSNthExpressionParser parseExpression:@"odd "]; XCTAssertEqual(odd.an, 2); XCTAssertEqual(odd.b, 1); odd = [CSSNthExpressionParser parseExpression:@" odd "]; XCTAssertEqual(odd.an, 2); XCTAssertEqual(odd.b, 1); CSSNthExpression even = [CSSNthExpressionParser parseExpression:@"even"]; XCTAssertEqual(even.an, 2); XCTAssertEqual(even.b, 0); even = [CSSNthExpressionParser parseExpression:@" even"]; XCTAssertEqual(even.an, 2); XCTAssertEqual(even.b, 0); even = [CSSNthExpressionParser parseExpression:@"even "]; XCTAssertEqual(even.an, 2); XCTAssertEqual(even.b, 0); even = [CSSNthExpressionParser parseExpression:@" even "]; XCTAssertEqual(even.an, 2); XCTAssertEqual(even.b, 0); } - (void)test_B_Expression { CSSNthExpression expression = [CSSNthExpressionParser parseExpression:@"1"]; XCTAssertEqual(expression.an, 0); XCTAssertEqual(expression.b, 1); expression = [CSSNthExpressionParser parseExpression:@"+1"]; XCTAssertEqual(expression.an, 0); XCTAssertEqual(expression.b, 1); expression = [CSSNthExpressionParser parseExpression:@"-1"]; XCTAssertEqual(expression.an, 0); XCTAssertEqual(expression.b, -1); expression = [CSSNthExpressionParser parseExpression:@" -1"]; XCTAssertEqual(expression.an, 0); XCTAssertEqual(expression.b, -1); expression = [CSSNthExpressionParser parseExpression:@"+1 "]; XCTAssertEqual(expression.an, 0); XCTAssertEqual(expression.b, 1); expression = [CSSNthExpressionParser parseExpression:@" +1 "]; XCTAssertEqual(expression.an, 0); XCTAssertEqual(expression.b, 1); } - (void)test_AN_Expression { CSSNthExpression expression = [CSSNthExpressionParser parseExpression:@"n"]; XCTAssertEqual(expression.an, 1); XCTAssertEqual(expression.b, 0); expression = [CSSNthExpressionParser parseExpression:@"+n"]; XCTAssertEqual(expression.an, 1); XCTAssertEqual(expression.b, 0); expression = [CSSNthExpressionParser parseExpression:@"2n"]; XCTAssertEqual(expression.an, 2); XCTAssertEqual(expression.b, 0); expression = [CSSNthExpressionParser parseExpression:@"+2n"]; XCTAssertEqual(expression.an, 2); XCTAssertEqual(expression.b, 0); expression = [CSSNthExpressionParser parseExpression:@"-n"]; XCTAssertEqual(expression.an, -1); XCTAssertEqual(expression.b, 0); expression = [CSSNthExpressionParser parseExpression:@"-2n"]; XCTAssertEqual(expression.an, -2); XCTAssertEqual(expression.b, 0); } - (void)test_AN_B_Expression { CSSNthExpression expression = [CSSNthExpressionParser parseExpression:@"2n+1"]; XCTAssertEqual(expression.an, 2); XCTAssertEqual(expression.b, 1); expression = [CSSNthExpressionParser parseExpression:@"+2n+1"]; XCTAssertEqual(expression.an, 2); XCTAssertEqual(expression.b, 1); expression = [CSSNthExpressionParser parseExpression:@"-2n+1"]; XCTAssertEqual(expression.an, -2); XCTAssertEqual(expression.b, 1); expression = [CSSNthExpressionParser parseExpression:@"2n-1"]; XCTAssertEqual(expression.an, 2); XCTAssertEqual(expression.b, -1); expression = [CSSNthExpressionParser parseExpression:@"-2n-1"]; XCTAssertEqual(expression.an, -2); XCTAssertEqual(expression.b, -1); expression = [CSSNthExpressionParser parseExpression:@"n-1"]; XCTAssertEqual(expression.an, 1); XCTAssertEqual(expression.b, -1); expression = [CSSNthExpressionParser parseExpression:@"-n-1"]; XCTAssertEqual(expression.an, -1); XCTAssertEqual(expression.b, -1); expression = [CSSNthExpressionParser parseExpression:@"+n-1"]; XCTAssertEqual(expression.an, 1); XCTAssertEqual(expression.b, -1); expression = [CSSNthExpressionParser parseExpression:@"+2n + 1"]; XCTAssertEqual(expression.an, 2); XCTAssertEqual(expression.b, 1); expression = [CSSNthExpressionParser parseExpression:@"-2n + 1"]; XCTAssertEqual(expression.an, -2); XCTAssertEqual(expression.b, 1); expression = [CSSNthExpressionParser parseExpression:@" 2n - 1"]; XCTAssertEqual(expression.an, 2); XCTAssertEqual(expression.b, -1); expression = [CSSNthExpressionParser parseExpression:@" -2n -1 "]; XCTAssertEqual(expression.an, -2); XCTAssertEqual(expression.b, -1); } @end