Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  MentionsHelperTests.swift   Sprache: JAVA

 

import XCTest
@testable import ThreemaFramework

final class MentionsHelperTests: XCTestCase {
    
    override func setUpWithError() throws {
        // Put setup code here. This method is called before the invocation of each test method in the class.
    }
    
    override func tearDownWithError() throws {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
    }
    
    func testNoUnnecessaryMentions() throws {
        let mentionsHelper = MentionsHelper()
        let testText = "Hello World"
        let chars: [Character] = Array(testText)
        for i in 0..<testText.count {
            let addedText = "\(chars[i])"
            let range = NSMakeRange(i, 1)
            let recognizedMention = mentionsHelper.couldBeMention(text: addedText, location: range)
            assert(recognizedMention == nil)
        }
    }
    
    func testBasicMention() throws {
        let mentionsHelper = MentionsHelper()
        let testText = "@Hello World"
        let chars: [Character] = Array(testText)
        for i in 0..<testText.count {
            let addedText = "\(chars[i])"
            let range = NSMakeRange(i, 0)
            
            print("\(addedText) - \(range)")
            let recognizedMention = mentionsHelper.couldBeMention(text: addedText, location: range)
            let startIndex = testText.index(testText.startIndex, offsetBy: 1)
            let endIndex = testText.index(testText.startIndex, offsetBy: 1 + i)
            
            let goldenSubstring = testText.suffix(from: startIndex).prefix(upTo: endIndex)
            print(goldenSubstring)
            assert(recognizedMention! == goldenSubstring)
        }
    }
    
    func testEditedMention() throws {
        let mentionsHelper = MentionsHelper()
        
        let insertionArray: [(text: String, range: NSRange, expectation: String)] = [
            ("@", NSMakeRange(0, 0), ""),
            ("H", NSMakeRange(1, 0), "H"),
            ("e", NSMakeRange(2, 0), "He"),
            ("", NSMakeRange(2, 1), "H"),
            ("e", NSMakeRange(2, 0), "He"),
            ("l", NSMakeRange(3, 0), "Hel"),
            ("l", NSMakeRange(4, 0), "Hell"),
            ("o", NSMakeRange(5, 0), "Hello"),
        ]
        
        for insertion in insertionArray {
            let recognizedMention = mentionsHelper.couldBeMention(text: insertion.text, location: insertion.range)
            
            assert(recognizedMention != nil)
            assert(recognizedMention == insertion.expectation)
        }
    }
    
    func testBasicDeletedMention() throws {
        let mentionsHelper = MentionsHelper()
        
        let insertionArray: [(text: String, range: NSRange, expectation: String)] = [
            ("H", NSMakeRange(0, 0), ""),
            ("", NSMakeRange(0, 1), ""),
            ("H", NSMakeRange(0, 0), ""),
            ("e", NSMakeRange(1, 0), ""),
            ("l", NSMakeRange(2, 0), ""),
            ("l", NSMakeRange(3, 0), ""),
            ("o", NSMakeRange(4, 0), ""),
            (" ", NSMakeRange(5, 0), ""),
            ("W", NSMakeRange(6, 0), ""),
            ("o", NSMakeRange(7, 0), ""),
            ("r", NSMakeRange(8, 0), ""),
            ("l", NSMakeRange(9, 0), ""),
            ("d", NSMakeRange(10, 0), ""),
            (" ", NSMakeRange(11, 0), ""),
            ("@", NSMakeRange(12, 0), ""),
            ("d", NSMakeRange(13, 0), "d"),
            ("o", NSMakeRange(14, 0), "do"),
            ("l", NSMakeRange(15, 0), "dol"),
            ("o", NSMakeRange(16, 0), "dolo"),
            ("r", NSMakeRange(17, 0), "dolor"),
            (" ", NSMakeRange(18, 0), "dolor "),
            ("i", NSMakeRange(19, 0), "dolor i"),
            ("", NSMakeRange(19, 1), "dolor "),
            ("s", NSMakeRange(19, 0), "dolor s"),
            ("i", NSMakeRange(20, 0), "dolor si"),
            ("t", NSMakeRange(21, 0), "dolor sit"),
            (" ", NSMakeRange(22, 0), "dolor sit "),
            ("a", NSMakeRange(23, 0), "dolor sit a"),
            ("n", NSMakeRange(24, 0), "dolor sit an"),
            ("e", NSMakeRange(25, 0), "dolor sit ane"),
            ("m", NSMakeRange(26, 0), "dolor sit anem"),
            ("", NSMakeRange(26, 1), "dolor sit ane"),
            ("", NSMakeRange(25, 1), "dolor sit an"),
            ("", NSMakeRange(24, 1), "dolor sit a"),
            ("", NSMakeRange(23, 1), "dolor sit "),
            ("", NSMakeRange(22, 1), "dolor sit"),
            ("", NSMakeRange(21, 1), "dolor si"),
            ("", NSMakeRange(20, 1), "dolor s"),
            ("", NSMakeRange(19, 1), "dolor "),
            ("", NSMakeRange(18, 1), "dolor"),
            ("", NSMakeRange(17, 1), "dolo"),
            ("", NSMakeRange(16, 1), "dol"),
            ("", NSMakeRange(15, 1), "do"),
            ("", NSMakeRange(14, 1), "d"),
            ("", NSMakeRange(13, 1), ""),
            ("", NSMakeRange(12, 1), ""),
            ("", NSMakeRange(11, 1), ""),
            (" ", NSMakeRange(11, 0), ""),
            ("@", NSMakeRange(12, 0), ""),
            ("l", NSMakeRange(13, 0), "l"),
            ("o", NSMakeRange(14, 0), "lo"),
            ("r", NSMakeRange(15, 0), "lor"),
            ("e", NSMakeRange(16, 0), "lore"),
            ("m", NSMakeRange(17, 0), "lorem"),
            ("", NSMakeRange(17, 1), "lore"),
            ("", NSMakeRange(16, 1), "lor"),
            ("", NSMakeRange(15, 1), "lo"),
            ("", NSMakeRange(14, 1), "l"),
            ("", NSMakeRange(0, 14), ""),
        ]
        
        for insertion in insertionArray {
            let recognizedMention = mentionsHelper.couldBeMention(text: insertion.text, location: insertion.range)
            
            if recognizedMention != nil {
                assert(recognizedMention == insertion.expectation)
            }
            else {
                assert(insertion.expectation == "")
            }
        }
    }
    
    func testSecondUnrelatedMention() throws {
        let mentionsHelper = MentionsHelper()
        
        let insertionArray: [(text: String, range: NSRange, expectation: String)] = [
            ("Q", NSMakeRange(0, 0), ""),
            ("u", NSMakeRange(1, 0), ""),
            ("o", NSMakeRange(2, 0), ""),
            ("d", NSMakeRange(3, 0), ""),
            (" ", NSMakeRange(4, 0), ""),
            ("i", NSMakeRange(5, 0), ""),
            ("m", NSMakeRange(6, 0), ""),
            ("p", NSMakeRange(7, 0), ""),
            ("e", NSMakeRange(8, 0), ""),
            ("d", NSMakeRange(9, 0), ""),
            ("i", NSMakeRange(10, 0), ""),
            ("t", NSMakeRange(11, 0), ""),
            ("impeding", NSMakeRange(5, 7), ""),
            (" ", NSMakeRange(13, 0), ""),
            ("q", NSMakeRange(14, 0), ""),
            ("u", NSMakeRange(15, 0), ""),
            ("i", NSMakeRange(16, 0), ""),
            (" ", NSMakeRange(17, 0), ""),
            ("t", NSMakeRange(18, 0), ""),
            ("o", NSMakeRange(19, 0), ""),
            ("t", NSMakeRange(20, 0), ""),
            ("a", NSMakeRange(21, 0), ""),
            ("m", NSMakeRange(22, 0), ""),
            ("total", NSMakeRange(18, 5), ""),
            (".", NSMakeRange(23, 0), ""),
            (" ", NSMakeRange(24, 0), ""),
            ("@", NSMakeRange(25, 0), ""),
            ("c", NSMakeRange(26, 0), "c"),
            ("u", NSMakeRange(27, 0), "cu"),
            ("l", NSMakeRange(28, 0), "cul"),
            ("p", NSMakeRange(29, 0), "culp"),
            ("a", NSMakeRange(30, 0), "culpa"),
            (" ", NSMakeRange(31, 0), "culpa "),
            ("d", NSMakeRange(32, 0), "culpa d"),
            ("o", NSMakeRange(33, 0), "culpa do"),
            ("l", NSMakeRange(34, 0), "culpa dol"),
            ("o", NSMakeRange(35, 0), "culpa dolo"),
            ("r", NSMakeRange(36, 0), "culpa dolor"),
            ("i", NSMakeRange(37, 0), "culpa dolori"),
            ("b", NSMakeRange(38, 0), "culpa dolorib"),
            ("u", NSMakeRange(39, 0), "culpa doloribu"),
            ("s", NSMakeRange(40, 0), "culpa doloribus"),
            (" ", NSMakeRange(41, 0), "culpa doloribus "),
            ("o", NSMakeRange(42, 0), "culpa doloribus o"),
            ("d", NSMakeRange(43, 0), "culpa doloribus od"),
            ("i", NSMakeRange(44, 0), "culpa doloribus odi"),
            ("t", NSMakeRange(45, 0), "culpa doloribus odit"),
            (" ", NSMakeRange(46, 0), "culpa doloribus odit "),
            ("a", NSMakeRange(47, 0), "culpa doloribus odit a"),
            ("b", NSMakeRange(48, 0), "culpa doloribus odit ab"),
            ("an", NSMakeRange(47, 2), "culpa doloribus odit an"),
            (".", NSMakeRange(49, 0), "culpa doloribus odit an."),
            (" ", NSMakeRange(50, 0), "culpa doloribus odit an. "),
            ("@", NSMakeRange(51, 0), ""),
            ("q", NSMakeRange(52, 0), "q"),
            ("u", NSMakeRange(53, 0), "qu"),
            ("i", NSMakeRange(54, 0), "qui"),
            ("a", NSMakeRange(55, 0), "quia"),
            (" ", NSMakeRange(56, 0), "quia "),
            ("i", NSMakeRange(57, 0), "quia i"),
            ("u", NSMakeRange(58, 0), "quia iu"),
            ("s", NSMakeRange(59, 0), "quia ius"),
            ("t", NSMakeRange(60, 0), "quia iust"),
            ("o", NSMakeRange(61, 0), "quia iusto"),
            ("justo", NSMakeRange(57, 5), "quia justo"),
            (" ", NSMakeRange(62, 0), "quia justo "),
            ("e", NSMakeRange(63, 0), "quia justo e"),
            ("t", NSMakeRange(64, 0), "quia justo et"),
            (" ", NSMakeRange(65, 0), "quia justo et "),
            ("o", NSMakeRange(66, 0), "quia justo et o"),
            ("f", NSMakeRange(67, 0), "quia justo et of"),
            ("f", NSMakeRange(68, 0), "quia justo et off"),
            ("i", NSMakeRange(69, 0), "quia justo et offi"),
            ("c", NSMakeRange(70, 0), "quia justo et offic"),
            ("i", NSMakeRange(71, 0), "quia justo et offici"),
            ("i", NSMakeRange(72, 0), "quia justo et officii"),
            ("i", NSMakeRange(73, 0), "quia justo et officiii"),
            ("s", NSMakeRange(74, 0), "quia justo et officiiis"),
            (" ", NSMakeRange(75, 0), "quia justo et officiiis "),
            ("q", NSMakeRange(76, 0), "quia justo et officiiis q"),
            ("u", NSMakeRange(77, 0), "quia justo et officiiis qu"),
            ("i", NSMakeRange(78, 0), "quia justo et officiiis qui"),
            (" ", NSMakeRange(79, 0), "quia justo et officiiis qui "),
            ("v", NSMakeRange(80, 0), "quia justo et officiiis qui v"),
            ("o", NSMakeRange(81, 0), "quia justo et officiiis qui vo"),
            ("l", NSMakeRange(82, 0), "quia justo et officiiis qui vol"),
            ("u", NSMakeRange(83, 0), "quia justo et officiiis qui volu"),
            ("p", NSMakeRange(84, 0), "quia justo et officiiis qui volup"),
            ("t", NSMakeRange(85, 0), "quia justo et officiiis qui volupt"),
            ("a", NSMakeRange(86, 0), "quia justo et officiiis qui volupta"),
            ("t", NSMakeRange(87, 0), "quia justo et officiiis qui voluptat"),
            ("e", NSMakeRange(88, 0), "quia justo et officiiis qui voluptate"),
            ("m", NSMakeRange(89, 0), "quia justo et officiiis qui voluptatem"),
            ("voluntarism", NSMakeRange(80, 10), "quia justo et officiiis qui voluntarism"),
            (".", NSMakeRange(91, 0), "quia justo et officiiis qui voluntarism."),
            (" ", NSMakeRange(92, 0), "quia justo et officiiis qui voluntarism. "),
            ("D", NSMakeRange(93, 0), "quia justo et officiiis qui voluntarism. D"),
            ("o", NSMakeRange(94, 0), "quia justo et officiiis qui voluntarism. Do"),
            ("l", NSMakeRange(95, 0), "quia justo et officiiis qui voluntarism. Dol"),
            ("o", NSMakeRange(96, 0), "quia justo et officiiis qui voluntarism. Dolo"),
            ("r", NSMakeRange(97, 0), "quia justo et officiiis qui voluntarism. Dolor"),
            ("e", NSMakeRange(98, 0), "quia justo et officiiis qui voluntarism. Dolore"),
            ("m", NSMakeRange(99, 0), "quia justo et officiiis qui voluntarism. Dolorem"),
            ("Dolores", NSMakeRange(93, 7), "quia justo et officiiis qui voluntarism. Dolores"),
            (" ", NSMakeRange(100, 0), "quia justo et officiiis qui voluntarism. Dolores "),
            ("i", NSMakeRange(101, 0), "quia justo et officiiis qui voluntarism. Dolores i"),
            ("p", NSMakeRange(102, 0), "quia justo et officiiis qui voluntarism. Dolores ip"),
            ("s", NSMakeRange(103, 0), "quia justo et officiiis qui voluntarism. Dolores ips"),
            ("u", NSMakeRange(104, 0), "quia justo et officiiis qui voluntarism. Dolores ipsu"),
            ("m", NSMakeRange(105, 0), "quia justo et officiiis qui voluntarism. Dolores ipsum"),
            (" ", NSMakeRange(106, 0), "quia justo et officiiis qui voluntarism. Dolores ipsum "),
            ("f", NSMakeRange(107, 0), "quia justo et officiiis qui voluntarism. Dolores ipsum f"),
            ("a", NSMakeRange(108, 0), "quia justo et officiiis qui voluntarism. Dolores ipsum fa"),
            ("c", NSMakeRange(109, 0), "quia justo et officiiis qui voluntarism. Dolores ipsum fac"),
            ("i", NSMakeRange(110, 0), "quia justo et officiiis qui voluntarism. Dolores ipsum faci"),
            ("l", NSMakeRange(111, 0), "quia justo et officiiis qui voluntarism. Dolores ipsum facil"),
            ("", NSMakeRange(111, 1), "quia justo et officiiis qui voluntarism. Dolores ipsum faci"),
            ("i", NSMakeRange(111, 0), "quia justo et officiiis qui voluntarism. Dolores ipsum facii"),
            ("s", NSMakeRange(112, 0), "quia justo et officiiis qui voluntarism. Dolores ipsum faciis"),
            ("", NSMakeRange(112, 1), "quia justo et officiiis qui voluntarism. Dolores ipsum facii"),
            ("", NSMakeRange(111, 1), "quia justo et officiiis qui voluntarism. Dolores ipsum faci"),
            ("", NSMakeRange(110, 1), "quia justo et officiiis qui voluntarism. Dolores ipsum fac"),
            ("", NSMakeRange(109, 1), "quia justo et officiiis qui voluntarism. Dolores ipsum fa"),
            ("", NSMakeRange(108, 1), "quia justo et officiiis qui voluntarism. Dolores ipsum f"),
            ("", NSMakeRange(107, 1), "quia justo et officiiis qui voluntarism. Dolores ipsum "),
            ("", NSMakeRange(106, 1), "quia justo et officiiis qui voluntarism. Dolores ipsum"),
            ("", NSMakeRange(105, 1), "quia justo et officiiis qui voluntarism. Dolores ipsu"),
            ("", NSMakeRange(104, 1), "quia justo et officiiis qui voluntarism. Dolores ips"),
            ("", NSMakeRange(103, 1), "quia justo et officiiis qui voluntarism. Dolores ip"),
            ("", NSMakeRange(102, 1), "quia justo et officiiis qui voluntarism. Dolores i"),
            ("", NSMakeRange(101, 1), "quia justo et officiiis qui voluntarism. Dolores "),
            ("", NSMakeRange(100, 1), "quia justo et officiiis qui voluntarism. Dolores"),
            ("", NSMakeRange(99, 1), "quia justo et officiiis qui voluntarism. Dolore"),
            ("", NSMakeRange(98, 1), "quia justo et officiiis qui voluntarism. Dolor"),
            ("", NSMakeRange(97, 1), "quia justo et officiiis qui voluntarism. Dolo"),
            ("", NSMakeRange(96, 1), "quia justo et officiiis qui voluntarism. Dol"),
            ("", NSMakeRange(95, 1), "quia justo et officiiis qui voluntarism. Do"),
            ("", NSMakeRange(94, 1), "quia justo et officiiis qui voluntarism. D"),
            ("", NSMakeRange(93, 1), "quia justo et officiiis qui voluntarism. "),
            ("", NSMakeRange(92, 1), "quia justo et officiiis qui voluntarism."),
            ("", NSMakeRange(91, 1), "quia justo et officiiis qui voluntarism"),
            ("", NSMakeRange(90, 1), "quia justo et officiiis qui voluntaris"),
            ("", NSMakeRange(89, 1), "quia justo et officiiis qui voluntari"),
            ("", NSMakeRange(88, 1), "quia justo et officiiis qui voluntar"),
            ("", NSMakeRange(87, 1), "quia justo et officiiis qui volunta"),
            ("", NSMakeRange(86, 1), "quia justo et officiiis qui volunt"),
            ("", NSMakeRange(85, 1), "quia justo et officiiis qui volun"),
            ("", NSMakeRange(84, 1), "quia justo et officiiis qui volu"),
            ("", NSMakeRange(83, 1), "quia justo et officiiis qui vol"),
            ("", NSMakeRange(82, 1), "quia justo et officiiis qui vo"),
            ("", NSMakeRange(81, 1), "quia justo et officiiis qui v"),
            ("", NSMakeRange(80, 1), "quia justo et officiiis qui "),
            ("", NSMakeRange(79, 1), "quia justo et officiiis qui"),
            ("", NSMakeRange(78, 1), "quia justo et officiiis qu"),
            ("", NSMakeRange(77, 1), "quia justo et officiiis q"),
            ("", NSMakeRange(76, 1), "quia justo et officiiis "),
            ("", NSMakeRange(75, 1), "quia justo et officiiis"),
            ("", NSMakeRange(74, 1), "quia justo et officiii"),
            ("", NSMakeRange(73, 1), "quia justo et officii"),
            ("", NSMakeRange(72, 1), "quia justo et offici"),
            ("", NSMakeRange(71, 1), "quia justo et offic"),
            ("", NSMakeRange(70, 1), "quia justo et offi"),
            ("", NSMakeRange(69, 1), "quia justo et off"),
            ("", NSMakeRange(68, 1), "quia justo et of"),
            ("", NSMakeRange(67, 1), "quia justo et o"),
            ("", NSMakeRange(66, 1), "quia justo et "),
            ("", NSMakeRange(65, 1), "quia justo et"),
            ("", NSMakeRange(64, 1), "quia justo e"),
            ("", NSMakeRange(63, 1), "quia justo "),
            ("", NSMakeRange(62, 1), "quia justo"),
            ("", NSMakeRange(61, 1), "quia just"),
            ("", NSMakeRange(60, 1), "quia jus"),
            ("", NSMakeRange(59, 1), "quia ju"),
            ("", NSMakeRange(58, 1), "quia j"),
            ("", NSMakeRange(57, 1), "quia "),
            ("", NSMakeRange(56, 1), "quia"),
            ("", NSMakeRange(55, 1), "qui"),
            ("", NSMakeRange(54, 1), "qu"),
            ("", NSMakeRange(53, 1), "q"),
            ("", NSMakeRange(52, 1), ""),
            ("", NSMakeRange(51, 1), ""),
            ("", NSMakeRange(50, 1), ""),
            (" ", NSMakeRange(50, 0), ""),
            ("@", NSMakeRange(51, 0), ""),
            ("m", NSMakeRange(52, 0), "m"),
            ("a", NSMakeRange(53, 0), "ma"),
            ("i", NSMakeRange(54, 0), "mai"),
            ("o", NSMakeRange(55, 0), "maio"),
            ("r", NSMakeRange(56, 0), "maior"),
            ("e", NSMakeRange(57, 0), "maiore"),
            ("s", NSMakeRange(58, 0), "maiores"),
            (" ", NSMakeRange(59, 0), "maiores "),
            ("m", NSMakeRange(60, 0), "maiores m"),
            ("o", NSMakeRange(61, 0), "maiores mo"),
            ("l", NSMakeRange(62, 0), "maiores mol"),
            ("l", NSMakeRange(63, 0), "maiores moll"),
            ("i", NSMakeRange(64, 0), "maiores molli"),
            ("t", NSMakeRange(65, 0), "maiores mollit"),
            ("i", NSMakeRange(66, 0), "maiores molliti"),
            ("a", NSMakeRange(67, 0), "maiores mollitia"),
            (" ", NSMakeRange(68, 0), "maiores mollitia "),
            (".", NSMakeRange(69, 0), "maiores mollitia ."),
            ("", NSMakeRange(69, 1), "maiores mollitia "),
            ("", NSMakeRange(68, 1), "maiores mollitia"),
            (".", NSMakeRange(68, 0), "maiores mollitia."),
        ]
        
        for insertion in insertionArray {
            let recognizedMention = mentionsHelper.couldBeMention(text: insertion.text, location: insertion.range)
            
            if recognizedMention != nil {
                assert(recognizedMention == insertion.expectation)
            }
            else {
                assert(insertion.expectation == "")
            }
        }
    }
}

Messung
CHZG
999810098

¤ Dauer der Verarbeitung: 0.11 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover


Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1104842
#Domains=499078